'Varchar(255)' ); static $has_many = array( 'FAQSubCategories' => "FAQSubCategory" ); public function getCMSFields($params = null) { $fields = parent::getCMSFields($params); $fields->removeByName("FAQSubCategories"); $fields->addFieldToTab("Root.Main", $manager =new DataObjectManager( $this, 'FAQSubCategories', 'FAQSubCategory', array( 'FAQSubCategory' => 'FAQSubCategory' ) )); $manager->setAddTitle("FAQ Sub Categories"); $manager->set_popup_width(900); return $fields; } } class FAQSubCategory extends DataObject { static $db = array( 'FAQSubCategory' => 'Varchar(255)' ); static $has_one = array( 'Parent' => 'FAQCategory' ); static $has_many = array( 'FAQs' => "FAQ" ); public function getCMSFields($params = null) { $fields = parent::getCMSFields($params); $fields->removeByName("FAQs"); $fields->addFieldToTab("Root.Main", $manager = new DataObjectManager( $this, 'FAQs', 'FAQ', array( 'Question' => 'Question' ) ) ); $manager->setAddTitle("FAQ"); // This does not set the width $manager->set_popup_width(800); return $fields; } } class FAQ extends DataObject { static $db = array( 'Question' => 'HTMLText', 'Answer' => 'HTMLText' ); static $has_one = array( 'Parent' => 'FAQSubCategory', ); public function getCMSFields() { $fields = new FieldSet(); $fields->push(new SimpleHTMLEditorField("Question")); $fields->push(new SimpleHTMLEditorField("Answer")); return $fields; } }