Bin gestern auf der Suche gewesen nach einer Lösung hierzu und habe einen Ansatz für Shopware 4 gefunden. Da das allerdings nicht eins zu eins zu benutzen war, hab ich es für Shopware 5 umgebaut. Vielleicht hilft es ja jemandem.
{function categories level=0 }
{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"}
{if $category.attribute.attribute1 == 'jacques'}
{$blog_id = ''}
{else}
{$blog_id = 'blog'}
{/if}
{* Blogseiten im linken Menue verbergen *}
{if $category.attribute.attribute1 != $blog_id}
{if ($category.flag or $category.subcategories) and $level <= 3}
{* {if ($category.flag or $category.subcategories) and $level < 2} *}
{$category.description}
{if $category.childrenCount}
{/if}
{if $category.flag} {$m1 = $level} {/if}
{block name="frontend_index_categories_left_entry_subcategories"}
{if $category.subcategories}
{call name=categories categories=$category.subcategories level=$level+1}
{/if}
{/block}
{/if}
{if (!$category.flag and $level > 0 and !$category.subcategories) or $level >= 3}
{*if $m1 != $level *}
{if $category.attribute.attribute1 != 'blog'}
{$category.description}
{if $category.childrenCount}
{/if}
{*/if*}
{/if}
{if $category.subcategories}
{call name=categories categories=$category.subcategories level=$level+1}
{/if}
{/if}
{/if}
{/block}
{/foreach}
{block name="frontend_index_categories_left_after"}{/block}
{/function}
{if $sCategories}
{call name=categories categories=$sCategories}
{elseif $sMainCategories}
{call name=categories categories=$sMainCategories}
{/if}
Was das da in Zeile 11 bis 15 genau soll, weiß ich nicht. Bezieht sich wohl auf den Anwendungsfall von Shopware 4. Scheint hier auch nicht weiter zu stören und man kann es vermutlich weglassen.
Vielleicht passe ich das ganze noch ein wenig an. Aber erstmal funkioniert es. Viel Spaß!
Grüße, Thorsten