WebsiteBaker Community Forum

WebsiteBaker Support (2.8.x) => Templates, Menus & Design => Topic started by: jbs on July 19, 2010, 08:57:06 PM

Title: Need a top-level menu item without a page
Post 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.
Title: Re: Need a top-level menu item without a page
Post by: pieterb on July 21, 2010, 09:40:02 AM
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.
Title: Re: Need a top-level menu item without a page
Post by: DarkViper on July 21, 2010, 10:57:15 AM
Simply click 'Home' on top of this side and then explore the menu.
Title: Re: Need a top-level menu item without a page
Post by: snark on July 21, 2010, 12:09:26 PM
Code: [Select]
<div id="nav">
<?php show_menu2(1SM2_ROOTSM2_MAX+1SM2_ALL, &#39;<li>[if( level == 0 ){<a>[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]&#39;, "</li>", &#39;<ul class="ullev[level]">&#39;, "</ul>", true, 
&#39;<ul id="header_menu" class="menu">&#39;);
 ?>
<br style="clear:left;"/>
</div>

disables the top level-link
Title: Re: Need a top-level menu item without a page
Post by: jbs on July 28, 2010, 06:01:49 AM
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.
Title: Re: Need a top-level menu item without a page
Post by: Argos on July 29, 2010, 12:27:13 PM
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.
Title: Re: Need a top-level menu item without a page
Post by: jbs on August 06, 2010, 12:12:58 AM
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.
Title: Re: Need a top-level menu item without a page
Post by: jbs on August 16, 2010, 11:59:56 PM
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):

Code: [Select]

<div id="nav">

<?php show_menu2(0SM2_ROOTSM2_ALLSM2_ALL, &#39;<li>[if( id==4 || id==6 || id==57 ){<a>[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]&#39;, "</li>", &#39;<ul class="ullev[level]">&#39;, "</ul>", true, &#39;<ul id="header_menu" class="menu">&#39;);?>

</div>



To disable all top menus where there is a sub-menu you can use the following:

Code: [Select]

<div id="nav">

<?php show_menu2(0SM2_ROOTSM2_ALLSM2_ALL, &#39;<li>[if( class==menu-expand ){<a>[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]&#39;, "</li>", &#39;<ul class="ullev[level]">&#39;, "</ul>", true, &#39;<ul id="header_menu" class="menu">&#39;);?>

</div>


I figured someone else might find use for this code sometime.