Zum Hauptinhalt springen
Diese Seite beschreibt den zweiten der beiden Menütypen. Beim ersten Typ erzeugt ein einziges Tag das fertige Listenmenü, hier bauen Sie das Menü dagegen selbst aus Bereichen und Schleifen auf und können jeden Navigationspunkt einzeln positionieren und gestalten. Der Ablauf ist immer derselbe. Zuerst laden Sie den Menübaum mit einem Tag vor. Danach geben Sie ihn mit Bereichen und Schleifen so aus, wie Sie es brauchen. Binden Sie das Produktmenü in alle Shop-Templates ein, die Zugriff auf den Produktkatalog bieten sollen. Ein Template ohne dieses Konstrukt zeigt keine Katalognavigation.

Schritt 1: Menübaum vorladen

Ohne vorgeladenen Menübaum bleiben alle Bereiche und Schleifen leer. Dafür stehen zwei Tags zur Verfügung, die den Tags des automatisch generierten Menüs entsprechen und dieselben Parameter haben. Über die Parameter legen Sie unter anderem die Start-Ebene und die End-Ebene fest. Die Bedeutung der einzelnen Parameter ist beim automatisch generierten Produktmenü beschrieben und gilt hier unverändert. Wegweiser: Automatisch generiertes Produktmenü Setzen Sie den fünften Parameter auf yes und nutzen damit die MouseOver-Funktion, benötigen Sie die WEBSALE JavaScript-Bibliothek ab Version 1.8.1. Sie muss im <head> jedes Templates eingebunden sein, das dieses Produktmenü enthält.

Schritt 2: Ausgabemethode wählen

Für die Ausgabe gibt es zwei Methoden. Sie unterscheiden sich vor allem im Pflegeaufwand, wenn der Produktkatalog wächst. Beide Methoden erreichen eine Tiefe von bis zu zehn Ebenen, also das Hauptmenü und bis zu neun Untermenü-Ebenen. Wie viele davon tatsächlich erscheinen, entscheiden die Parameter des Ladetags.

Die Status-Klassen verstehen

In allen folgenden Beispielen taucht dasselbe Konstrukt im class-Attribut auf:
Der Klassenname wird dabei aus zwei Teilen zusammengesetzt. Den festen Teil, hier level1, schreiben Sie selbst. Den Zusatz liefert genau einer der drei Bereiche, je nachdem, in welchem Zustand der Navigationspunkt gerade ist. Herauskommt also level1_opened, level1_closed oder level1_selected. Genau diese Klassen gestalten Sie anschließend in Ihrer Styles-Datei.

Methode 1: Ausgabe mit PM-DataComplete

Diese Methode ist die pflegeärmste. Ein Bereich und eine Schleife genügen, um alle vorhandenen und alle künftig hinzukommenden Menüebenen mit sämtlichen Navigationspunkten auszugeben. Wächst der Katalog um eine Ebene, müssen Sie das Template nicht anfassen, sofern die Parameterwerte des Ladetags die neue Ebene abdecken. Pm Autobeispiel1 2
Der Preis dafür ist, dass alle Ebenen zunächst gleich aussehen. Sollen sie sich unterscheiden, fragen Sie innerhalb der Schleife mit PM-DataLevel(n) die aktuelle Ebene ab und geben je Ebene eigenes Markup aus.
Verwechseln Sie PM-DataLevel(1) nicht mit PM-DataLevel1. Die Schreibweise mit Klammern ist eine Abfrage innerhalb der PM-DataComplete-Schleife und prüft, auf welcher Ebene der aktuelle Navigationspunkt liegt. Die Schreibweise ohne Klammern ist dagegen ein eigener Bereich und gehört zu Methode 2.

Vollständiges Beispiel

Das folgende Beispiel gibt vier Ebenen mit jeweils eigener Gestaltung aus. Das Ladetag zeigt zunächst nur die oberste Ebene direkt an.
Die passenden Styles finden Sie weiter unten im Abschnitt “Styles zu den Beispielen”. Pm Autobeispiel1variante 1 Referenz: PM- (Produktmenü)

Methode 2: Ausgabe mit PM-DataLevel1 bis PM-DataLevel10

Bei dieser Methode legen Sie für jede Ebene einen eigenen Bereich an und verschachteln diese ineinander. Der Vorteil ist die volle Kontrolle über das erzeugte HTML, weil die Verschachtelung Ihrer Bereiche der Verschachtelung des Menüs entspricht. Der Nachteil ist der Pflegeaufwand: Kommt eine Kategorieebene hinzu, müssen Sie den passenden Bereich samt Schleife ergänzen. Jede Ebene besteht dabei aus zwei ineinanderliegenden Marken. Der äußere Bereich {PM-DataLevelN} prüft, ob auf dieser Ebene überhaupt Navigationspunkte vorhanden sind. Die innere Schleife {@PM-DataLevelN} läuft dann über alle vorhandenen und sichtbaren Punkte dieser Ebene.

Vollständiges Beispiel

Das folgende Beispiel erzeugt dieselbe Menüstruktur wie das Beispiel zu Methode 1, diesmal über vier verschachtelte Ebenenbereiche.

Styles zu den Beispielen

Die folgenden Styles gelten für beide vollständigen Beispiele, weil beide dieselben Klassennamen erzeugen. Das ist kein Zufall, sondern der Grund, warum Sie die Ausgabemethode wechseln können, ohne Ihr Stylesheet anzufassen.

Zwei Ebenen direkt anzeigen

Sollen die Hauptkategorien und ihre direkten Unterkategorien von Anfang an sichtbar sein, ändern Sie nur den dritten Parameter des Ladetags auf 2. Weder am Quellcode noch an den Styles ist eine Änderung nötig, und das gilt für beide Ausgabemethoden gleichermaßen.

Untermenü auf Basis eines Indexwerts

Steht Ihr Hauptmenü waagerecht am Seitenkopf, laden Sie das senkrechte Untermenü mit WS-LoadProductMenuIndex(). Der Wert $_current_$ als erster Parameter sorgt dafür, dass nur die direkten Unterkategorien der zuletzt gewählten Kategorie verwendet werden. Weil das Menü damit bereits bei den Unterkategorien beginnt, steht der dritte Parameter auf 1. Die Ausgabe selbst unterscheidet sich nicht. Sie verwenden dieselben Bereiche und Schleifen wie oben, nur in einem eigenen Container. Submenu Current 1
Die Ebenenzählung beginnt in diesem Menü wieder bei 1. PM-DataLevel1 bezeichnet hier also nicht die Hauptkategorien, sondern die erste im Untermenü angezeigte Kategorieebene. Vergeben Sie die Styles entsprechend unter einer eigenen Container-ID, damit sie sich nicht mit denen des Hauptmenüs überschneiden.

Kategorie-Informationen im Produktmenü verwenden

Innerhalb des Produktmenüs sind CAT-Tags nicht zulässig. Eine Konstruktion wie diese funktioniert deshalb nicht:
Das gilt für jede Kategorie-Information, die Sie im Produktmenü ausgeben möchten. Verwenden Sie stattdessen die entsprechenden PM-Tags. Diese funktionieren in allen Schleifen des Produktmenüs, also sowohl in @PM-DataComplete als auch in @PM-DataLevel1 bis @PM-DataLevel10. 20180606 Kat Info In Produktmenu
Referenz: PM-AdvNavImg

Weitere Gestaltungsbeispiele

Materialien: Materialien für Produktmenüs