'EditableFieldGroupEnd' ); /** * Disable selection of group class * * @config * @var bool */ private static $hidden = true; /** * Non-data field type * * @var type */ private static $literal = true; public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName(array('MergeField', 'Default', 'Validation', 'DisplayRules')); return $fields; } public function getCMSTitle() { $title = $this->getFieldNumber() ?: $this->Title ?: 'group'; return _t( 'EditableFieldGroupEnd.FIELD_GROUP_START', 'Group {group}', array( 'group' => $title ) ); } public function getInlineClassnameField($column, $fieldClasses) { return new LabelField($column, $this->CMSTitle); } public function showInReports() { return false; } public function getFormField() { $field = UserFormsGroupField::create() ->setTitle($this->EscapedTitle ?: false) ->setName($this->Name); $this->doUpdateFormField($field); return $field; } protected function updateFormField($field) { // set the right title on this field if ($this->RightTitle) { // Since this field expects raw html, safely escape the user data prior $field->setRightTitle(Convert::raw2xml($this->RightTitle)); } // if this field has an extra class if ($this->ExtraClass) { $field->addExtraClass($this->ExtraClass); } } protected function onBeforeDelete() { parent::onBeforeDelete(); // Ensures EndID is lazy-loaded for onAfterDelete $this->EndID; } protected function onAfterDelete() { parent::onAfterDelete(); // Delete end if (($end = $this->End()) && $end->exists()) { $end->delete(); } } }