MenuGroup
Mit der Funktion MenuGroup können Menüebenen der gleichen Ebene gruppiert ausgegeben werden.
Beispiel: Mitglieder einer Menügruppe
Im Gegensatz zu Seitengruppen, müssen Menügruppen nicht extra definiert werden. Die Mitglieder der Menügruppen und ihre Reihenfolge ergeben sich aus den Menüeinträgen der Struktur-Verwaltung.
Ausgehend von einer Seitenreferenz, sind in der Menügruppe die Menüebene (der Seitenreferenz) und deren Brüder enthalten (siehe Beispiel: alle Menügruppen-Mitglieder der Seitenreferenz neu sind grau hinterlegt).
Im Gegensatz zur Navigation wird für Menügruppen nicht abgefragt, ob ein Ordner aus der Navigation ausgeblendet wurde oder nicht. Es werden somit immer alle Ordner der Menügruppe angezeigt, unabhängig davon, ob die Checkbox Im Navigationsmenü anzeigen? in der Struktur-Verwaltung aktiviert wurde oder nicht!
Damit eine strukturierte Navigation innerhalb der Seiten möglich ist, müssen auf allen Seiten, die zur Menügruppe gehören, Navigationselemente integriert werden. Bisher werden die folgenden Elemente unterstützt:
- vorblättern (previousAvailable/previousNotAvailable)
- zurückblättern (nextAvailable/nextNotAvailable)
- Sprung zum ersten Element (firstAvailable/firstNotAvailable)
- Sprung zum letzten Element (lastAvailable/lastNotAvailable)
Des Weiteren ist es möglich, ein Inhaltsverzeichnis über die gesamte Menügruppe zu erzeugen, wobei das aktuelle Element anders dargestellt werden kann, als die übrigen Elemente (delimiter/directoryRendering/directoryRenderingSelected).
Syntax der MenuGroup-Funktion
Der Grundaufbau der Funktion MenuGroup sieht wie folgt aus:
<CMS_FUNCTION name="MenuGroup" resultname="BEZEICHNER">
<CMS_PARAM name="cycle" value="BOOLESCHER_WERT" />
<CMS_CDATA_PARAM name="delimiter"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="directoryRendering"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="directoryRenderingSelected"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="firstAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="firstNotAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastNotAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextNotAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousNotAvailable"><![CDATA[WERT]]></CMS_CDATA_PARAM>
</CMS_FUNCTION>
Parameter der MenuGroup-Funktion
Für die MenuGroup-Funktion lassen sich folgende Parameter angeben:
- cycle
- delimiter
- directoryRendering
- directoryRenderingSelected
- firstAvailable
- firstNotAvailable
- lastAvailable
- lastNotAvailable
- nextAvailable
- nextNotAvailable
- previousAvailable
- previousNotAvailable
Alle Parameter sind optional. |
Die Werte der einzelnen Parameter können als Konstanten (<CMS_PARAM>), Ausdrücke (<CMS_VALUE_PARAM>) oder Vorlagenfragmente (<CMS_CDATA_PARAM>) angegeben werden. In der nachfolgenden Tabelle sind die Angabemöglichkeiten der Parameter aufgelistet.
X bedeutet: Verwendung möglich und empfohlen;
O bedeutet: Verwendung möglich, aber nicht empfohlen;
- bedeutet: Verwendung nicht möglich
Parameter | Bedeutung | Angabe einer Konstanten | Angabe von Ausdrücken | Angabe eines Vorlagen- | Pflicht- |
---|---|---|---|---|---|
cycle | Zyklische Menügruppe | X | X | - | nein |
delimiter | Fragment für | - | - | X | nein |
directoryRendering | Fragment für | - | - | X | nein |
directoryRenderingSelected | Fragment für den | - | - | X | nein |
firstAvailable | Fragment für die erste Menüebene der Menügruppe, wenn vorhanden. | - | - | X | nein |
firstNotAvailable | Fragment für die erste Menüebene der Menügruppe, wenn nicht vorhanden. | - | - | X | nein |
lastAvailable | Fragment für die letzte Menüebene der Menügruppe, wenn vorhanden. | - | - | X | nein |
lastNotAvailable | Fragment für die letzte Menüebene der Menügruppe, wenn nicht vorhanden. | - | - | X | nein |
nextAvailable | Fragment für die nächste Menüebene der Menügruppe, wenn vorhanden. | - | - | X | nein |
nextNotAvailable | Fragment für die nächste Menüebene der Menügruppe, wenn nicht vorhanden. | - | - | X | nein |
previousAvailable | Fragment für die vorherigen Menüebene der Menügruppe, wenn vorhanden. | - | - | X | nein |
previousNotAvailable | Fragment für die vorherigen Menüebene der Menügruppe, wenn nicht vorhanden. | - | - | X | nein |
Parameter cycle
Standardmäßig beginnt eine Menügruppe mit der ersten enthaltenen Menüebene und endet mit der letzten (cycle: 0).
Wird der Parameter cycle mit dem Wert 1 angegeben, so wird aus der Menügruppe eine endlose Folge von Menüebenen (zyklische Menügruppe), d.h. vor der ersten Menüebene befindet sich die letzte und nach der letzten die erste.
<CMS_FUNCTION name="MenuGroup" resultname="fr_pt_menuGroup">
<CMS_PARAM name="cycle" value="1" />
...
</CMS_FUNCTION>
Parameter delimiter / directoryRendering / directoryRenderingSelected
Beim Aufruf der Methode $CMS_VALUE(VARNAME.directory)$ werden alle Menüebenen der Menügruppe als Inhaltsverzeichnis ausgegeben.
Maßgeblich für die Darstellung der einzelnen Menüebene sind die Parameter directoryRendering (nicht aktive Menüebene) und directoryRenderingSelected (aktive/selektierte Menüebene). Um die Ausgabe der einzelnen Menüebenen zu trennen, kann mit dem Parameter delimiter ein Vorlagenfragment definiert werden. Diese Fragment wird, außer vor der ersten Menüebene und nach der letzten Menüebene, zwischen zwei directoryRendering- / directoryRenderingSelected-Ausgaben zusätzlich ausgegeben.
<CMS_FUNCTION name="MenuGroup" resultname="fr_pt_menuGroup">
...
<CMS_CDATA_PARAM name="delimiter"><![CDATA[...]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="directoryRendering"><![CDATA[...]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="directoryRenderingSelected"><![CDATA[...]]></CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Parameter firstAvailable / firstNotAvailable
Bei der Verwendung des Aufrufs $CMS_VALUE(BEZEICHNER.first)$ wird (wenn mindestens eine Menüebene in der Menügruppe enthalten ist) für die erste Menüebene das Vorlagenfragment, welches mit dem Parameter firstAvailable angegeben wurde, ausgegeben.
Ist die Menügruppe leer, so wird entsprechend das mit dem Parameter firstNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="MenuGroup" resultname="fr_pt_menuGroup">
...
<CMS_CDATA_PARAM name="firstAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="firstNotAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Parameter lastAvailable / lastNotAvailable
Bei der Verwendung des Aufrufs $CMS_VALUE(BEZEICHNER.last)$ wird (wenn mindestens eine Menüebene in der Menügruppe enthalten ist) für die letzte Menüebene das Vorlagenfragment, welches mit dem Parameter lastAvailable angegeben wurde, ausgegeben.
Ist die Menügruppe leer, so wird entsprechend das mit dem Parameter lastNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="MenuGroup" resultname="fr_pt_menuGroup">
...
<CMS_CDATA_PARAM name="lastAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastNotAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Parameter nextAvailable / nextNotAvailable
Bei der Verwendung des Aufrufs $CMS_VALUE(BEZEICHNER.next)$ wird (wenn mindestens eine weitere Menüebene in der Menügruppe enthalten ist) für die nächste Menüebene das Vorlagenfragment, welches mit dem Parameter nextAvailable angegeben wurde, ausgegeben.
Ist keine nachfolgende Menüebene vorhanden oder die Menügruppe ist leer, so wird entsprechend das mit dem Parameter nextNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="MenuGroup" resultname="fr_pt_menuGroup">
...
<CMS_CDATA_PARAM name="nextAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextNotAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Parameter previousAvailable / previousNotAvailable
Bei der Verwendung des Aufrufs $CMS_VALUE(BEZEICHNER.previous)$ wird (wenn mindestens eine vorherige Menüebene in der Menügruppe enthalten ist) für die vorherige Menüebene das Vorlagenfragment, welches mit dem Parameter previousAvailable angegeben wurde, ausgegeben.
Ist keine vorherige Menüebene vorhanden oder die Menügruppe ist leer, so wird entsprechend das mit dem Parameter previousNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="MenuGroup" resultname="fr_pt_menuGroup">
...
<CMS_CDATA_PARAM name="previousAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousNotAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Systemobjekt innerhalb der Funktion MenuGroup
Innerhalb der Funktion steht das Systemobjekt #nav zur Verfügung, auf dem mehrere Methoden aufgerufen werden können. Dazu können die Anweisungen $CMS_VALUE(...)$ (Ausgabe der Inhalte) oder $CMS_REF(...)$ (Auflösung einer Referenz) benutzt werden.
Übersicht
Attribute | Beschreibung |
---|---|
#nav.pos | Gibt die Position der Menügruppe in der Menügruppe wieder. |
#nav.ref | Liefert einen Verweis auf die entsprechende Menüebene zurück. |
#nav.label | Liefert den Wert des Feldes Menüname der Menüebene (aus der Struktur-Verwaltung) zurück. |
#nav.media | Liefert den Wert des Feldes Normal der Menüebene (aus der Struktur-Verwaltung) zurück. |
#nav.mediaHighlight | Liefert den Wert des Feldes mit Mauszeiger der Menüebene (aus der Struktur-Verwaltung) zurück. |
#nav.mediaSelected | Liefert den Wert des Feldes Ausgewählt der Menüebene (aus der Struktur-Verwaltung) zurück. |
#nav.mediaHighlightSelected | Liefert den Wert des Feldes Ausgewählt, mit Mauszeiger der Menüebene (aus der Struktur-Verwaltung) zurück. |
Rückgabeobjekt der Funktion
Neben dem Systemobjekt #nav, das nur innerhalb der Funktion gültig ist, liefert jede MenuGroup-Funktion ein Rückgabeobjekt zurück. Der Name des Objektes ist der bei resultname vergebene Bezeichner.
Auf folgende Attribute kann auf dem Rückgabeobjekt der Funktion MenuGroup zugegriffen werden:
Übersicht (Attribute des Rückgabeobjekts)
Attribute | Beschreibung |
---|---|
BEZEICHNER.directory | Wird durch die Parameter delimiter, directoryRendering und directoryRenderingSelected definiert. |
BEZEICHNER.first | Wird durch den Parameter firstAvailable bzw. firstNotAvailable definiert. |
BEZEICHNER.groupSize | Gesamtzahl der Menüebenen der aktuellen Menügruppe. Mithilfe dieser Variablen können Ausdrücke wie "Seite X von Y" erstellt werden. |
BEZEICHNER.last | Wird durch den Parameter lastAvailable bzw. lastNotAvailable definiert. |
BEZEICHNER.next | Wird durch den Parameter nextAvailable bzw. nextNotAvailable definiert. |
BEZEICHNER.pos | Position der aktuellen Menüebene in der Menügruppe. Mit Hilfe dieses Attributs, können Ausdrücke wie "Seite X von Y" erstellt werden. |
BEZEICHNER.previous | Wird durch den Parameter previousAvailable bzw. previousNotAvailable definiert. |
Beispiele zur Funktion MenuGroup
Nachfolgend werden einige Beispiele zur Verwendung der Anweisung innerhalb von Vorlagen gezeigt. Die Beispiele sollen die konkrete Auswirkung der Anweisung verdeutlichen und eine Hilfe für den Vorlagenentwickler bei der Erstellung eigener Vorlagen sein.
Für die Verwendung innerhalb eines Projekts, müssen die hier gezeigten Beispiele angepasst werden! Beispielsweise müssen Variablennamen auf die spezifischen Variablennamen des Projekts geändert werden, in dem die Anweisung verwendet werden soll. |
<CMS_HEADER>
<CMS_FUNCTION name="MenuGroup" resultname="fr_pt_menuGroup">
<CMS_CDATA_PARAM name="firstAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$">|<</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="firstNotAvailable"><![CDATA[|<]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$">>|</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastNotAvailable"><![CDATA[>|]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$"><</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousNotAvailable"><![CDATA[<]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$">></a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextNotAvailable"><![CDATA[>]]></CMS_CDATA_PARAM>
</CMS_FUNCTION>
</CMS_HEADER>
$CMS_VALUE(fr_pt_menuGroup.first)$ $CMS_VALUE(fr_pt_menuGroup.previous)$ $CMS_VALUE(fr_pt_menuGroup.pos)$ / $CMS_VALUE(fr_pt_menuGroup.groupSize)$ $CMS_VALUE(fr_pt_menuGroup.next)$ $CMS_VALUE(fr_pt_menuGroup.last)$
Das Beispiel gibt eine einfache Menügruppennavigation aus:
<a href="/fs4preview/preview/30001/site/DE/current/30005/30453">|<</a>
<a href="/fs4preview/preview/30001/site/DE/current/30005/30451"><</a>
2 / 3
>
<a href="/fs4preview/preview/30001/site/DE/current/30005/30454">>|</a>