Erweiterte Navigation - Navigationsbegriffe reduzieren

Hallo Community, ich nutze die erweiterte Navigation, habe allerdings in einem Navigationspunkt über 30 Hersteller, die über die Seite herausgehen. Die Hersteller werden auch auf der Folgeseite angezeigt, so dass ich sie nicht (alle) in der Hauptnavigation brauche. Wie bekomme ich die Liste für diesen einen Navigationspunkt kürzer? - kann ich die Liste einfach kürzen, z. B. alles nach 10 Begriffen „abschneiden“? - alternativ die ganze Subnavigation dieses Punktes ausblenden? - Oder, was am elegantesten wäre, bestimmte Hersteller, z. B. die Top Ten, anzeigen lassen. bzw. die Subnavigationpunkte manuell pflegen, also nicht dynamisch. Viele Grüße Florian

Hallo Florian, die Navi kannst du so abschneiden: [code] {foreach from=$sMenu.gLeft item=item name=foo} {if $smarty.foreach.foo.index == 10} {break} {/if}

  • [{$item.description}]({if $item.link}{$item.link}{else}{url controller=custom sCustom=$item.id title=$item.description}{/if} „{$item.description}“) {if $item.active && $item.subPages}
    {foreach $item.subPages as $subPage} - [{$subPage.description}]({url controller=custom sCustom=$subPage.id} „{$subPage.description}“)
    {/foreach} {/if}
    {/foreach} [/code] Template: frontend/index/menu_left.tpl Ist aber ungetestet. Gruß Marco

Hallo Marco, danke, habe es gerade probiert. Leider passiert bislang gar nichts. Ich habe auch eine Frage zum menu_left. Wird über dieses dann auch die Hauptnavigation abgeleitet? Nachteil könnte dann sein, dass auch das wirkliche Menü auf der linken Seite gekürzt wird, oder verstehe ich das falsch?

Hallo Florian K. das Menü in der linken Spalte und das Drop-Down (horizontale) sind zwei verschiedene Paar Schuh. Beide funktionieren unabhängig voneinander und werden in unterschiedlichen Templates erstellt. Das horizontale Menü (mit den Drop-Down) wird im Frontendtemplate an dieser Stelle zusammengebaut: /frontend/plugins/advanced_menu/advanced_menu.tpl Hier kann man einen Zähler einbauen, der die foreach-Schleife für eine definierte Kategorie-ID nach 10 Durchläufen abbricht. Zum Beispiel eine if-Abfrage vor der Schleife. {foreach from=$categories item=category} {if $category@iteration \< 11} {\*bricht nach 10 Durchgängen ab, Kategorie muss zusätzlich abgefragt werden\*} ... {/if} {/foreach} Viele Grüße HTH

Hallo HTH, das hört sich nach dem an, was ich benötige. Kannst Du mir evtl. den Einbau etwas genauer erklären? Ich bin nicht so fit auf dieser Ebene und mir ist nicht ganz klar, wann das {/if} im Code abschliessen muss. Danke und Gruss Florian

Hallo, die „…“ einfach durch die Zeilen, die im Originaltemplate stehen ersetzen, das {if) und {/if} stehen so schon richtig. [code]{foreach from=$categories item=category} {if $category@iteration < 11} {*bricht nach 10 Durchgängen ab, bei jeder Kategorie *}

  • {$category.name} {if $category.sub} {call name=categories_top categories=$category.sub } {/if}
    {/if}#newline#{/foreach}[/code] oder so, mit Kategorieeinschränkung {foreach from=$categories item=category} {if ($category@iteration == 11) && ($sCategory.id eq 5)} {break} {\*bricht nach 10 Durchgängen ab, wenn die Hauptkategorie-ID = 5 ist; auch in den Unterkategorie-drop-downs \*} {/if}- [{$category.name}]({$category.link}) {if $category.sub} {call name=categories\_top categories=$category.sub } {/if} {/foreach}

Hallo HTC, leider funktioniert es so noch nicht. Ich habe weiterhin ein Problem mit dem {if), weil da schon eine Schleife mit .hidetop ist. Unten der bestehende Originalcode. Wenn ich in diesem die .hidetop Schleife durch Deinen Codevorschlag austausche, verschwindet die Navigation komplett, bis auf das Home. Wenn ich versuche Dein If rein zu schachteln, was an sich komisch wirkt, gibt es einen Error. [code]

  • [{se name=‘IndexLinkHome’}Home{/se}]({url controller=‘index’} “{s name=‘IndexLinkHome’}{/s}”)
    {foreach from=$sAdvancedMenu item=sCategory} {if !$sCategory.hidetop} - {$sCategory.description} {if $sCategory.sub} {call name=categories_top categories=$sCategory.sub} {/if}
    {/if} {/foreach}
    [/code]

Hallo, das ist doch die falsche Stelle, oberhalb in der function wird die Liste rekursiv zusammengebaut. Bei der angesprochenen Position steht auch {foreach from=$sAdvancedMenu item=sCategory} und bei mir {foreach from=$categories item=category} . Es brauchst wirklich nur der Block beginnend bei der {foreach from=$categories item=category} bis {/foreach} per Copy Paste ausgetauscht werden. Ich lese das hier nicht regelmäßig , bei Rückfragen bitte PM. Viel Erfolg HTH

1 Like

Hi HTH, danke für die Korrekturen in den Codes, beide funktionieren jetzt einwandfrei. Viele Grüße Florian