PageGroup
Insbesondere, wenn sehr viele Informationen dargestellt werden sollen, kann es von Vorteil sein, die Informationen auf mehreren Seiten zu verteilen und so übersichtlicher zu strukturieren. FirstSpirit bietet die Möglichkeit, mehrere Seiten zu einer so genannten „Seitengruppe“ zusammenzufassen und zu verwalten.
Im Gegensatz zu Menügruppen, die automatisch aus den Menüeinträgen erzeugt werden, müssen Seitengruppen explizit innerhalb der Struktur-Verwaltung definiert werden. Die Mitglieder der Seitengruppe werden durch die Zuordnung einzelner Seiten zur Gruppe definiert. Dabei kann die Reihenfolge der Seiten zueinander beliebig verändert werden. Siehe dazu auch Einstellungen auf Menüebene (→Handbuch FirstSpirit SiteArchitect). Eine Ausnahme sind Seiten, die über eine Content-Projektion erzeugt wurden, das heißt, über das Einbinden einer Datenquelle in der Inhalte-Verwaltung. Wird dabei mehr als eine Seite erzeugt, sind die Seiten automatisch Bestandteil einer Seitengruppe.
Damit eine strukturierte Navigation innerhalb der Seiten möglich ist, müssen auf allen Seiten, die zur Seitengruppe 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 Seitengruppe zu erzeugen, wobei das aktuelle Element anders dargestellt werden kann, als die übrigen Elemente (delimiter/directoryRendering/directoryRenderingSelected).
Syntax der "PageGroup"-Funktion
Der Grundaufbau der Funktion PageGroup sieht wie folgt aus:
<CMS_FUNCTION name="PageGroup" 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>
Zu allgemeinen Hinweisen zur Syntax von Header-Funktionen siehe einleitende Seite Funktionen. |
Parameter der "PageGroup"-Funktion
Für die PageGroup-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- |
---|---|---|---|---|---|
Zyklische Seitengruppe | X | X | - | nein | |
Fragment für | - | - | X | nein | |
Fragment für | - | - | X | nein | |
Fragment für den | - | - | X | nein | |
Fragment für die erste Seite der Seitengruppe, wenn vorhanden. | - | - | X | nein | |
Fragment für die erste Seite der Seitengruppe, wenn nicht vorhanden. | - | - | X | nein | |
Fragment für die letzte Seite der Seitengruppe, wenn vorhanden. | - | - | X | nein | |
Fragment für die letzte Seite der Seitengruppe, wenn nicht vorhanden. | - | - | X | nein | |
Fragment für die nächste Seite der Seitengruppe, wenn vorhanden. | - | - | X | nein | |
Fragment für die nächste Seite der Seitengruppe, wenn nicht vorhanden. | - | - | X | nein | |
Fragment für die vorherige Seite der Seitengruppe, wenn vorhanden. | - | - | X | nein | |
Fragment für die vorherige Seite der Seitengruppe, wenn nicht vorhanden. | - | - | X | nein | |
Parameter cycle
Standardmäßig beginnt eine Seitengruppe mit der ersten enthaltenen Seitenreferenz und endet mit der letzten (cycle: 0).
Wird der Parameter cycle mit dem Wert 1 angegeben, so wird aus der Seitengruppe eine endlose Folge von Seiten (zyklische Seitengruppe), d.h. vor der ersten Seite befindet sich die letzte und nach der letzten die erste.
<CMS_FUNCTION name="PageGroup" resultname="fr_pt_pageGroup">
<CMS_PARAM name="cycle" value="1" />
...
</CMS_FUNCTION>
Parameter delimiter / directoryRendering / directoryRenderingSelected
Beim Aufruf der Methode $CMS_VALUE(VARNAME.directory)$ werden alle Seiten der Seitengruppe als Inhaltsverzeichnis ausgegeben.
Maßgeblich für die Darstellung der einzelnen Seiten sind die Parameter directoryRendering (nicht aktive Seiten) und directoryRenderingSelected (aktive/selektierte Seite). Um die Ausgabe der einzelnen Seiten zu trennen, kann mit dem Parameter delimiter ein Vorlagenfragment definiert werden. Diese Fragment wird, außer vor der ersten Seite und nach der letzten Seite, zwischen zwei directoryRendering- / directoryRenderingsSelected-Ausgaben zusätzlich ausgegeben.
<CMS_FUNCTION name="PageGroup" resultname="fr_pt_pageGroup">
...
<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 Seite in der Seitengruppe enthalten ist) für die erste Seite das Vorlagenfragment, welches mit dem Parameter firstAvailable angegeben wurde, ausgegeben.
Ist die Seitengruppe leer, so wird entsprechend das mit dem Parameter firstNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="PageGroup" resultname="fr_pt_pageGroup">
...
<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 Seite in der Seitengruppe enthalten ist) für die letzte Seite das Vorlagenfragment, welches mit dem Parameter lastAvailable angegeben wurde, ausgegeben.
Ist die Seitengruppe leer, so wird entsprechend das mit dem Parameter lastNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="PageGroup" resultname="fr_pt_pageGroup">
...
<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 Seite in der Seitengruppe enthalten ist) für die nächste Seite das Vorlagenfragment, welches mit dem Parameter nextAvailable angegeben wurde, ausgegeben.
Ist keine nachfolgende Seite vorhanden oder die Seitengruppe ist leer, so wird entsprechend das mit dem Parameter nextNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="PageGroup" resultname="fr_pt_pageGroup">
...
<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 Seite in der Seitengruppe enthalten ist) für die vorherige Seite das Vorlagenfragment, welches mit dem Parameter previousAvailable angegeben wurde, ausgegeben.
Ist keine vorherige Seite vorhanden oder die Seitengruppe ist leer, so wird entsprechend das mit dem Parameter previousNotAvailable angegebene Vorlagenfragment ausgegeben.
<CMS_FUNCTION name="PageGroup" resultname="fr_pt_pageGroup">
...
<CMS_CDATA_PARAM name="previousAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousNotAvailable"><![CDATA[...]]></CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Systemobjekt innerhalb der "PageGroup"-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) genutzt werden.
Übersicht
Attribute | Beschreibung |
---|---|
#nav.pos | Gibt die Position der Seite in der Seitengruppe wieder. |
#nav.media | Liefert das in der Struktur-Verwaltung eingetragene Bild für die Sitemap zurück. |
#nav.ref | Liefert einen Verweis auf die entsprechende Seite zurück. |
#nav.ref.node.id | Liefert die ID des aktuellen Knotens zurück. |
#nav.label | Liefert den Namen der entsprechenden Seite zurück. Dieser wird entweder in der Struktur-Verwaltung gesetzt (Text für Sitemap) oder es handelt sich um den Namen der Seite aus der Inhalte-Verwaltung. |
Rückgabeobjekt der Funktion
Neben dem Systemobjekt #nav, das nur innerhalb der Funktion gültig ist, liefert jede PageGroup-Funktion ein Rückgabeobjekt zurück. Der Name des Objekts ist der bei resultname vergebene Bezeichner.
Auf folgende Attribute kann auf dem Rückgabeobjekt der Funktion PageGroup 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 Seiten der aktuellen Seitengruppe. 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 Seite in der Seitengruppe. Mithilfe dieses Attributs, können Ausdrücke wie "Seite X von Y" erstellt werden. |
BEZEICHNER.previous | Wird durch den Parameter previousAvailable bzw. previousNotAvailable definiert. |
Wird die PageGroup-Funktion in einer Seitenvorlage verwendet, wird diese auch auf den Seiten ausgegeben, für die keine Seitengruppe in der Struktur-Verwaltung erstellt wurde.
Um zu prüfen, ob in der Menüebene eine Seitengruppe gesetzt ist, kann folgender Code verwendet werden:
$CMS_IF(fr_pt_pageGroup.groupSize > 1)$
...
$CMS_END_IF$
Beispiele zur "PageGroup"-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.
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="PageGroup" resultname="fr_pt_pageGroup">
<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_IF(fr_pt_pageGroup.groupSize > 1)$
$CMS_VALUE(fr_pt_pageGroup.first)$ $CMS_VALUE(fr_pt_pageGroup.previous)$ $CMS_VALUE(fr_pt_pageGroup.pos)$ / $CMS_VALUE(fr_pt_pageGroup.groupSize)$ $CMS_VALUE(fr_pt_pageGroup.next)$ $CMS_VALUE(fr_pt_pageGroup.last)$
$CMS_END_IF$
Das Beispiel gibt eine einfache Seitengruppen-Navigation aus:
<a href="/fs5preview/preview/61708/site/DE/current/61715/135053">|<</a>
<a href="/fs5preview/preview/61708/site/DE/current/61715/135053"><</a>
2 / 4
<a href="/fs5preview/preview/61708/site/DE/current/61715/135055">></a>
<a href="/fs5preview/preview/61708/site/DE/current/61715/135052">>|</a>