/** * {@inheritdoc} */ public function updateCMSFields(FieldList $fields) { $fields->removeByName('URLSegment'); // Remove the automatically-generated posts tab. $fields->removeFieldFromTab('Root', 'BlogPosts'); // Construct a better posts tab. Requirements::css(BLOGGER_DIR . '/css/cms.css'); Requirements::javascript(BLOGGER_DIR . '/js/cms.js'); $tab = new Tab('BlogPosts', 'Blog Posts'); $gridField = new GridField('BlogPosts', 'Blog Posts', $this->owner->BlogPosts(), new GridFieldConfig_BlogPost()); $tab->Fields()->add($gridField); $fields->addFieldToTab('Root', $tab); return $fields; }
function testAddingDuplicateReplacesOldField() { /* Given a nested set of FormField, CompositeField, and FieldSet objects */ $fieldSet = new FieldSet($root = new TabSet("Root", $main = new Tab("Main", $a = new TextField("A"), $b = new TextField("B")))); /* Adding new fields of the same names should replace the original fields */ $newA = new TextField("A", "New A"); $newB = new TextField("B", "New B"); $fieldSet->addFieldToTab("Root.Main", $newA); $fieldSet->addFieldToTab("Root.Other", $newB); $this->assertSame($newA, $fieldSet->dataFieldByName("A")); $this->assertSame($newB, $fieldSet->dataFieldByName("B")); $this->assertEquals(1, $main->Fields()->Count()); /* Pushing fields on the end of the field set should remove them from the tab */ $thirdA = new TextField("A", "Third A"); $thirdB = new TextField("B", "Third B"); $fieldSet->push($thirdA); $fieldSet->push($thirdB); $this->assertSame($thirdA, $fieldSet->fieldByName("A")); $this->assertSame($thirdB, $fieldSet->fieldByName("B")); $this->assertEquals(0, $main->Fields()->Count()); }