Unterkategorien einer Unterkategorie in View ausgeben

Ich möchte Unterkategorien von Unterkategorien in einer View ausgeben lassen. Leider werden von den Objekten $osubcat die Unterkategorien dritten Ebene nicht via $osubcat->getSubCats() nicht ausgegeben. Das habe ich aktuell versucht:

[{block name="dd_widget_header_categorylist"}]
    [{if $oxcmp_categories}]

        [{assign var="oxcmp_categories" value=$oxcmp_categories}]
        <ul>
            [{foreach from=$oxcmp_categories item="ocat" key="catkey" name="root"}]
                [{if $ocat->getIsVisible()}]
                    <li>
                        <span>[{$ocat->oxcategories__oxtitle->value}]</span>

                        [{if $ocat->getSubCats()}]
                            <ul>
                                [{foreach from=$ocat->getSubCats() item="osubcat" key="subcatkey" name="SubCat"}]
                                    [{if $osubcat->getIsVisible()}]
                                    <li>
                                        <span>[{$osubcat->oxcategories__oxtitle->value}]</span>

                                        [{if $osubcat->getSubCats()}]
                                            <ul>
                                                [{foreach from=$osubcat->getSubCats() item="osubsubcat" key="subsubcatkey" name="SubSubCat"}]
                                                    [{if $osubsubcat->getIsVisible()}]
                                                    <li>
                                                        <span>[{$osubsubcat->oxcategories__oxtitle->value}]</span>
                                                    </li>
                                                    [{/if}]
                                                [{/foreach}]
                                            </ul>
                                        [{/if}]
                                    </li>
                                    [{/if}]
                                [{/foreach}]
                            </ul>
                        [{/if}]
                    </li>

                [{/if}]
            [{/foreach}]
        </ul>
    [{/if}]
[{/block}]

Kann mir jemand helfen? DANKE!

1 Like

Wenn unter Grundeinstellungen/Performance “leere Kategorien nicht anzeigen” aktiviert wird, sollten die Subcats ausgegeben werden.

Danke für die Antwort. Jedoch ergibt diese wenig Sinn =) und leider auch nicht das gewünschte Ergebnis. Die Option:

Leere Kategorien (keine Unterkategorien, keine Artikel) nicht anzeigen

… ist aktuell deaktiviert. Folglich sollten ja auch die leeren Kategorien mit ausgegeben werden. Problem ist nach wie vor, dass die “SubCats” von “SubCats” nicht ausgegeben werden (3. Ebene). Die 2te Ebene (SubCats) werden ohne Probleme ausgegeben.

Gibt es ggf. noch andere Ideen?

@leofonic, ok super! Wir haben es noch mal getestet. Sofern man die prüfung [{if $osubsubcat->getIsVisible()}][/if] entfernt und das häckhen bei:

Leere Kategorien (keine Unterkategorien, keine Artikel) nicht anzeigen

… setzt → klappt die Ausgabe.

Hinterfragen möchte ich dies eigentlich nicht. Es wundert mich stark, dass bei aktiveren von “Leere Kategorien nicht anzeigen” → diese dann Angezeigt werden :slight_smile:

@leofonic, vielen DANK!!

1 Like

getIsVisible() muss nicht entfernt werden denke ich, sofern die Kategorien eben nicht leer sind.

Die leeren werden dann tasächlich nicht mehr angezeigt (mit getIsVisible()). Aber standardmäßig parst der Shop nur 2 Levels - geht schneller. Aber wenn “leere nicht anzeigen” aktiv ist, parst er alle Levels, denn auch wenn in einer Kat selbst keine Artikel sind könnten ja evtl. in einer Subsubkat noch welche vorhanden sein.