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.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

General Questions /

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

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

Need some help with additional menu

Go to End

7 Posts   1154 Views


Community Member, 4 Posts

31 August 2011 at 10:21pm

Hi there,
I am desperately trying to get an independent menu on my webpage to work.

Referring to this post:
I implemented the following in the mysite/code/Page.php:

class Page_Controller extends ContentController {

function Menu3(){
$whereStatement = "ShowInTopMenu = 1";
return DataObject::get("Page", $whereStatement);

And in the I have written:

<% control Menu3 %>
<li class="$FirstLast $LinkingMode">
<a href="$Link" title="$Title.XML"><span>$MenuTitle.XML</span></a></li>
<% end_control %></ul>

All I get is:

Server error
Sorry, there was a problem with handling your request.

What am I doing wrong?

Any hint would be really appreciated.


Community Member, 96 Posts

31 August 2011 at 11:35pm


What's the error message when you run your site in dev mode?


Community Member, 4 Posts

1 September 2011 at 2:43am

Hi, it says:
[User Error] Couldn't run query: SELECT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", (...)
AND (ShowInTopMenu = 1) ORDER BY "Sort" Unknown column 'ShowInTopMenu' in 'where clause'

I have no idea what that means.


Community Member, 96 Posts

1 September 2011 at 4:07am

Seems like you did not run dev/build did you define ShowInTopMenu in your model?


Community Member, 4 Posts

1 September 2011 at 5:05am

Ah ok, thank you.
All I have done so far are the to things written above. Sorry for the stupid question, but how and where do I have to define it?

I have run run dev/build, but with no effect.


Forum Moderator, 1391 Posts

1 September 2011 at 8:43am

Did you ever create the ShowInTopMenu field? Only then does /dev/build/?flush=1 actually create the field in the database. The following example adds a new checkbox to the Behaviour tab on each page in the CMS, where you can then check the pages you want in the topmenu...

It comes from the recipe in the link you'll find in the topic you got your example from...

class Page extends SiteTree {
	static $db = array(
		"ShowInTopMenu" => "Boolean"
	function getCMSFields() {
		$fields = parent::getCMSFields();
		$fields->addFieldToTab("Root.Behaviour", new CheckboxField("ShowInTopMenu", "Show special menu "));
		return $fields;


Community Member, 4 Posts

1 September 2011 at 11:33am

Martimiz--thank you for opening my eyes!