Source of file OwnAssetsExtension.php
Size: 1,486 Bytes - Last Modified: 2021-12-24T06:34:10+00:00
/var/www/docs.ssmods.com/process/src/src/Extension/OwnAssetsExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | <?php namespace bratiask\OwnAssets\Extension; use SilverStripe\Assets\File; use SilverStripe\Assets\Image; use SilverStripe\Core\Config\Config; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\DataObject; use SilverStripe\Versioned\Versioned; class OwnAssetsExtension extends DataExtension { const OWNS = 'owns'; /** * @throws Exception */ public function onAfterWrite() { if (!$this->isVersioned()) { foreach ($this->ownedComponents() as $componentName => $componentClass) { if ($this->isAssetClass($componentClass)) { /** @var Versioned|DataObject $component */ $component = $this->owner->getComponent($componentName); if ($component->isInDB() && !$component->isPublished()) { $component->publishSingle(); } } } } } /** * @return bool */ private function isVersioned() { return $this->owner->hasExtension('Versioned'); } /** * @param string $class * @return bool */ private function isAssetClass($class) { return $class === Image::class || $class === File::class; } /** * @return mixed */ private function ownedComponents() { return Config::inst()->get($this->owner->getClassName(), self::OWNS); } } |