menuactive menuparent problem

Have a question or a suggestion about a 3rd party addon module or plugin?
Let us know here.
Post Reply
konsument
Forum Members
Forum Members
Posts: 137
Joined: Thu Oct 26, 2006 9:20 am
Location: Dresden - Saxony - Germany

menuactive menuparent problem

Post by konsument »

Hi folks,

im fighting around with a menu problem for a long time.

Im having a menu with 3 levels and need the menuactive and menuparent state for each menu item wich has child elements. But the menuactive menuparent classes are working only till active parent on level 2. As soon as a level 3 item is clicked, my level 2 parent item gets the "parent"-class.

My Menu:

Level 1 (when active has class "menuactive menuparent")
- Level 2 (when active - has class "menuactive menuparent")
- - Level 3 (when active -level 2 item gets class "parent")

What I dont understand: My Level 1 item keeps the class "menuactive menuparent", no matter if Level 2 item or Level 3 item is active.

Could sb please help me solving this problem?

This is my menu template:

Code: Select all

{if $count > 0}<ul>
{foreach from=$nodelist item=node name=submenu}
{counter assign=nextindex}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}</li>
{elseif $node->index > 0}</li>
{/if}

{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent{if ($node->depth > $node->prevdepth) || $smarty.foreach.submenu.first} first{elseif $smarty.foreach.submenu.last || $nodelist[$nextindex]->depth < $node->depth} last{/if}">{if $node->depth == 3}<span class="raquo">&raquo;</span>{/if}{if $node->depth == 1}<div>{/if}<a class="menuactive menuparent" href="{$node->url}" title="{$node->menutext}">{$node->menutext}</a>{if $node->depth == 1}</div>{/if}

{elseif $node->haschildren == true and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="parent{if ($node->depth > $node->prevdepth) || $smarty.foreach.submenu.first} first{elseif $smarty.foreach.submenu.last || $nodelist[$nextindex]->depth < $node->depth} last{/if}">{if $node->depth == 3}<span class="raquo">&raquo;</span>{/if}{if $node->depth == 1}<div>{/if}<a class="parent" href="{$node->url}" title="{$node->menutext}">{$node->menutext}</a>{if $node->depth == 1}</div>{/if}

{elseif $node->current == true}
<li class="currentpage{if ($node->depth > $node->prevdepth) || $smarty.foreach.submenu.first} first{elseif $smarty.foreach.submenu.last || $nodelist[$nextindex]->depth < $node->depth} last{/if}">{if $node->depth == 3}<span class="raquo">&raquo;</span>{/if}

{$node->menutext}{elseif $node->type == 'sectionheader'}
<li class="sectionheader{if ($node->depth > $node->prevdepth) || $smarty.foreach.submenu.first} first{elseif $smarty.foreach.submenu.last || $nodelist[$nextindex]->depth < $node->depth} last{/if}"><div>{$node->menutext}</div>

{elseif $node->type == 'separator'}
<li class="separator{if ($node->depth > $node->prevdepth) || $smarty.foreach.submenu.first} first{elseif $smarty.foreach.submenu.last || $nodelist[$nextindex]->depth < $node->depth} last{/if}">

{else}
<li class="{if ($node->depth > $node->prevdepth) || $smarty.foreach.submenu.first}first{elseif $smarty.foreach.submenu.last || $nodelist[$nextindex]->depth < $node->depth}last{/if}{if $node->depth == 1} level_01{/if}">{if $node->depth == 3}<span class="raquo">&raquo;</span>{/if}<a href="{$node->url}" title="{$node->menutext}">{$node->menutext}</a>

{/if}{/foreach}{repeat string="</li></ul>" times=$node->depth-1}</li></ul>{/if}
Post Reply

Return to “Modules/Add-Ons”