Startseite / Vorlagenentwicklung / Vorlagensyntax / Funktionen / im Header / MenuGroup

MenuGroup

Mit der Funktion MenuGroup können Menüebenen der gleichen Ebene gruppiert ausgegeben werden.

Beispiel: Mitglieder einer Menügruppe

Beispiel: Mitglieder einer Menügruppe

Im Gegensatz zu Seitengruppen müssen Menügruppen nicht extra definiert werden. Die Mitglieder der Menügruppe 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 Zubehoer (1) sind farbig hinterlegt (2)).

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>
Wichtig Zu allgemeinen Hinweisen zur Syntax von Header-Funktionen siehe einleitende Seite Funktionen.

Parameter der "MenuGroup"-Funktion

Für die MenuGroup-Funktion lassen sich folgende Parameter angeben:

Wichtig 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-
fragments

Pflicht-
parameter

cycle

Zyklische Menügruppe

X

X

-

nein

delimiter

Fragment für
die Trennung
der Einträge
des Inhalts-
verzeichnisses

-

-

X

nein

directoryRendering

Fragment für
unselektierte Einträge
des Inhalts-
verzeichnisses

-

-

X

nein

directoryRenderingSelected

Fragment für den
selektierten Eintrag
des Inhalts-
verzeichnisses

-

-

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 vorherige Menüebene der Menügruppe, wenn vorhanden

-

-

X

nein

previousNotAvailable

Fragment für die vorherige 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 "MenuGroup"-Funktion

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.ref.node.id

Liefert die ID des aktuellen Knotens 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 "MenuGroup"-Funktion

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.

Wichtig 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)$">|&lt;</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="firstNotAvailable"><![CDATA[|&lt;]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$">&gt;|</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastNotAvailable"><![CDATA[&gt;|]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$">&lt;</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousNotAvailable"><![CDATA[&lt;]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$">&gt;</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextNotAvailable"><![CDATA[&gt;]]></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ügruppen-Navigation aus:

<a href="/fs4preview/preview/30001/site/DE/current/30005/30453">|&lt;</a> 
<a href="/fs4preview/preview/30001/site/DE/current/30005/30451">&lt;</a>
2 / 3
&gt;
<a href="/fs4preview/preview/30001/site/DE/current/30005/30454">&gt;|</a>

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.5 | Datenschutz