2021-06-19 21:30:03 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace A2nt\CMSNiceties\Extensions;
|
|
|
|
|
|
|
|
use SilverStripe\Blog\Forms\GridField\GridFieldConfigBlogPost;
|
|
|
|
use SilverStripe\Forms\FieldList;
|
|
|
|
use SilverStripe\ORM\DataExtension;
|
|
|
|
use TractorCow\Fluent\Model\Locale;
|
|
|
|
|
2022-05-10 13:09:06 +02:00
|
|
|
/**
|
|
|
|
* Class \A2nt\CMSNiceties\Extensions\PageFluentExtension
|
|
|
|
*
|
|
|
|
* @property \A2nt\CMSNiceties\Extensions\PageFluentExtension $owner
|
|
|
|
*/
|
2021-06-19 21:30:03 +02:00
|
|
|
class PageFluentExtension extends DataExtension
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Override default Fluent fallback
|
|
|
|
*
|
|
|
|
* @param string $query
|
|
|
|
* @param string $table
|
|
|
|
* @param string $field
|
|
|
|
* @param Locale $locale
|
|
|
|
*/
|
|
|
|
public function updateLocaliseSelect(&$query, $table, $field, Locale $locale)
|
|
|
|
{
|
|
|
|
// disallow elemental data inheritance in the case that published localised page instance already exists
|
|
|
|
if ($field == 'ElementalAreaID' && $this->owner->isPublishedInLocale()) {
|
|
|
|
$query = '"' . $table . '_Localised_' . $locale->getLocale() . '"."' . $field . '"';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|