Nur Unterkategorien einblenden, die zur Top-Kategorie passen

Hallo zusammen, erstmal ein frohes Weihnachtsfest an alle. Nun zu meiner Frage bzgl. nur Unterkategorien einblenden. Ich nutze als Hauptnavigation die Top-Navigation und lasse dort nur die Hauptkategorien einblenden. Die Unterkategorien werden in der linken Spalte eingeblendet. Und genau dort in der linken Spalte möchte ich aber nur passend zur Hauptkategorie, die entsprechenden Unterkategorien einblenden. Der Hintergrund ist, dass es zu jeder Hauptkategorie mit der Zeit eine relativ große Zahl an Unterkategorien geben wird. Über ein paar hilfreiche Tipps würde ich mich sehr freuen, kann gerne auch nach den Feiertagen sein.:wink: Weihnachtliche Grüße Markus

Hat keiner einen Tipp oder Codeschnipsel?

Hallo wollstylisten, genau die gleiche Frage hatte ich auch. Wie sich das mit der Standard-Navigation (index/categories_left.tpl) von Shopware realisieren lässt, weiß ich nicht genau. Ich habe statt dessen die Funktionen des Plugins “AdvancedMenu”, das die oberen Reiter mit Dropdown-Menüs ausstattet, für die Navigation links gebraucht. Dies hat den Vorteil (oder auch Nachteil), dass das Menü links immer komplett ausgeklappt ist. Dafür lässt sich das Menü dann aber auch so programmieren, dass alle Kategorien der angewählten Hauptkategorie ausgegeben werden. Hier also eine kurze Anleitung: 1. Aktiviere das mitgelieferte Plugin “AdvancedMenu” (Einstellungen -> Plugin-Manager -> Shopware-Erweiterungen -> AdvancedMenu aktivieren). 2. Editiere in deinem Template die Datei “[color=blue]dein_template/index/left.tpl[/color]” (bzw. lege sie an falls noch nicht vorhanden) und ergänze oder editiere folgenden Block darin: {\* Maincategories left \*} {block name='frontend\_index\_left\_categories'} {if not $sCustomPage} {include file='frontend/plugins/advanced\_menu/advanced\_left.tpl'} {/if} {/block} 3. Jetzt muss noch die Datei “[color=blue]advanced_left.tpl[/color]” in dem Verzeichnis “[color=blue]dein_template/frontend/plugins/advanced_menu/advanced_left.tpl[/color]” angelegt werden. Dies ist die Datei, die das neue Menü links mit dem Code des AdvancedMenu trägt. 4. Fülle die “[color=blue]advanced_left.tpl[/color]” mit folgendem Code: [code]{function name=categories_left level=0}

{foreach from=$categories item=category} - {$category.name}{if ($sCategoryCurrent eq $category.id)}aktuell{/if} {if $category.sub} {call name=categories_left categories=$category.sub level=$level+1} {/if}
{/foreach}{/function}

{foreach from=$sAdvancedMenu item=sCategory} {if !empty($sCategory.flag)} - {$sCategory.description} {if $sCategory.sub} {call name=categories_left categories=$sCategory.sub} {/if}
{/if} {/foreach}
[/code] 5. Passe optional die CSS-Klasse #myLeftNavigation nach deinen Wünschen an. Ich hoffe dies hilft dir weiter. Ob eine Kategorie zur aktuellen Hauptkategorie gehört, erfolgt in diesem Code übrigens über die Abfrage “{if !empty($sCategory.flag)} … {/if}”. Diese Abfrage scheint mit dem klassischen Shopware-Menü in dieser Form aber nicht zu funktionieren bzw. erfüllt dort einen etwas anderen Zweck. Vielleicht ist das auch logisch, weil der Code des Standard-Menüs in der foreach-Ausgabe immer nur denjenigen Ast des Kategorienbaums ausgibt, der zur aktuell angewählten Kategorie gehört. Das Advanced-Menü gibt hingegen immer den kompletten Kategorienbaum aus. Viel Erfolg und schöne Grüße mineralium P.S.: Wenn jemand noch eine bessere/elegantere Lösung kennt, höre ich das natürlich gerne.

Hallo Markus, das Thema gab es in der 3.5. schon. Klappt aber auch mit der 4er Version. http://forum.shopware.de/post11821.html Grüße Erik

1 „Gefällt mir“

Hallo Zusammen, wir haben ein Plugin entwickelt, welches nur die aktiven Kategorien inkl. Unterkategorien anzeigen lässt. Es werden dann nur Haupkategorien mit den dazugehörigen Unterkategorien in der linken Sidebar erscheinen. Dazu haben Sie auch noch verschieden einstell Möglichkeiten. Hier ein Link Dazu: für das Shopware Responsive Template" von Conexco Plugin für das Standard-Template (Emotion) von Shopware: Nur aktive Kategorien im Shop