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

Adding new fields (after Content field)


Reply

3 Posts   3308 Views

Avatar
ootersplace

3 March 2009 at 5:22am Community Member, 16 Posts

I think I'm missing something obvious, but as per [url=http://doc.silverstripe.org/doku.php?id=tutorial:2-extending-a-basic-site]Tutorial 2[/url], to add new fields to the CMS, you write:

function getCMSFields() {
$fields = parent::getCMSFields();

$fields->addFieldToTab('Root.Content.Main', new CalendarDateField('Date'), 'Content');
$fields->addFieldToTab('Root.Content.Main', new TextField('Author'), 'Content');
   
return $fields;
}

This works, but all the fields are added before the "Content" field. Is there a way to re-order them so that the Content field shows up first in the CMS, and all the other fields underneath that one?

Thanks for any help!

Karl.

Avatar
Fuzz10

3 March 2009 at 10:51am Community Member, 787 Posts

Welcome to Silverstripe !

That is because your new field will be added before content (last parameter)....

API-DOC
void addFieldToTab (string $tabName, FormField $field, [string $insertBefore = null])

* string $tabName: The name of the tab or tabset. Subtabs can be referred to as TabSet.Tab or TabSet.Tab.Subtab. This function will create any missing tabs.
* FormField $field: The FormField object to add to the end of that tab.
* string $insertBefore: The name of the field to insert before. Optional.

Avatar
ootersplace

3 March 2009 at 11:31am Community Member, 16 Posts

Thank you -- I knew it was something that was staring me in the face! Removing 'Content' made everything better. :)

And thanks for the welcome!