Source of file MenuSetExtension.php
Size: 1,545 Bytes - Last Modified: 2021-12-24T06:50:36+00:00
/var/www/docs.ssmods.com/process/src/src/MenuSetExtension.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?php namespace Guttmann\SilverStripe; use Heyday\MenuManager\MenuSet; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\HiddenField; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\DB; use SilverStripe\Subsites\Model\Subsite; use SilverStripe\Subsites\State\SubsiteState; class MenuSetExtension extends DataExtension { private static $has_one = array( 'Subsite' => Subsite::class ); public function updateCMSFields(FieldList $fields) { $fields->push(new HiddenField('SubsiteID')); } public function onBeforeWrite() { if (!$this->owner->SubsiteID) { $this->owner->SubsiteID = SubsiteState::singleton()->getSubsiteId(); } } public function requireDefaultRecords() { $subsites = Subsite::all_sites(); $defaultSetNames = $this->owner->config()->get('default_sets') ?: array(); $subsites->each(function ($subsite) use ($defaultSetNames) { Subsite::changeSubsite($subsite->ID); foreach ($defaultSetNames as $name) { $existingRecord = MenuSet::get()->filter([ 'Name' => $name, 'SubsiteID' => $subsite->ID, ])->first(); if (!$existingRecord) { $set = new MenuSet(); $set->Name = $name; $set->write(); DB::alteration_message("MenuSet '$name' created for Subsite", 'created'); } } }); } } |