Source of file SiteTreeExtension.php
Size: 1,521 Bytes - Last Modified: 2021-12-24T06:40:50+00:00
/var/www/docs.ssmods.com/process/src/src/Extension/SiteTreeExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <?php namespace CodeCraft\Pathfinder\Extension; use CodeCraft\Pathfinder\Model\Pathfinder; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\FieldGroup; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\Tab; use SilverStripe\ORM\DataExtension; /** * Adds Pathfinder features to pages in the site tree * * @property bool HideFromPathfinders * @method SiteTree getOwner() */ class SiteTreeExtension extends DataExtension { /** * @var array */ private static $db = [ 'HideFromPathfinders' => 'Boolean', ]; /** * @var array */ private static $belongs_many_many = [ 'ExcludedFromPathfinders' => Pathfinder::class, ]; /** * {@inheritDoc} */ public function updateCMSFields(FieldList $fields) { $fields->removeByName([ 'ExcludedFromPathfinders', ]); } /** * {@see SiteTree::getSettingsFields()} * * @param FieldList $fields */ public function updateSettingsFields($fields) { $hideField = CheckboxField::create('HideFromPathfinders', 'Hide from Pathfinders?'); /** @var Tab $settings */ $settings = $fields->fieldByName('Root.Settings'); foreach ($settings->getChildren() as $field) { if ($field->Title() !== 'Visibility' || !$field instanceof FieldGroup) { continue; } // Add our field to the Visibility group $field->push($hideField); } } } |