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'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.

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   1310 Views

Avatar
panton

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:
http://www.silverstripe.org/general-questions/show/5822
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 navigation.ss I have written:

<ul>
<% 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.

Avatar
bartvanirsel

Community Member, 96 Posts

31 August 2011 at 11:35pm

Hi,

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

Avatar
panton

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.

Avatar
bartvanirsel

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?

Avatar
panton

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.

Avatar
martimiz

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;
	}  
	...

Avatar
panton

Community Member, 4 Posts

1 September 2011 at 11:33am

Martimiz--thank you for opening my eyes!