'Text', ]; public function updateSettingsFields(FieldList $fields) { $fields->addFieldsToTab('Root.Settings', [ TextareaField::create( 'ExtraCode', 'Extra page specific HTML code' ), ]); } public function updateCMSFields(FieldList $fields) { $f = $fields->dataFieldByName('MenuTitle'); // Elements has own Title field to be used at content (h1 can be hidden), // while Menu Title (h1 page title) and Navigation label should be equal for SEO if ($f) { // name page name as navigation label to be more clear for CMS admin $fields->dataFieldByName('Title')->setTitle($f->Title()); $fields->removeByName('MenuTitle'); } } public function ShowSidebar() { $obj = $this->owner; $area = $obj->ElementalArea(); if(!$area) { return true; } $els = $area->Elements(); if(!$els) { return true; } $els = $els->find('ClassName', SidebarElement::class); if(!$els) { return true; } if ($els->first()) { return false; } if ($obj->SideBarContent) { return true; } if (method_exists($obj, 'SideBarView')) { $view = $obj->SideBarView(); if ($view && $view->Widgets()->count()) { return true; } } return false; } public function onBeforeWrite() { parent::onBeforeWrite(); // h1 page title and navigation label should be equal for SEO $obj = $this->owner; $obj->setField('MenuTitle', $obj->getField('Title')); } }