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; }