Source of file CustomMenuBlock.php
Size: 1,390 Bytes - Last Modified: 2021-12-23T10:25:20+00:00
/var/www/docs.ssmods.com/process/src/code/dataobjects/CustomMenuBlock.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | <?php if (!class_exists('Block')) { return; } /** * A block that allows end users to manually build a custom (flat or nested) menu * @author Shea Dawson <shea@symbiote.com.au> * @package silverstripe-seed **/ class CustomMenuBlock extends Block { private static $singular_name = 'Custom Menu Block'; private static $plural_name = 'Custom Menu Blocks'; private static $db = array( ); private static $has_many = array( 'Items' => 'CustomMenuBlockItem' ); public function getCMSFields(){ $fields = parent::getCMSFields(); $fields->removeFieldFromTab('Root', 'Items'); if ($this->ID) { $config = GridFieldConfig_RecordEditor::create() ->addComponent(new GridFieldOrderableRows()); $grid = GridField::create('Items', 'Items', $this->Items()->filter('ParentID', 0), $config); $config->getComponentByType('GridFieldDataColumns') ->setDisplayFields(array( 'Title' => 'Menu Item Title', 'Children.Count' => 'Num Children' )); $fields->addFieldToTab('Root.Main', HeaderField::create('ItemsHeader', 'Menu Items')); $fields->addFieldToTab('Root.Main', $grid); } return $fields; } /** * Method for use in templates to loop over menu items * @return DataList **/ public function MenuItems(){ return $this->Items()->filter('ParentID', 0); } } |