public function getCMSFields()
 {
     $this->beforeUpdateCMSFields(function ($fields) {
         $fields->addFieldsToTab('Root.Main', array(Textfield::create('ContactName', 'Name'), TextField::create('Phone', 'Phone'), TextField::create('Mobile', 'Mobile'), TextField::create('Fax', 'Fax'), EmailField::create('Email', 'Email'), $website = TextField::create('Website', 'Website')));
         $website->setRightTitle('e.g ' . Director::absoluteBaseURL());
     });
     return parent::getCMSFields();
 }
 public function getCMSFields()
 {
     $this->beforeUpdateCMSFields(function ($fields) {
         $url = TextField::create('LinkURL', 'Link URL');
         $url->setRightTitle('Including protocol e.g: ' . Director::absoluteBaseURL());
         $fields->addFieldToTab('Root.Main', $url);
         $fields->addFieldsToTab('Root.Main', array(TreeDropdownField::create('InternalLinkID', 'Link To', 'SiteTree'), CheckboxField::create('NewWindow', 'Open in a new window'), $text = TextField::create('LinkText', 'Link Text'), $desc = TextareaField::create('LinkDescription', 'Link Description')));
     });
     return parent::getCMSFields();
 }
 public function getCMSFields()
 {
     $this->beforeUpdateCMSFields(function ($fields) {
         $desc = TextareaField::create('FileDescription', 'Description');
         $desc->setRightTitle('Optional');
         $fields->addFieldToTab('Root.Main', $desc);
         $uploadField = UploadField::create('File', 'File')->setAllowedMaxFileNumber(1)->setFolderName('Uploads/files');
         $fields->addFieldToTab('Root.Main', $uploadField);
     });
     return parent::getCMSFields();
 }
 public function getCMSFields()
 {
     $styles = $this->config()->get('styles');
     $fields = parent::getCMSFields();
     if (count($styles) > 0) {
         $this->beforeUpdateCMSFields(function ($fields) use($styles) {
             $fields->addFieldsToTab('Root.Main', new HtmlEditorField('HTML', 'Content'));
             $fields->addFieldsToTab('Root.Main', $styles = new DropdownField('Style', 'Style', $styles));
             $styles->setEmptyString('Select a custom style..');
         });
     } else {
         $fields->removeByName('Style');
     }
     return $fields;
 }
 public function getCMSFields()
 {
     $styles = $this->config()->get('styles');
     $fields = parent::getCMSFields();
     if (count($styles) > 0) {
         $this->beforeUpdateCMSFields(function ($fields) use($styles) {
             $fields->addFieldsToTab('Root.Main', new HtmlEditorField('HTML', 'Content'));
             $fields->addFieldsToTab('Root.Main', $styles = new DropdownField('Style', 'Style', $styles));
             $styles->setEmptyString('Select a custom style..');
         });
     } else {
         $fields->removeByName('Style');
     }
     if ($this->isEndofLine('ElementContent') && $this->hasExtension('VersionViewerDataObject')) {
         $fields = $this->addVersionViewer($fields, $this);
     }
     return $fields;
 }
 /**
  * @return FieldList
  */
 public function getCMSFields()
 {
     $elements = $this->Elements();
     $isInDb = $this->isInDB();
     $this->beforeUpdateCMSFields(function ($fields) use($elements, $isInDb) {
         $fields->removeByName('Root.Elements');
         $fields->removeByName('Elements');
         $desc = HTMLEditorField::create('ListDescription', 'List Description');
         $desc->setRightTitle('Optional');
         $fields->addFieldToTab('Root.Main', $desc);
         if ($isInDb) {
             $adder = new ElementalGridFieldAddNewMultiClass();
             $list = $this->getAvailableTypes();
             if ($list) {
                 $adder->setClasses($list);
             }
             $config = GridFieldConfig_RecordEditor::create(100);
             $config->addComponent(new GridFieldSortableRows('Sort'));
             $config->removeComponentsByType('GridFieldAddNewButton');
             $config->removeComponentsByType('GridFieldSortableHeader');
             $config->removeComponentsByType('GridFieldDeleteAction');
             $config->removeComponentsByType('GridFieldAddExistingAutocompleter');
             $config->addComponent(new GridFieldTitleHeader());
             $config->addComponent(new ElementalGridFieldDeleteAction());
             $config->addComponent($adder);
             $config->addComponent($autocompleter = new ElementalGridFieldAddExistingAutocompleter());
             if ($list) {
                 $autocompleter->setSearchList(BaseElement::get()->filter('ClassName', array_keys($list)));
             }
             $config->removeComponentsByType('GridFieldDetailForm');
             $config->addComponent(new VersionedDataObjectDetailsForm());
             $widgetArea = new GridField('Elements', Config::inst()->get("ElementPageExtension", 'elements_title'), $elements, $config);
             $fields->addFieldToTab('Root.Main', $widgetArea);
         } else {
             $fields->addFieldToTab('Root.Main', LiteralField::create('warn', '<p class="message notice">Once you save this object you will be able to add items</p>'));
         }
     });
     return parent::getCMSFields();
 }
 public function getCMSFields()
 {
     $elements = $this->Elements();
     $isInDb = $this->isInDB();
     $allowed = $this->config()->get('allowed_elements');
     $this->beforeUpdateCMSFields(function ($fields) use($elements, $isInDb, $allowed) {
         $desc = HTMLEditorField::create('ListDescription', 'List Description');
         $desc->setRightTitle('Optional');
         $fields->addFieldToTab('Root.Main', $desc);
         if ($isInDb) {
             $adder = new GridFieldAddNewMultiClass();
             if (is_array($allowed)) {
                 $list = $allowed;
             } else {
                 $classes = ClassInfo::subclassesFor('BaseElement');
                 $list = array();
                 unset($classes['BaseElement']);
                 foreach ($classes as $class) {
                     $list[$class] = singleton($class)->i18n_singular_name();
                 }
             }
             asort($list);
             $adder->setClasses($list);
             $config = GridFieldConfig_RecordEditor::create(100);
             $config->addComponent(new GridFieldSortableRows('Sort'));
             $config->removeComponentsByType('GridFieldAddNewButton');
             $config->addComponent($adder);
             $config->removeComponentsByType('GridFieldDetailForm');
             $config->addComponent(new VersionedDataObjectDetailsForm());
             $widgetArea = new GridField('Elements', Config::inst()->get("ElementPageExtension", 'elements_title'), $elements, $config);
             $fields->addFieldToTab('Root.Main', $widgetArea);
         } else {
             $fields->addFieldToTab('Root.Main', LiteralField::create('warn', '<p class="message notice">Once you save this object you will be able to add items</p>'));
         }
         $fields->removeByName('Root.Elements');
     });
     return parent::getCMSFields();
 }