In xt:Commerce kann man im Admin-Bereich die Funktion “Product-Navigator” aktivieren - Dann erscheinen in der Artikel-Detail-Ansicht Links, mit denen man sich durch die Produkte der jeweiligen Kategorie “durchblättern” kann*.

*Anmerkung: So ganz sauber funktioniert der “Product-Navigator” übrigens leider nicht - die erzeugte Reihenfolge hat nicht immer etwas mit der “tatsächlichen” Reihenfolge der Artikel in den Kategorien zu tun. Außerdem kann’s bei mehrfach verlinkten Produkten passieren, dass ungewollt die aktive Kategorie gewechselt wird. Letzteres kann » hiermit vermieden werden - Eine Lösung zum ersten Problem kommt bald an anderer Stelle …

Der CatNavigator:

Wie dem auch sei: Wer in seinen Produkt- oder Kategorien-Listen entsprechende “Blättern”-Links haben möchte, kann sich nun den “CatNavigator” herunterladen - und damit beispielsweise so etwas erzeugen:

Beispiel CatNavigator
Grobes Beispiel: CatNavigator - ist nicht wirklich hübsch, das war nur zum Testen …

Download und Installation:

  1. Dieses » Zip-Archiv herunterladen und entpacken
  2. Legen Sie einen zusätzlichen PlugIn-Ordner für Ihr Template fest
    (Eine Anleitung dazu finden Sie » hier …)
  3. Speichern Sie die Datei “function.CatNavigator.php” in diesem Ordner ab
  4. Danach kann {CatNavigator} im Template benutzt werden
  5. In den Dateien “CatNavigator.html” und “CatNavigator_dings.html” finden Sie Code-Beispiele

Anwendung im Template:

Wenn man die Funktion {CatNavigator} aufruft, wird eine Smarty-Variable mit allen nötigen Daten gefüllt.

Also: {CatNavigator to=dings} füllt $dings, {CatNavigator to=test} füllt $test. Gibt man keinen “to”-Parameter an, wird $CAT_NAVIGATOR gefüllt. Gehen wir mal davon aus, dass “to” leer ist - Damit können folgende “Smarties” im Template genutzt werden:

{$CAT_NAVIGATOR.PREV_CAT.name}
{$CAT_NAVIGATOR.PREV_CAT.link}
–> Name und Link der vorherigen Kategorie (leer, wenn man in der “ersten” Kategorie ist)

{$CAT_NAVIGATOR.FIRST_CAT.name}
{$CAT_NAVIGATOR.FIRST_CAT.link}
–> Name und Link der ersten Kategorie (nur gefüllt, wenn “vorherige Kategorie” nicht gleich der “ersten” ist)

{$CAT_NAVIGATOR.NEXT_CAT.name}
{$CAT_NAVIGATOR.NEXT_CAT.link}
–> Name und Link der nächsten Kategorie (leer, wenn man in der “letzten” Kategorie ist)

{$CAT_NAVIGATOR.FIRST_CAT.name}
{$CAT_NAVIGATOR.FIRST_CAT.link}
–> Name und Link der letzten Kategorie (nur gefüllt, wenn “nächste Kategorie” nicht gleich der “letzten” ist)

{$CAT_NAVIGATOR.THIS_CAT.name}
{$CAT_NAVIGATOR.THIS_CAT.link}
–> Name und Link der aktiven Kategorie

{$CAT_NAVIGATOR.THIS_CAT.num}
–> “Positionsnummer” der aktiven Kategorie

{$CAT_NAVIGATOR.NUM_CATS}
–> Gesamtzahl aller Kategorien, die der jeweiligen “Mutterkategorie” untergeordnet sind

{$CAT_NAVIGATOR.MOTHER_CAT.name}
{$CAT_NAVIGATOR.MOTHER_CAT.link}
–> Name und Link der jeweiligen “Mutterkategorie” - befindet man sich in einer der Hauptkategorien, ist beides leer

Im Zip-File enthalten sind zwei Dateien mit HTML-Beispielen, die an den gewünschten Stellen in Ihrem xt:Commerce-Templates eingesetzt werden können - Damit sollte deutlich werden, was man mit {CatNavigator} so alles anstellen kann.

Zugegebenermaßen ist das kein besonders schönes HTML (das geht auch ohne Tabelle) - aber als Demo langt’s, und außerdem ist ohnehin jedes Template ein bisschen anders …

Hinweise:

Die gesamte Geschichte arbeitet ausschließlich in Kategorien- oder Artikel-Listen. Auf anderen Seiten füllt {CatNavigator} schlichtweg nichts. Daher ist man nicht zwangsläufig drauf angewiesen, diese Funktion bloß in der “product_listing_v1.html” oder in der “categorie_listing.html” einzusetzen, in der “index.html” geht’s auch.

Nur eine Kategorie? Befindet man sich in einer Kategorie ohne weitere “Schwestern-Kategorien”, erzeugt {CatNavigator} keine Daten.

Natürlich werden nur aktive und für die jeweilige Kundengruppe zugelassene Kategorien gefunden.

All meine Smarty-Functions, die irgendwelche Variablen “vollschreiben”, haben den oben erwähnten “to”-Parameter. Damit kann man festlegen, was genau gefüllt werden soll. Vielleicht ist (z.B. durch irgendein PlugIn) ein von mir ausgedachter Name bereits belegt - via “to” ist man jedenfalls flexibel und kann sich einen neuen Namen aussuchen.

Dazu als Beispiel die “CatNavigator_dings.html” - So könnte man’s machen, falls $CAT_NAVIGATOR bereits mit irgendwelchen anderen Daten gefüllt und $dings noch “frei” ist. $leberwurst oder $bananenhund (was auch immer das sein mag) klappen selbstverständlich auch, man muss es sich halt nur merken können.

 

Und nun viel Spaß beim Basteln!