Seite 1 von 1

Unterschiedliche Klassen angeben in der Navigation

Verfasst: Fr 25. Okt 2013, 09:18
von apicalart
Wie muss die navigation_main abgeändert werden, um <li> eine class haschildren zuzuteilen, wenn es weitere Kategorien darunter gibt und keine class wenn es keine Unterkategorien gibt.

Code: Alles auswählen

{if 0 lt $ulId|strlen}<!-- navigation_main/template/get.tpl -->{/if}

<ul class="{$ulId}">

    {foreach from=$tree item=wrapper}
        {assign var="idcat" value=$wrapper.idcat}
        {assign var="url" value=$wrapper.item->getLink()}
        {assign var="name" value=$wrapper.item->get('name')}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
        <li class="haschildren">
            <a class="{$aClass}" href="{$url}" title="{$name}">{$name}</a>
        {if $idcat|in_array:$path}
            {include file="navigation_main/template/get.tpl"
                tree=$wrapper.subcats path=$path ulId=""}
        {/if}
        </li>
     {/foreach}
</ul>

{if 0 lt $ulId|strlen}<!-- /navigation_main/template/get.tpl -->{/if}

Re: Unterschiedliche Klassen angeben in der Navigation

Verfasst: Sa 26. Okt 2013, 13:59
von homtata
Hallo,

das folgende ist komplett ungetestet und eher so eine Art Anleitung, wie es vermutlich klappen könnte:

so wie man überprüft, ob die gerade aktuell ausgegebene idcat aktiv ist und dann die Klasse angepasst wird, sollte das auch ähnlich für das Untermenü jedes aktuell erzeugten Menüpunkts gelten.

Vermutlich ist das also ein Konstrukt ähnlich wie folgendes an den bestehenden Code anzuhängen:

Code: Alles auswählen

        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
       {if !empty($wrapper.subcats)}
            {assign var="childClass" value='haschildren'}
        {else}
            {assign var="childClass" value=''}
        {/if}
       <li class="{$childClass}">
wobei die Abfrage mit !empty() ggf. anzupassen wäre - ich weiß nicht genau, welchen Zustand $wrapper.subcats hat, ob es ein Array oder ein leerer String ist oder nicht existiert oder oder oder. Musst du ggf. durchprobieren ob if == '' oder !isset() oder was auch immer ;-)