Hi, ich habe eine Eltern-Kategorie „Community“ mit div. Unterkategorien. Diese wird in der Top Navigation nicht angezeigt. Ich möchte nun gerne im Header eine zusätzliche Navigation erstellen, in der nur die Unterkategorien der Kategorie „Community“ ausgegeben werden; Community gibt es vier mal, weil 4 Sprachen, also 4 versch. IDs. Also von der Logik her so: Für jede Kategorie mit ID1 oder ID2 oder ID3 oder ID4 sollen die Unterkategorien ausgelesen werden und als ungeordnete Liste ausgegeben werden. So ähnlich wie im advanced_menu.tpl müsste das dann wohl aussehen. So ist der Original Code: [code]
{foreach from=$categories item=category} - {$category.name} {if $category.sub} {call name=categories_top categories=$category.sub level=$level+1} {/if}
{/foreach} [/code] Wie kann ich den Code umschreiben, so daß nur der String mit den Kategorien IDs 1-4 ausgegeben wird? Danke schon mal für Eure Hilfe, VG
[quote=“flo.kalango”]Hi, ich habe eine Eltern-Kategorie “Community” mit div. Unterkategorien. Diese wird in der Top Navigation nicht angezeigt. Ich möchte nun gerne im Header eine zusätzliche Navigation erstellen, in der nur die Unterkategorien der Kategorie “Community” ausgegeben werden; Community gibt es vier mal, weil 4 Sprachen, also 4 versch. IDs. Also von der Logik her so: Für jede Kategorie mit ID1 oder ID2 oder ID3 oder ID4 sollen die Unterkategorien ausgelesen werden und als ungeordnete Liste ausgegeben werden. So ähnlich wie im advanced_menu.tpl müsste das dann wohl aussehen. So ist der Original Code: [code]
{foreach from=$categories item=category} - {$category.name} {if $category.sub} {call name=categories_top categories=$category.sub level=$level+1} {/if}
{/foreach} [/code] Wie kann ich den Code umschreiben, so daß nur der String mit den Kategorien IDs 1-4 ausgegeben wird? Danke schon mal für Eure Hilfe, VG[/quote] Etwa so?
{foreach from=$categories item=category} - [{$category.name}]({$category.link}) {if $category.sub AND $category.id \> 0 AND $category.id \<= 4} {call name=categories\_top categories=$category.sub level=$level+1} {/if}
{/foreach}
Hm, danke schon mal für Deine Hilfe. Ich habe es erst mal so gelöst, da meine „Community“ Kategorie die einzige ist, die in der TopNavigation nicht angezeigt wird. [code]{function name=categories_top level=0}
{foreach from=$categories item=category} - {$category.name}
{/foreach} {/function}
{foreach from=$sAdvancedMenu item=sCategory} {if $sCategory.hidetop} {if $sCategory.sub} {call name=categories_top categories=$sCategory.sub} {/if} {/if} {/foreach}
[/code] Aber das ist natürlich keine saubere Lösung. Sobald ein Shopadmin im Backend ein Häckchen bei .hidetop für eine andere Kategorie macht, wirft’s mir das Ganze Layout durcheinander. Wenn ich statt dem Teil {if $sCategory.hidetop} folgendes einfüge: {if $category.id = 475} werden plötzlich alle Unterkategorien der ersten Elternkategorie ausgegeben. Der Code {foreach from=$sAdvancedMenu item=sCategory} {if $sCategory.hidetop} {if $sCategory.sub} {call name=categories\_top categories=$sCategory.sub} {/if} {/if} {/foreach}
macht doch folgendes: Für jedes Item aus der Tabelle Kategorien soll, wenn die Kategorie .hidetop ist und wenn die Kategorie Unter (Sub) Kategorien hat die Funktion categories_top aufgerufen werden. Und die Funktion listet dann die jeweiligen Unterkategorien auf. Und ich möchte nun gerne, daß nicht überprüft wird {if $sCategory.hidetop}, sondern „Wenn es eine Kategorie mit ID 475 gibt, oder eine mit ID 495, und diese Subs hat, sollen diese Subs ausgegeben werden.“ Aber irgendwie klappt das mit der Bedingung nicht…