Navigation Main (leere ul-tags)

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Navigation Main (leere ul-tags)

Beitrag von Horst1234 » Di 28. Jan 2014, 12:24

Um alle Kategorien angezeigt zu bekommen (Flyout-Menu), habe ich die 2. if-Bedingung im get.tpl entfernt, nun werden also immer alle Subkategorien eingelesen.
Dann klappen alle Submenus aus (wie gewollt), aber die Links funktionieren nicht mehr richtig - will heißen der Dirketklick geht nicht, Rechtsklick "Öffnen in neuem Fenster" klappt.
Ich habe nun nach viel Testen herausgefunden, woran es liegt. Das navigation_main erzeugt nun folgenden Quelltext (gekürzt):

Code: Alles auswählen

<ul role="menubar" class="navigation">
     <li><a class=" noicon" href="/xy/index.html" title="xy">qwer</a>  <ul role="menubar" class=""></ul>  </li>
    <li><a class=" noicon" href="/xy/index.html" title="xy">qwer</a>  <ul role="menubar" class=""></ul>  </li>
    <li><a class=" noicon" href="/xy/index.html" title="xy">qwer</a>  <ul role="menubar" class=""></ul>  </li>
    <li><a class=" noicon" href="/xy.html" title="xy">qwer</a>
	<ul role="menubar" class="">
	<li><a class=" noicon" href="/xy/das-institut/xy.html" title="xy">qwer</a>  <ul role="menubar" class=""></ul>  </li>
             <li><a class=" noicon" href="/xy/ein-starkes-team/xy.html" title="xy">qwer</a>  <ul role="menubar" class=""></ul>  </li>
             </ul>
    </li>
  [...]
</ul>
Es entstehen also viele leere ul-Tags (<ul role="menubar" class=""></ul>). Eine Navigation ohne diese leeren ul-tags (hab ich testweise handysch eingesetzt) klappt.
Auch die Klasse "menubar" ist nicht das Problem, ich hab testweise alle css-Styles auskommentiert.

Meine Frage nun: Gibt es eine Möglichkeit, diese leeren ul-tags zu entfernen?

Grüße aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Navigation Main (leere ul-tags)

Beitrag von homtata » Di 28. Jan 2014, 18:03

Ja, das entsteht, weil ja ohne wenn und aber die Schleife bei jedem Untermenü durchlaufen wird, ob darunter nun eine Ebene existiert oder nicht. Beim Durchlaufen stellt die Schleife dann fest, dass es nix einzutragen gibt und erzeugt die leeren ul-Teile.

Um das zu unterbinden, musst du wieder eine Schleife einfügen, die die Untermenüs doch nur unter bestimmten Bedingungen durchläuft, etwa so:

Code: Alles auswählen

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

<ul id="{$ulId}" class="{$ulclass}">

    {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')}
        {assign var="idcat" value=$wrapper.item->get('idcat')}
        {assign var="css_level" value=$wrapper.level}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
        <li class="{$aClass}"  id="cat{$idcat}">
            <a href="{$url}" title="{$name}">{$name}</a>
        {if !empty($wrapper.subcats) }
            {include file="navigation_main/template/get.tpl"
			tree=$wrapper.subcats path=$path ulId="" ulclass="" }
		{/if}
        </li>
     {/foreach}
</ul>

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

Antworten