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)?
We've moved the forum!
Please use forum.silverstripe.org for any new questions
(announcement).
The forum archive will stick around, but will be read only.
You can also use our Slack channel
or StackOverflow to ask for help.
Check out our community overview for more options to contribute.
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.
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)
P.S - the above should be
$fields->addFieldToTab("Root.Content.Main", new CheckboxField ("ShowExtraClass"));