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.

General Questions

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Boolean checkbox to add class?


Reply

4 Posts   3424 Views

Avatar
shakingpaper

13 April 2010 at 7:16pm Community Member, 15 Posts

I am wanting to add a link class to nav pages on a page-by-page basis and am wondering if there is a way to add this via a boolean checkbox (or any other method, really)?

Avatar
Willr

13 April 2010 at 10:32pm Forum Moderator, 5511 Posts

Sure you could use a checkbox if there is only 2 states (true or false).

You would need to add the database field for it.

static $db = array(
'ShowExtraClass' => 'Boolean'
);

Add the checkbox to the cms

function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Content.Main', new Checkbox('ShowExtraClass'));

return $fields;
}

After running a /dev/build to rebuild the database you should be able to see a new checkbox in the cms and save the value so all you need to add an <% if ShowExtraClass %> in your menu template to conditionally add the class.

Another option would be to have a free text field for entering the class (or dropdown) if multiple classes.

Avatar
shakingpaper

14 April 2010 at 1:21pm Community Member, 15 Posts

Thanks for your advice - I ended up mixing the two together and using a text field but placing it in the Behaviour tab to keep it out of the content section (in case it gets edited by mistake)

Avatar
CHD

10 September 2010 at 12:05am Community Member, 218 Posts

P.S - the above should be

$fields->addFieldToTab("Root.Content.Main", new CheckboxField ("ShowExtraClass"));