WebsiteBaker Community Forum
WebsiteBaker Support (2.8.x) => Templates, Menus & Design => Topic started by: jbs on July 19, 2010, 08:57:06 PM
-
I'm using a template with a drop-down menu. We would like a couple of the top-level menu items to be basically disabled so they don't go anywhere, but be able to show the second-level items in the drop-down. On standard links, we can use "#" but I can't find any way to make the equivalent concept work on a menu item. Anyone else tried doing this? Any ideas?
To show what I mean, the website is www.releaseinternational.org (http://www.releaseinternational.org). They want the "Find Out More" and "Take Action" links at the top to not go to a page, but simply display the menu items under it.
-
Hi jbs,
You can create a menu link in stead of an actual page with wysiwyg. You can link this menu link to the first page of the submenu. So the "Find Out More" and "Take Action" items remain links, but go directly to the first subpage.
-
Simply click 'Home' on top of this side and then explore the menu.
-
<div id="nav">
<?php show_menu2(1, SM2_ROOT, SM2_MAX+1, SM2_ALL, '<li>[if( level == 0 ){<a>[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]', "</li>", '<ul class="ullev[level]">', "</ul>", true,
'<ul id="header_menu" class="menu">');
?><br style="clear:left;"/>
</div>
disables the top level-link
-
pieterb -- I was thinking of that and may end up doing that. But they would prefer if it just stayed where it is (similar to a "#" link would do on a hyperlink). If I can't find what they are looking for, I may do it that way.
DarkViper -- sorry, not following
Snoork -- they want some of the top menu items to work and not others, so I don't want to kill them all. But I'll keep this code for other uses; definitely useful in other cases.
-
Snoork -- they want some of the top menu items to work and not others, so I don't want to kill them all. But I'll keep this code for other uses; definitely useful in other cases.
You can add conditions to the menu call like (in pseudo code) "if page ID=xxx, then disable link". I'm no coder so I cannot give you the right code but I have seen it on the forum sometimes. Please search for it.
-
I was gone for a week without internet access, so ended up having to let this drop. But I was thinking exactly the same thing, based on Snoork's coding. I'll give it a try and post the coding here if it works.
-
The coding is there in the show_menu2 documentation; it just takes some working around. Here's the coding I got to work. My client wanted only select top menu items to not be clickable (links to page ID 4,6 and 57), so I used the following (in index.php of the template):
<div id="nav">
<?php show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL, '<li>[if( id==4 || id==6 || id==57 ){<a>[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]', "</li>", '<ul class="ullev[level]">', "</ul>", true, '<ul id="header_menu" class="menu">');?>
</div>
To disable all top menus where there is a sub-menu you can use the following:
<div id="nav">
<?php show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL, '<li>[if( class==menu-expand ){<a>[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]', "</li>", '<ul class="ullev[level]">', "</ul>", true, '<ul id="header_menu" class="menu">');?>
</div>
I figured someone else might find use for this code sometime.