:SOLVED: Submenu has child as current when on a parent page
Posted: Fri Aug 07, 2015 11:07 am
Hi,
I'm running CMS Made Simple 1.12.
I'm using PHP 5.5.23 and MySQL 5.5.42.
This is all working with Apache running on Linux.
I have a problem with submenu currents as below:
My main navigation is this:
Link 1
Link 2
Link 3 (includes submenu)
Link 4
Link 5
Then I have submenu under Link 3 like this (all links shown):
Link 1
Link 2
Link 3 - Link 3.1 - Link 3.1.1 - Link 3.1.1.1
-------------------------- Link 3.1.1.2
-------------------------- Link 3.1.1.3
---------------- Link 3.1.2
---------------- Link 3.1.3
------- Link 3.2
------- Link 3.3
Link 4
Link 5
If you can see what I mean.
The page under Link 3 doesn't have content, it'a a link direct to page 3.1. When I'm at page 3.1. I should see the submenu links like this:
Link 3.1 - Link 3.1.1 - Link 3.1.1.1
------------------- Link 3.1.1.2
------------------- Link 3.1.1.3
-------- Link 3.1.2
-------- Link 3.1.3
- Link 3.2
- Link 3.3
As you can see, there should be only the page and it's parents as current where I am. If I would be at the page 3.1.1, menu should look like this:
Link 3.1 - Link 3.1.1 - Link 3.1.1.1
------------------- Link 3.1.1.2
------------------- Link 3.1.1.3
-------- Link 3.1.2
-------- Link 3.1.3
- Link 3.2
- Link 3.3
Right now when I'm at page 3.1 or at the page 3.1.1, the menu looks like this (looks similar on both pages):
Link 3.1 - Link 3.1.1 - Link 3.1.1.1
------------------- Link 3.1.1.2
------------------- Link 3.1.1.3
-------- Link 3.1.2
-------- Link 3.1.3
- Link 3.2
- Link 3.3
What might made the parent's child link to be also current?
The code (layout):
The code (Xxxxx-menu-left):
Thank you so much!
I'm running CMS Made Simple 1.12.
I'm using PHP 5.5.23 and MySQL 5.5.42.
This is all working with Apache running on Linux.
I have a problem with submenu currents as below:
My main navigation is this:
Link 1
Link 2
Link 3 (includes submenu)
Link 4
Link 5
Then I have submenu under Link 3 like this (all links shown):
Link 1
Link 2
Link 3 - Link 3.1 - Link 3.1.1 - Link 3.1.1.1
-------------------------- Link 3.1.1.2
-------------------------- Link 3.1.1.3
---------------- Link 3.1.2
---------------- Link 3.1.3
------- Link 3.2
------- Link 3.3
Link 4
Link 5
If you can see what I mean.
The page under Link 3 doesn't have content, it'a a link direct to page 3.1. When I'm at page 3.1. I should see the submenu links like this:
Link 3.1 - Link 3.1.1 - Link 3.1.1.1
------------------- Link 3.1.1.2
------------------- Link 3.1.1.3
-------- Link 3.1.2
-------- Link 3.1.3
- Link 3.2
- Link 3.3
As you can see, there should be only the page and it's parents as current where I am. If I would be at the page 3.1.1, menu should look like this:
Link 3.1 - Link 3.1.1 - Link 3.1.1.1
------------------- Link 3.1.1.2
------------------- Link 3.1.1.3
-------- Link 3.1.2
-------- Link 3.1.3
- Link 3.2
- Link 3.3
Right now when I'm at page 3.1 or at the page 3.1.1, the menu looks like this (looks similar on both pages):
Link 3.1 - Link 3.1.1 - Link 3.1.1.1
------------------- Link 3.1.1.2
------------------- Link 3.1.1.3
-------- Link 3.1.2
-------- Link 3.1.3
- Link 3.2
- Link 3.3
What might made the parent's child link to be also current?
The code (layout):
Code: Select all
<nav class="left">
{menu start_level="2" number_of_levels="3" template="Xxxxx-menu-left"}
</nav>
Code: Select all
{* CSS classes used in this template:
.current-left - The top level parent when a child is the active/current page
li.active0n h3 - n is the depth/level of the node. To style the active page for each level separately. The active page is not clickable.
.clearfix - Used for the unclickable h3 to use the entire width of the li, just like the anchors. See the Tools stylesheet in the default CMSMS installation.
li.sectionheader h3 - To style section header
li.separator - To style the ruler for the separator *}
{assign var='number_of_levels' value=10000}
{if isset($menuparams.number_of_levels)}
{assign var='number_of_levels' value=$menuparams.number_of_levels}
{/if}
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{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}
{assign var='classes' value='current-left'}
{if $node->parent == true}
{assign var='classes' value='current-left menuparent'}
{/if}
{if $node->children_exist == true and $node->depth < $number_of_levels}
{assign var='classes' value=$classes|cat:' parent'}
{/if}
<li class="{$classes}"><a class="{$classes}" href="{$node->url}"><span>{$node->menutext}</span></a>
{elseif $node->children_exist == true and $node->depth < $number_of_levels and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="parent"><a class="parent" href="{$node->url}"><span>{$node->menutext}</span></a>
{elseif $node->current == true}
<li class="current-left"><h3><span>{$node->menutext}</span></h3>
{elseif $node->type == 'sectionheader'}
<li class="sectionheader"><span>{$node->menutext}</span>
{elseif $node->type == 'separator'}
<li class="separator" style="list-style-type: none;"> <hr />
{else}
<li><a href="{$node->url}"><span>{$node->menutext}</span></a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}