Navigation wird auf der 3. Menü Ebene nicht mehr angezeigt

Guten morgen liebe Community,

ich bin momentan dabei, ein neues Theme für einen Oxid Shop (4.9.6) zu entwickeln. Das Design steht weitestgehend, Probleme bereitet mir das Einpflegen der Logik.

Ein Beispiel:

Ich habe bereits eine Navigation für Telefone und Tablets geschrieben. Code wie folgt:


<ul>
  <li><a href="[{$oViewConf->getHomeLink()}]">Home</a></li>
  [{foreach from=$oxcmp_categories item=category_lvl_1}]
  [{if $category_lvl_1->getIsVisible()}]
  <li class="[{if $category_lvl_1->getExpanded()}]active[{/if}] [{if $category_lvl_1->getHasVisibleSubCats()}]sub[{/if}]"><a href="[{$category_lvl_1->getLink()}]">[{$category_lvl_1->getTitle()}]</a>
    [{if $category_lvl_1->getHasVisibleSubCats()}]
      <ul>
        [{foreach from=$category_lvl_1->getSubCats() item=category_lvl_2}]
        <li class="[{if $category_lvl_2->getExpanded()}]active[{/if}] [{if $category_lvl_2->getHasVisibleSubCats()}]sub[{/if}]"><a href="[{$category_lvl_2->getLink()}]">[{$category_lvl_2->getTitle()}]</a>
          <ul>
            [{foreach from=$category_lvl_2->getSubCats() item=category_lvl_3}]
            <li class="[{if $category_lvl_3->getExpanded()}]active[{/if}] [{if $category_lvl_3->getHasVisibleSubCats()}]sub[{/if}]"><a href="[{$category_lvl_3->getLink()}]">[{$category_lvl_3->getTitle()}]</a></li>
            [{/foreach}]
          </ul>
        </li>
        [{/foreach}]
      </ul>
    [{/if}]
  </li>
  [{/if}]
  [{/foreach}]
</ul>

Ich habe mir die Funktionen teils aus dem Azure Theme und teils über die Docs besorgt. Der Code funktioniert und tut, was er soll.

Nun sollen im oberen Teil der Seite die Hauptkategorien, in einem weiteren Menü darunter die entsprechenden Unterkategorien (erster Sublevel) der gewählten Hauptkategorie angezeigt werden. Ist eine Unterkategorie aktiv, sollen auch ihre Kinder (zweiter Sublevel) in einem dritten Menü angezeigt werden. Alle drei Menüs sind voneinander getrennt, also separate ul’s.

Probiert habe ich folgendes:

Zuerst besorge ich mir den “CategoryRoot”:


[{assign var="categoryRoot" value=$oxcmp_categories->getClickRoot()}]
[{assign var="categoryRoot" value=$categoryRoot[0]}]

Danach prüfe ich darauf und kann das Menü so bspw. auf der Hauptseite ausblenden. Später im Code iteriere ich über die Unterkategorien, die ich mir wie oben per getSubCats() hole, zeige diese an und möchte schlussendlich natürlich auch über deren Unterkategorien iterieren. Genau dies geht aber nicht.

Anzeige der Kategorien auf Sublevel 2, also bspw. /scarves/wool - funktioniert.


[{foreach from=$categoryRoot->getSubCats() item=subCat}]
    [{if $subCat->getIsVisible()}]
        <li class="[{if $subCat->getExpanded()}]active[{/if}]"><a href="[{$subCat->getLink()}]">[{$subCat->getTitle()}]</a></li>
    [{/if}]
[{/foreach}]

Später:

Anzeige der Kategorien auf Sublevel 3, also bspw. /scarves/wool/myawesomebrand - funktioniert [I]nicht[/I].


[{foreach from=$categoryRoot->getSubCats() item=subCat}]
    [{if $subCat->getIsVisible()}]
        <ul class="nav-column">
            [{foreach from=$subCat->getSubCats() item=sCat}]
                    <li class="[{if $sCat->getExpanded()}]active[{/if}]"><a href="[{$sCat->getLink()}]">[{$sCat->getTitle()}]</a></li>
            [{/foreach}]
        </ul>
    [{/if}]
[{/foreach}]

Explizite Hilfe zu diesem Problem ist natürlich gern gesehen aber prinzipiell geht es mir eher darum, wie ich solche Probleme [I]selbst[/I] lösen kann. Gibt es abseits des Azure Themes noch weitere Resourcen, an denen ich mich orientieren könnte?

Danke für eure Antworten

suchst Du sowas?
http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.9.6/index.html

Hallo MeisterYoda,

jain. Die Dokumentation habe ich bereits gefunden (ist ja schließlich verlinkt ;)) und auch durchgehend offen, allerdings nutzt sie mir als [I]neuer[/I] Oxid-Entwickler allein relativ wenig.

Ein Beispiel: Die Klasse oxCategory hat einen Member getSubCats(), dokumentiert mit [I]returns the sub category array[/I]. Klar, im Context eines Shops selbsterklärend. Dann gibt es allerdings noch einen weiteren Member namens getContentCats(), dokumentiert mit [I]returns the content category array[/I]. Schon klar, das kann ich mir bei dem Namen auch irgendwie denken. Wo nun aber genau der [I]Unterschied[/I] zwischen den beiden Membern besteht, wird mir [I]allein aus der Doku[/I] nicht klar. Google ich bspw. “oxid subcat contentcat” finde ich ebenfalls keine Erklärung dazu.

Die Forensuche ist auch eine prima Ressource :slight_smile:
http://forum.oxid-esales.com/showthread.php?t=25316

Guten Morgen,

mein Problem hat sich mittlerweile auf magische Weise von selbst gelöst. Die Grundstruktur des Codes ist nach wie vor dieselbe, von daher kann ich mir das Ganze eigentlich nur durch einen obskuren Typo erklären, den ich gefühlte fünfzig Mal überlesen haben muss. Von [I]wissen[/I] kann da jedenfalls keine Rede sein. :confused:

Wie ich oben schon schrieb sollte speziell dieses Problem aber gar nicht das eigentliche Thema des Threads sein, [I]sondern nur zur Illustration dienen[/I]. Es handelt sich bei weitem nicht um das Einzige, mit dem ich mich konfrontiert sehe und für jedes weitere einen neuen Thread aufzumachen erscheint mir als wenig zielführend. Daher nochmals meine ursprüngliche Frage; gibt es neben Doku und Wiki weitere Resourcen, die sich mit der [I]Programmierung[/I] des Shops befassen oder zumindest irgendwie andeuten, wie ich beispielsweise in der start.tpl an die Artikel für Kategorie X komme oder ähnliches?

Gruß

Das Forum wurde ja als Quelle schon erwähnt.
Auf Sitepoint gabs ein Tutorial auf englisch,
Es gibt noch irgendeinen indischen PHP Blog, aber der wurde auf indisch-englisch geschrieben und dann samt Code durch google translate gejagt, somit eher unbrauchbar.

Dann gibts noch:
planet oxid (oxidforge)
Marcos blog
Sourcecode lesen und verstehen hilft immer sehr gut weiter.
Module, Module, Module und nochmal Module. Auf github und im Exchange gibts einige open source Module, deren Quelltext sich man ebenfalls anschauen könnte.

Wie oben geschrieben, bei 24.000 Threads und 160.000 Posts ist das Forum eine ergiebige Ressource :slight_smile:

Oder Du liest ganz old-shool ein Buch http://oxid-kochbuch.de/

Morgen allerseits,

nach einer kurzen Zeit der Funkstille kann ich nun berichten, dass es voran geht. Langsam, aber es geht voran. :rolleyes:

Ich bin nach wie vor der Meinung, dass die ganze Geschichte einem weitaus schwerer gemacht wird, als sie es sein müsste, was wohl auch erklärt, warum man für OXID kaum gute Themes unter mehreren hundert Euro findet. Aber gut. Es geht voran.

Danke erstmal für eure Ratschläge. Ich habe noch ein, zwei spezifische Fragen zu denen ich dann aber einen neuen Thread öffnen werde. Hier kann von meiner Seite aus zu gemacht werden. :slight_smile:

Gruß