Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Customising the CMS

Tab extension on children pages


Reply

4 Posts   901 Views

Avatar
Paco728

16 July 2011 at 5:32am (Last edited: 16 July 2011 5:39am), Community Member, 28 Posts

Hey Guys,

I would like that the table created is not seen on the children pages. This is the tab:

static $has_one = array(
'Logo1' => 'Image',
'Logo2' => 'Image'
);

function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab("Root.Content.Logo", new ImageField('Logo1'));
$fields->addFieldToTab("Root.Content.Logo", new ImageField('Logo2'));
return $fields;
}

Avatar
zenmonkey

21 July 2011 at 6:55am Community Member, 528 Posts

Depending on the site structure you could always just wrap the $fields->addFieldToTab line an if statement.

if(getParent()=="root"){
insert $field code
}

or

if(getParentType() == "YouParentClass") {
insert $field code
}

Avatar
Paco728

24 July 2011 at 3:23pm Community Member, 28 Posts

It is a good alternative. Although already resolved it using SiteTree:getCMSFields (); instead of Parent:getCMSFields ();.

I'm not sure if this correct this but gave gave me good results:).

Avatar
Sam

5 August 2011 at 10:11am Administrator, 685 Posts

Zenmonkey's solution sounds like it would be the more reliable one, so if you run into problems in the future you might want to try that.