Erweitertes Menü nur für einzelne Kategorien?

Hallo,

ich habe das Problem, es werden alle Kategorien in der Top Navigation ausgeklappt, auch wenn diese keine sichtbaren unterkategorien haben (siehe Bild).
Er klappt den weißen Kasten aus, obwohl keine Unterkategorien vorhanden sind, was sehr unschön ausschaut.

Kann ich irgendwie das Erweiterte Menü nur für einzelne Kategrien aktivieren? oder irgendwie verhindern das er die Kategorie ausklappt, wenn keine sichtbaren Unterkategorien vorhanden sind?

Vielen Dank im Voraus.

Es ist keine direkte Lösung. Wir standen vor dem gleichen Problem und haben das einfach über nette Bildchen gelöst, die bei Kategorien ohne Unterkategorien, breit angezeigt werden. Vielleicht ist das auch was für Euch!?

Normalerweise zeigt das erweiterte Menü es nicht an, sondern lediglich den default Titel „zur Kategorie“ … Siehe auch im Demo Shop bei dem Blog.

Moin, 

hatte das gleiche ärgernis. Wollte selbst entscheiden welche aufklappen und welche nicht … Habs dann über nen freitext gelöst … 

/themes/frontend/eigenes theme/frontend/plugin/advanced_menu/index.tpl 

anlegen und in die index.tpl dann den code schmeißen:

{function name="categories_top" level=0}

    {$columnIndex = 0}
    {$menuSizePercentage = 100 - (25 * $columnAmount * intval($hasTeaser))}
    {$columnCount = 4 - ($columnAmount * intval($hasTeaser))}

    
        {block name="frontend_plugins_advanced_menu_list"}
            {foreach $categories as $category}
                {if $category.hideTop}
                    {continue}
                {/if}

                {$categoryLink = $category.link}
                {if $category.external}
                    {$categoryLink = $category.external}
                {/if}

                
                    {block name="frontend_plugins_advanced_menu_list_item"}
                        {$category.name}

                        {if $category.sub}
                            {call name=categories_top categories=$category.sub level=$level+1}
                        {/if}
                    {/block}
                
            {/foreach}
        {/block}
    
{/function}


    {block name="frontend_plugins_advanced_menu"}
        {foreach $sAdvancedMenu as $mainCategory}
            {if !$mainCategory.active || $mainCategory.hideTop}
                {continue}
            {/if}

            {$link = $mainCategory.link}
            {if $mainCategory.external}
                {$link = $mainCategory.external}
            {/if}

            {$hasCategories = $mainCategory.activeCategories > 0 && $columnAmount < 4}
            {$hasTeaser = (!empty($mainCategory.media) || !empty($mainCategory.cmsHeadline) || !empty($mainCategory.cmsText)) && $columnAmount > 0}

            

{if $mainCategory.attribute.attribute5 == "1"}{else}

                {block name="frontend_plugins_advanced_menu_main_container"}
                     
                        {block name="frontend_plugins_advanced_menu_button_category"}
                            
                        {/block}

                        {block name="frontend_plugins_advanced_menu_button_close"}
                             
                        {/block}
                    

                    {if $hasCategories || $hasTeaser}
                        
                            {if $hasCategories}
                                {block name="frontend_plugins_advanced_menu_sub_categories"}
                                    {call name="categories_top" categories=$mainCategory.sub}
                                {/block}
                            {/if}

                            {if $hasTeaser}
                                {block name="frontend_plugins_advanced_menu_teaser"}
                                    {if $hasCategories}
                                        
                                    {/if}
                                    
                                        {if !empty($mainCategory.media)}
                                            
                                        {/if}

                                        {if !empty($mainCategory.cmsHeadline)}
                                            {$mainCategory.cmsHeadline}
                                        {/if}

                                        {if !empty($mainCategory.cmsText)}
                                            
                                                {$mainCategory.cmsText|strip_tags|truncate:250:"..."}
                                                
                                                    {s name="learnMoreLink" namespace="frontend/plugins/advanced_menu/advanced_menu"}mehr erfahren{/s}
                                                
                                            
                                        {/if}
                                    
                                {/block}
                            {/if}
                        
                    {/if}
                {/block}
           {/if}  
        {/foreach}
    {/block}

Nun noch im Backend categorie freitexfeld attribute5 anleigen und auf spaltentyp Checkbox stellen.

Danach Cache leeren und Themes kompilieren … nun kann man bei jeder Oberkategorie per Haken selber entscheiden ob sie aufklappen soll oder nicht.

ps: bin kein Programmierer habe es selbst durch rumprobieren erarbeitet und bin mir zu 100% sicher das es irgendeine schönere Möglichkeit gibt. Darum bitte gerne meine „Lösung“ verbessern aber nicht drüber lustig machen. Danke  Grin

Viel erfolg! 

2 „Gefällt mir“

Sieht doch gut aus. Wobei das hier auch gehen würde:

{if $mainCategory.attribute.attribute5 == "0"}

Dann spart man sich das „else“.  Wink

1 „Gefällt mir“

Ich habe es direkt getestet und es funktioniert perfekt  Thumb-Up

Vielen Dank :slight_smile:

1 „Gefällt mir“

Es würde sogar mit $mainCategory.activeCategories > 0, also ohne ein extra Attributfeld, funktionieren als Bedingung. Doch leider verschieben sich die Menüpunkte, weil sie über die Reihenfolge referenziert sind. Oder habe ich etwas übersehen?

Die Lösung scheint leeren .menu–container nicht zu verhindern, jedoch im Design zu kaschieren. @naturdrogerie‍