Startseite / Vorlagenentwicklung / Vorlagensyntax / Funktionen / im Header / PageGroup

PageGroup

Seitengruppe

Menüebene (Struktur-Verwaltung), Register "Seitengruppen"

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

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 Seitengruppe

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 Seite der Seitengruppe, wenn vorhanden.

-

-

X

nein

firstNotAvailable

Fragment für die erste Seite der Seitengruppe, wenn nicht vorhanden.

-

-

X

nein

lastAvailable

Fragment für die letzte Seite der Seitengruppe, wenn vorhanden.

-

-

X

nein

lastNotAvailable

Fragment für die letzte Seite der Seitengruppe, wenn nicht vorhanden.

-

-

X

nein

nextAvailable

Fragment für die nächste Seite der Seitengruppe, wenn vorhanden.

-

-

X

nein

nextNotAvailable

Fragment für die nächste Seite der Seitengruppe, wenn nicht vorhanden.

-

-

X

nein

previousAvailable

Fragment für die vorherige Seite der Seitengruppe, wenn vorhanden.

-

-

X

nein

previousNotAvailable

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.

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="PageGroup" resultname="fr_pt_pageGroup">
<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_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">|&lt;</a>
<a href="/fs5preview/preview/61708/site/DE/current/61715/135053">&lt;</a>
2 / 4
<a href="/fs5preview/preview/61708/site/DE/current/61715/135055">&gt;</a>
<a href="/fs5preview/preview/61708/site/DE/current/61715/135052">&gt;|</a>

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