Sidebar Kategorien: Alle Unterkategorien Ausklappen?

Hallo,

ich würde gerne in der linken Sidebar alle Unterkategorien der ersten Ebene ausklappen.

Weiss jemand, wie man so etwas realisieren könnte?

Im Templete kommen in der Templatevariable „sCategories“ nur die Unterkategorien der aktuell ausgewählten Oberkategorie vor (im Array subcategories).
Über sCategorien komme ich also nicht an die Namen und Links aller Unterkategorien.

Das Advanced Menü generiert die Template variabable „sAdvancedmenu“, in der alle Kategorien stehen. Da könnte ich die Infos rausholen, aber das 
finde ich nicht elegant.

Irgendwelche andere Ideen? Ich schreibe ein Plugin und könnte somit auch direkt auf die Datenbank zugreifen.

Danke und viele Grüsse,

Jens 

@frimipiso schrieb:

Das Advanced Menü generiert die Template variabable „sAdvancedmenu“, in der alle Kategorien stehen. Da könnte ich die Infos rausholen, aber das 
finde ich nicht elegant.

Na die Funktionalität existiert ja schon, warum „elegant“? Soll das Plug-In auch ohne Advanced Menu laufen? Prüfe doch einfach ob das Plug-In im aktuellen Shop aktiv ist und entscheide dann ob die schon existierenden Daten genommen werden sollen oder Deine eigene Methode das Frontend erweitert. 

1 „Gefällt mir“

Advanced Menu ist aktiv und ich könnte darauf zugreifen. Die Kategorien in sAdvancedMenu sind allerdings in einem Array, in dem die Elemente sequentiell indiziert sind und die Kategorie id ist ein Element im Array. Ich kann also nicht direkt über die Kategorie id zugreifen, sondern muss im Array suchen.

Das ist nicht elegant.

Bessere Ideen?

Tach Zusammen,

Problem gelöst:

wenn man das Advanced Menu installiert hat, sind alle Kategorien in sAdvancedmenu im Template vorhanden. Man kann in sidebar.tpl
einfach die Funktion categories mit dieser Variable aufrufen und es funktioniert. Allerdings sind die Unterkategorien in “sub” und nicht in
"subcategories gespeichert.

Dieser Code in sidebar-categories.tpl funktioniert (in eigenem Template oder Plugin):

{* Maincategories left *}
{function name=categories level=0}
    
        {* @deprecated The block "frontend_index_categories_left_ul" will be removed in further versions, please use "frontend_index_categories_left_before" *}
        {block name="frontend_index_categories_left_ul"}{/block}

        {block name="frontend_index_categories_left_before"}{/block}
        {foreach $categories as $category}
            {block name="frontend_index_categories_left_entry"}
                
                    
                        {$category.description}

                        {if $category.childrenCount}
                            
                                
                            
                        {/if}
                    
                    {block name="frontend_index_categories_left_entry_subcategories"}
                        {if $category.sub}
                            {call name=categories categories=$category.sub level=$level+1}
                        {elseif $category.subcategories}
                            {call name=categories categories=$category.subcategories level=$level+1}
                        {/if}
                    {/block}
                
            {/block}
        {/foreach}
        {block name="frontend_index_categories_left_after"}{/block}
    
{/function}

{if $sAdvancedMenu}
    {call name=categories categories=$sAdvancedMenu}
{elseif $sCategories}
    {call name=categories categories=$sCategories}
{elseif $sMainCategories}
    {call name=categories categories=$sMainCategories}
{/if}

 

Viel Spass,

Jens

 

1 „Gefällt mir“

@frimipiso schrieb:

Tach Zusammen,

Problem gelöst:

wenn man das Advanced Menu installiert hat, sind alle Kategorien in sAdvancedmenu im Template vorhanden. Man kann in sidebar.tpl
einfach die Funktion categories mit dieser Variable aufrufen und es funktioniert. Allerdings sind die Unterkategorien in „sub“ und nicht in
"subcategories gespeichert.

Dieser Code in sidebar-categories.tpl funktioniert (in eigenem Template oder Plugin):

{* Maincategories left *}
{function name=categories level=0}

{* @deprecated The block „frontend_index_categories_left_ul“ will be removed in further versions, please use „frontend_index_categories_left_before“ *}
{block name=„frontend_index_categories_left_ul“}{/block}

{block name=„frontend_index_categories_left_before“}{/block}
{foreach $categories as $category}
{block name=„frontend_index_categories_left_entry“}

{$category.description}

{if $category.childrenCount}

{/if}

{block name=„frontend_index_categories_left_entry_subcategories“}
{if $category.sub}
{call name=categories categories=$category.sub level=$level+1}
{elseif $category.subcategories}
{call name=categories categories=$category.subcategories level=$level+1}
{/if}
{/block}

{/block}
{/foreach}
{block name=„frontend_index_categories_left_after“}{/block}

{/function}

{if $sAdvancedMenu}
{call name=categories categories=$sAdvancedMenu}
{elseif $sCategories}
{call name=categories categories=$sCategories}
{elseif $sMainCategories}
{call name=categories categories=$sMainCategories}
{/if}

 

Viel Spass,

Jens

Hallo zusamenn, ich habe diese Lösung versucht, allerdings ohne Erfolg. Muss man denn außer die sidebar-categories.tpl zu ändern noch etwas ändern?

Danke

Fände das auch spannend aber nutze advanced menü auch nicht sondern ein ganz anderes…hmhmh