Source of file FluentExtension.php
Size: 1,699 Bytes - Last Modified: 2021-12-24T06:44:48+00:00
/var/www/docs.ssmods.com/process/src/src/TopPage/FluentExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | <?php namespace DNADesign\Elemental\TopPage; use DNADesign\Elemental\Models\BaseElement; use DNADesign\Elemental\Models\ElementalArea; use Page; use SilverStripe\ORM\DataObject; use SilverStripe\ORM\Queries\SQLUpdate; use TractorCow\Fluent\State\FluentState; /** * Class FluentExtension * * Use in place of @see DataExtension if you use the Fluent module for page localisation. * Be sure to also update @see TestState to use this extension * * @link https://github.com/tractorcow-farm/silverstripe-fluent * @property string $TopPageLocale * @property BaseElement|ElementalArea|$this $owner * @package DNADesign\Elemental\TopPage */ class FluentExtension extends DataExtension { /** * @var array */ private static $db = [ 'TopPageLocale' => 'Varchar', ]; /* * @inheritdoc */ protected function assignTopPage(Page $page): void { parent::assignTopPage($page); $this->owner->TopPageLocale = FluentState::singleton()->getLocale(); } /* * @inheritdoc */ protected function clearTopPage(): void { parent::clearTopPage(); $this->owner->TopPageLocale = null; } /* * @inheritdoc */ protected function assignFixedTopPage(): void { parent::assignFixedTopPage(); $this->owner->TopPageLocale = FluentState::singleton()->getLocale(); } /* * @inheritdoc */ protected function saveChanges(array $extraData = []): void { /** @var DataObject|FluentExtension $owner */ $owner = $this->owner; $extraData['"TopPageLocale"'] = $owner->TopPageLocale; parent::saveChanges($extraData); } } |