Page 1 of 1

Menücode {$node->current == true} mit id versehen

Posted: Tue Jul 27, 2010 12:48 pm
by cms_ei
Hallo, folgendes Menü funktioniert einwandfrei:

Code: Select all

{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
<li><a href="{$node->url}" 
{if $node->target ne ""} target="{$node->target}"{/if}>
{$node->menutext}</a></li>
{if $count > ($node->index+1)} 
{/if}
{/foreach}
{/if}
</ul>
Jetzt möchte ich den jeweils aktuellen Menüpunkt mit der id="aktiv" hervorheben, um in mit
CSS kennzeichnen zu können. Ich habe schon rumprobiert aber bisher keine Lösung gefunden, dieser Code:

Code: Select all

{if $count > 0}

{if $node->current != true}
<ul>
{foreach from=$nodelist item=node}
<li><a href="{$node->url}" 
{if $node->target ne ""} target="{$node->target}"{/if}>
{$node->menutext}</a></li>
{if $count > ($node->index+1)} 
{/if}
{/foreach}
</ul>
{/if}

{elseif $node->current == true}
<ul>
{foreach from=$nodelist item=node}
<li><a id="aktiv" href="{$node->url}" 
{if $node->target ne ""} target="{$node->target}"{/if}>
{$node->menutext}</a></li>
{if $count > ($node->index+1)} 
{/if}
{/foreach}
</ul>
{/if}
funktioniert leider nicht, habe auch schon andere Varainten ausprobiert. Vielleicht weiss ja ein Smarty Experte eine Code der mein Problem löst. Vielen Dank.

Re: Menücode {$node->current == true} mit id versehen

Posted: Tue Jul 27, 2010 1:45 pm
by uniqu3
Sollte {elseif $node->current == true} nicht in die foreach schleife?

Edit: hab mich das selbe wie NaN gefragt.

Re: Menücode {$node->current == true} mit id versehen

Posted: Tue Jul 27, 2010 2:28 pm
by NaN
Wieso wird denn die Foreach Schleife mehrmals durchlaufen?
Ich verstehe dieses ganze Template nicht so richtig.

Re: Menücode {$node->current == true} mit id versehen

Posted: Tue Jul 27, 2010 4:02 pm
by nicmare

Code: Select all

{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->current == true || $node->parent == true}
			<li class="aktiv"><a href="{$node->url}">{$node->menutext}</a>

{else}
			<li><a href="{$node->url}">{$node->menutext}</a>{/if}{/foreach}{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}

Re: Menücode {$node->current == true} mit id versehen

Posted: Tue Jul 27, 2010 6:33 pm
by cms_ei
Vielen Dank für die Hinweise und den Code.
Jetzt funktioniert alles.