public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $categoryFields = array();
     $nonCategoryFields = array();
     $fields->addFieldToTab('Root.Main', new TextField('ContentTitle', 'Content Title'));
     $fields->addFieldToTab('Root.Main', new DropdownField('ItemStyle', 'Item Style', self::$styles));
     $fields->addFieldToTab('Root.Main', new DropdownField('DefaultLayout', 'Default Layout', $this->dbObject('DefaultLayout')->enumValues()));
     $fields->addFieldToTab('Root.Main', new NumericField('LimitTopResults', 'Limit Top Results - how many items to show at top (defaults to 4)'));
     $fields->addFieldToTab('Root.Main', new NumericField('LimitBottomResults', 'Limit Bottom Results - how many items to show at bottom (defaults to 30)'));
     //children fields
     $fields->addFieldsToTab('Root.Main', array($useChildren = new CheckboxField('UseChildren', 'Use page as category?', 1), $categoryFields[] = $pageField = new ContentModuleTreeDropdownField('TopLevelPageID', 'Top Level Page', 'SiteTree'), $categoryFields[] = $showSearch = new CheckboxField('ShowSearch', 'Show search?'), $categoryFields[] = $hasCategories = new CheckBoxField('HasCategories', 'Has categories? (2 levels or single level)'), $categoryFields[] = $showCategories = new CheckboxField('ShowCategories', 'Show category navigation bar? (for filtering)')));
     $pageField->addExtraClass('use-children');
     $useChildren->addExtraClass('use-children');
     $showSearch->addExtraClass('show-search');
     $hasCategories->addExtraClass('has-categories');
     $showCategories->addExtraClass('show-categories');
     //add page fields
     $fields->addFieldsToTab('Root.Main', array($tree = new ContentModuleTreeDropdownField('NewPage', 'Add Page (choose from dropdown to add below)', 'SiteTree'), $enableSeeMore = new CheckboxField('DisableSeeMore', 'Disable "See more"?', 0), $nonCategoryFields[] = $rEditor = new ContentModuleRelationshipEditor('PagesRelationEditor', 'Pages', 'Pages', $this, array('Title' => 'Title', 'Parent.Title' => 'Parent'))));
     $rEditor->setSortField('SortOrder')->setShowDeleteButton(false);
     //url for adding page
     $tree->setAttribute('data-add_url', 'addPage');
     $nonCategoryFields[] = $tree;
     //setup classes for hiding show fields
     foreach ($categoryFields as $categoryField) {
         $categoryField->addExtraClass('category');
     }
     //setup classes for hiding show fields
     foreach ($nonCategoryFields as $categoryField) {
         $categoryField->addExtraClass('non-category');
     }
     Requirements::javascript(INPAGE_MODULES_DIR . '/javascript/RelatedPagesModuleCMS.js');
     return $fields;
 }
 private function Fields()
 {
     return FieldList::create(TextField::create('Title'), TextField::create('Subtitle'), CheckboxField::create("IsTrue"), CheckboxSetField::create('CheckboxSet', 'Options', array('Opt1' => 'Opt1', 'Opt2' => 'Opt2', 'Opt3' => 'Opt3', 'Opt4' => 'Opt4', 'Opt5' => 'Opt5')), DropdownField::create('DDP', 'Choose an item', array('ITEM1' => 'Item 1', 'ITEM2' => 'Item 2', 'ITEM3' => 'Item 3', 'ITEM4' => 'Item 4', 'ITEM5' => 'Item 5'))->setEmptyString('(Select one)'), GroupedDropdownField::create('DDP2', 'Choose an item', array('Group1' => array('ITEM1' => 'Item 1', 'ITEM2' => 'Item 2', 'ITEM3' => 'Item 3', 'ITEM4' => 'Item 4', 'ITEM5' => 'Item 5'), 'Group2' => array('ITEM6' => 'Item 6', 'ITEM7' => 'Item 7', 'ITEM8' => 'Item 8', 'ITEM9' => 'Item 9', 'ITEM0' => 'Item 0')))->setEmptyString('(Select one)'), ListboxField::create('lbf', 'Choose items', array('ITEM1' => 'Item 1', 'ITEM2' => 'Item 2', 'ITEM3' => 'Item 3', 'ITEM4' => 'Item 4', 'ITEM5' => 'Item 5'), 'ITEM3'), LookupField::create('lf', 'Look up field', array('ITEM1' => 'Item 1', 'ITEM2' => 'Item 2', 'ITEM3' => 'Item 3', 'ITEM4' => 'Item 4', 'ITEM5' => 'Item 5'), 'ITEM3')->setEmptyString('(Select one)'), NullableField::create(TextField::create("nf", "Field 1", "abc")), NullableField::create(CheckBoxField::create("nf2", "Field 1", "abc")), NumericField::create("nf3", "NumericField", 10), NumericField_Readonly::create('NFR1', 'NumericField_Readonly'), OptionsetField::create($name = "op", $title = "OptionsetField", $source = array("1" => "Option 1", "2" => "Option 2", "3" => "Option 3", "4" => "Option 4", "5" => "Option 5"), $value = "3"), ReadonlyField::create('rf1', 'read only field', 'value'), TextareaField::create($name = "description", $title = "Description", $value = "This is the default description"), DateField::create('datefield', 'Date Field')->setConfig('showcalendar', true), TimeField::create('timeField', 'Time Field', '12am'));
 }
 function __construct($fieldName = null, $params)
 {
     $params['fromDb'] = true;
     parent::__construct($options, $params);
 }