Navigation
Inhaltsverzeichnis |
Die Funktion Navigation dient dazu, die durch die Struktur-Verwaltung vorgegebene Seitenstruktur auf den generierten Seiten darzustellen. Die Ausgabe der Navigation wird in der Seitenvorlage durch die Funktion Navigation definiert. Die in der Struktur-Verwaltung angelegten Menüebenen werden automatisch übernommen. Mithilfe der einzelnen Parameter lassen sich verschiedene Navigationsarten darstellen. Das Grundgerüst der Funktion bleibt dabei immer gleich, unabhängig davon, ob es sich um eine graphische oder eine textuelle Navigation handelt (siehe Beispiel Funktion).
Sind die Navigationsfunktionen im Header-Bereich der Seitenvorlage angelegt, müssen innerhalb des HTML-Bereichs die Funktionsergebnisse ausgegeben werden. Dabei wird an der gewünschten Stelle der Rückgabewert jeder Navigationsfunktion mit einer $CMS_VALUE(...)$-Anweisung ausgegeben.
Sollen auf einer Seite mehrere, räumlich getrennte Navigationen angeordnet werden, so muss für jede Teilnavigation eine eigene Navigationsfunktion im Header-Bereich der Seitenvorlage angelegt und im HTML-Bereich ausgegeben werden. Sind auf der Seite bspw. zwei Navigationen für ein Haupt- und ein Untermenü vorhanden, müssen an zwei unterschiedlichen Orten in der Seitenvorlage Navigationsfunktionen abgelegt werden (siehe Beispiel Ausgabe der Funktionsergebnisse).
Beispiel (Funktion):
<CMS_FUNCTION name="Navigation" resultname="nav">
<CMS_PARAM name="expansionVisibility" value="standard"/>
<CMS_PARAM name="wholePathSelected" value="1"/>
<CMS_ARRAY_PARAM name="unselectedHTML">
<CMS_ARRAY_ELEMENT><![CDATA[...]]></CMS_ARRAY_ELEMENT>
<CMS_ARRAY_ELEMENT><![CDATA[...]]></CMS_ARRAY_ELEMENT>
<CMS_ARRAY_ELEMENT><![CDATA[...]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="selectedHTML">
<CMS_ARRAY_ELEMENT index="0..3"><![CDATA[...]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
</CMS_FUNCTION>
Beispiel (Ausgabe der Funktionsergebnisse):
<!-- 1st Navigation -->
$CMS_VALUE(fr_pt_mainnav)$
<!-- 1st Navigation end -->
<!-- 2nd Navigation -->
$CMS_VALUE(fr_pt_subnav)$
<!-- 2nd Navigation end -->
Die Navigationsfunktion kann so konfiguriert werden, dass Seiten bzw. Menüpunkte im ContentCreator vom Redakteur direkt auf der Vorschauseite verschoben werden können. Dazu muss das umschließende HTML-Element des betreffenden Navigationselements mit einem editorId()-Aufruf ausgestattet werden. Siehe dazu auch entsprechende Seite unter ContentHighlighting und EasyEdit. |
Syntax der Navigation-Funktion
Der Grundaufbau der Funktion Navigation sieht wie folgt aus:
<CMS_FUNCTION name="Navigation" resultname="BEZEICHNER">
<CMS_PARAM name="expansionVisibility" value="SCHLÜSSELBEGRIFF" />
<CMS_PARAM name="wholePathSelected" value="BOOLESCHER_WERT" />
<CMS_PARAM name="selectedNode" value="BEZEICHNER" />
<CMS_PARAM name="root" value="BEZEICHNER" />
<CMS_PARAM name="siteMap" value="BOOLESCHER_WERT" />
<CMS_PARAM name="menuFirst" value="BOOLESCHER_WERT" />
<CMS_PARAM name="suppressEmptyFolders" value="BOOLESCHER_WERT" />
<CMS_ARRAY_PARAM name="beginHTML">
<CMS_ARRAY_ELEMENT><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="innerBeginHTML">
<CMS_ARRAY_ELEMENT index="GANZZAHL"><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="unselectedHTML">
<CMS_ARRAY_ELEMENT index="GANZZAHL..GANZZAHL"><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="selectedHTML">
<CMS_ARRAY_ELEMENT><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="pageRefRendering">
<CMS_ARRAY_ELEMENT index="GANZZAHL"><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="delimiter">
<CMS_ARRAY_ELEMENT index="GANZZAHL..GANZZAHL"><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="selectedDelimiter">
<CMS_ARRAY_ELEMENT><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="innerEndHTML">
<CMS_ARRAY_ELEMENT index="GANZZAHL"><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="endHTML">
<CMS_ARRAY_ELEMENT index="GANZZAHL..GANZZAHL"><![CDATA[WERT]]></CMS_ARRAY_ELEMENT>
...
</CMS_ARRAY_PARAM>
</CMS_FUNCTION>
Parameter der Navigation-Funktion
Bei der Navigation-Funktion können folgende Parameter genutzt werden:
- beginHTML
- delimiter
- endHTML
- expansionVisibility
- innerBeginHTML
- innerEndHTML
- menuFirst
- multiPages
- pageRefRendering
- root
- selectedDelimiter
- selectedHTML
- selectedNode
- siteMap
- suppressEmptyFolders
- unselectedHTML
- wholePathSelected
Bei dem Parameter expansionVisibility handelt es sich um einen Pflichtparameter. Alle anderen Parameter sind optional. Es sollte jedoch einmal der Parameter unselectedHTML und selectedHTML verwendet werden, damit die Navigationspunkte sichtbar sind. |
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 | Angabe einer Konstanten | Angabe von Ausdrücken | Angabe eines Vorlagenfragments | Pflichtparameter |
---|---|---|---|---|
beginHTML | - | - | X | nein |
delimiter | - | - | X | nein |
endHTML | - | - | X | nein |
expansionVisibility | X | O | - | nein |
innerBeginHTML | - | - | X | nein |
innerEndHTML | - | - | X | nein |
menuFirst | X | O | - | nein |
multiPages | X | - | - | nein |
pageRefRendering | - | - | X | nein |
root | X | O | - | nein |
selectedDelimiter | - | - | X | nein |
selectedHTML | - | - | X | nein |
selectedNode | X | O | - | nein |
siteMap | X | O | - | nein |
suppressEmptyFolders | X | O | - | nein |
unselectedHTML | - | - | X | nein |
wholePathSelected | X | O | - | nein |
Parameter expansionVisibility
Der Parameter expansionVisibility gibt an, wie die expandierten Bereiche der Navigation behandelt werden sollen, das heißt, wie eine Navigation ausgeklappt werden soll. Die folgende Tabelle gibt einen Überblick darüber, welche Werte dieser Parameter annehmen kann und welche Auswirkung die einzelnen Schlüsselbegriffe haben.
Zum besseren Verständnis wurde zu jedem Schlüsselbegriff eine Grafik hinterlegt.
Die Grafiken stellen die sichtbaren Bereiche des Baums durch orangefarbene Quadrate und die nicht sichtbaren Bereiche durch graue Kreise dar, wenn der entsprechende Schlüsselbegriff auf der selektierten Seite (großes orangefarbenes Quadrat) angewendet wird.
Beispiel:
<CMS_PARAM name="expansionVisibility" value="all" />
Alle Elemente der ersten Menüebene werden vollständig dargestellt.
Schlüsselbegriffe für expansionVisibility: | |
---|---|
Beim Schlüsselbegriff standard ist die Navigation vollständig kontrahiert. | |
Wird der Schlüsselbegriff all als Wert gewählt, so wird der komplette Navigationsbaum vollständig expandiert und alle Elemente angezeigt. | |
Der Schlüsselbegriff pathonly bewirkt, dass nur der aktuelle Menüpunkt, seine Söhne und alle seine Väter angezeigt werden. | |
Der Schlüsselbegriff purepath entspricht weitgehend dem Parameter pathonly, nur dass die Söhne des aktuellen Menüpunkts ausgeblendet werden. | |
Der Schlüsselbegriff parentpath entspricht weitgehend dem Parameter purepath, nur dass mit parentpath zusätzlich die Einstellung "Im Navigationsmenü anzeigen?" auf dem Register "Namen" von Menüebenen ausgewertet wird. Ist z. B. für eine Menüebene die Option "Im Navigationsmenü anzeigen?" deaktiviert und parentpath gesetzt, wird der Pfad ausgehend vom Wurzelknoten nur bis zur letzten sichtbaren Menüebene ausgegeben. D. h., die erste Menüebene vom Wurzelknoten ausgehend mit deaktivierter Option "Im Navigationsmenü anzeigen?" sowie alle darunter liegenden Menüebenen werden nicht angezeigt. | |
Der Parameter subtree bewirkt, dass nur der Teilbaum, der sich unter dem aktuellen Menüpunkt (exklusive) verbirgt, dargestellt wird. Die Ebenenzählung (beginnt mit 0) beginnt mit den Kindern des aktuellen Menüpunktes.
| |
Parameter menuFirst
Mit dem Parameter menuFirst wird festgelegt, ob bei der Ausgabe der Navigation zuerst die Menüebenen (Wert: 1; Standardwert) oder aber die Seitenreferenzen (Wert: 0) ausgegeben werden sollen.
<CMS_PARAM name="menuFirst" value="1" />
Der Parameter hat nur eine Auswirkung, wenn der Parameter siteMap zusätzlich angegeben wurde. |
Parameter multiPages
Der Parameter multiPages stellt eine Ergänzung zum Parameter siteMap dar. Mit ihm kann festgelegt werden, ob von Mehrfachseiten in einer Sitemap nur die erste oder alle erzeugten Unterseiten berücksichtigt werden.
Ist der Wert 0 (= Standardwert), wird von jeder Mehrfachseite nur die erste Unterseite, die sich aus der Verteilung ergibt, die auf dem Register "Daten" der zugehörigen Seitenreferenz definiert ist, berücksichtigt.
Ist der Wert 1, wird jede erzeugte Unterseite der Mehrfachseite in der Sitemap berücksichtigt.
<CMS_PARAM name="multiPages" value="1"/>
Dazu wird ebenfalls auf die Einstellungen auf dem Register "Daten" der Seitenreferenzen zurückgegriffen. Aus der hier definierten Verteilungsanweisung für die Mehrfachseite (wie viele Datensätze werden auf einer Seite dargestellt und wie viele Seiten sollen maximal erzeugt werden) ergibt sich dann für die Sitemap, wie viele Datensätze pro Unterseite dargestellt werden und die Anzahl der Unterseiten.
Die Unterseiten werden in der Sitemap grundsätzlich mit dem Referenznamen der referenzierten Seite in der Inhalte-Verwaltung angezeigt. Die Sitemap-Einträge aller Unterseiten einer Mehrfachseite haben somit zunächst dieselbe Beschriftung. Um diese dynamisch zu gestalten, kann über das Feld "Variable für Text der Menü-Übersicht (Sitemap)" auf dem "Daten"-Register eine Spalte aus der Datenquelle ausgewählt werden, die für die Beschriftung herangezogen wird.
Beispiel:
Angenommen, die Mehrfachseite basiert auf einer Datenquelle, die eine Spalte "Text" mit den Einträgen 1. Datensatz, 2. Datensatz und 3. Datensatz 3, sowie die obligatorische Spalte fs_id enthält. (Bei dieser handelt es sich um eine Spalte mit fortlaufenden IDs zu den einzelnen Datensätze der Tabelle.)
Diese 3 Datensätze werden auf der Mehrfachseite ausgegeben.
Ist die Spalte "Text" im Feld "Variable für Text der Menü-Übersicht (Sitemap)" auf dem "Daten"-Register ausgewählt, als "Maximale Seitenanzahl" 0 eingetragen und eine aufsteigende Sortierung nach der Spalte "fs_id" definiert, könnten die Einträge für die erzeugten Unterseiten je nach Verteilung beispielsweise folgendermaßen lauten:
Verteilung (auf "Daten"-Register) | Erläuterung zur Verteilung | Sitemap-Ausgabe | Erläuterung zur Sitemap-Ausgabe |
---|---|---|---|
Anzahl der Einträge pro Seite: 0 | Es wird eine Unterseite erzeugt, die alle 3 Datensätze enthält. | * 1. Datensatz - 3. Datensatz | Für die Mehrfachseite resultiert ein Eintrag in der Sitemap. |
Anzahl der Einträge pro Seite: 1 | Für jeden der 3 Datensätze wird eine Unterseite erzeugt. | * 1. Datensatz | Für die Mehrfachseite resultieren 3 Einträge in der Sitemap. |
Anzahl der Einträge pro Seite: 2 | Es werden 2 Unterseiten erzeugt: die erste Unterseite enthält die ersten beiden Datensätze Datensatz 1 und Datensatz 2, die zweite enthält den Datensatz 3. | * 1. Datensatz - 2. Datensatz | Für die Mehrfachseite resultieren 2 Einträge in der Sitemap. |
Für "einfache" Seitenreferenzen (keine Seitenreferenz einer Mehrfachseite) hat der Parameter multiPages mit dem Wert 1 keine Auswirkung.
Der Parameter hat nur eine Auswirkung, wenn auch der Parameter siteMap mit dem Wert 1 angegeben wurde. |
Parameter root
Der Parameter root definiert den Startpunkt der Navigation.
Für den Startpunkt kann entweder ein Ordner oder aber eine Seite angegeben werden.
Die Angabe eines Ordners erfolgt mit dem Schlüsselbegriff pagefolder: gefolgt vom Bezeichner des Ordners:
<CMS_PARAM name="root" value="pagefolder:BEZEICHNER" />
Die Angabe einer Seitenreferenz erfolgt mit dem Schlüsselbegriff pageref: gefolgt vom Bezeichner der Seitenreferenz:
<CMS_PARAM name="root" value="pageref:BEZEICHNER" />
Bei der Angabe einer Seitenreferenz gilt die Menüebene oberhalb der Seitenreferenz (=Vater) als Startpunkt.
Wird der Parameter root nicht angegeben, so gilt die Wurzel der Struktur-Verwaltung als Startpunkt der Navigation.
Bei der Angabe des Parameters root ändert sich die Zählung der Ebenen. Als Ebene 0 der Navigation gelten dann die direkten Kinder (Söhne) des angegebenen Knotens. |
Der Parameter root wird nicht berücksichtigt, wenn der Parameter subtree (expansionVisibility="subtree") ebenfalls gesetzt wurde. |
Parameter selectedNode
Durch die Angabe des Parameters selectedNode kann ein Ordner oder eine Seite definiert werden, der oder die die Navigation als aktuelles bzw. selektiertes Element ansehen soll.
Die Angabe eines Ordners erfolgt durch den Schlüsselbegriff pagefolder: gefolgt vom Bezeichner des Ordners:
<CMS_PARAM name="selectedNode" value="pagefolder:BEZEICHNER" />
Die Angabe einer Seite erfolgt mit dem Schlüsselbegriff pageref: gefolgt vom Bezeichner der Seitenreferenz:
<CMS_PARAM name="selectedNode" value="pageref:BEZEICHNER" />
Parameter siteMap
Wird für den Parameter siteMap der Wert 1 angegeben, so werden in der Navigation zusätzlich die Seitenreferenzen ausgegeben.
Ist der Parameter nicht gesetzt oder wird der Wert 0 angegeben, so werden nur Menüebenen aus der Struktur-Verwaltung ausgegeben.
<CMS_PARAM name="siteMap" value="1" />
Die Ausgabe der Seitenreferenzen wird durch den Parameter pageRefRendering festgelegt.
Im Falle von Mehrfachseiten wird standardmäßig nur die erste der erzeugten Unterseiten in der Sitemap berücksichtigt. Sollen alle erzeugten Unterseiten berücksichtigt werden, muss zusätzlich der Parameter multiPages verwendet werden. |
Parameter suppressEmptyFolders
Mit dem Parameter suppressEmptyFolders können Menüebenen bei der Ausgabe unterdrückt werden, die keine Seitenreferenz enthalten.
Der Wert 1 unterdrückt die Ausgabe von Menüebenen ohne Seitenreferenz und 0 (=Standardwert) nicht.
<CMS_PARAM name="suppressEmptyFolders" value="1" />
Parameter wholePathSelected
Wird als Wert des Parameters wholePathSelected 1 angegeben, so wird der gesamte Pfad vom aktuellen Element bis zur Wurzel (Vaterkette) als selektiert betrachtet. Dies wird beispielsweise benötigt, um diese Elemente in einer anderen Farbe anzuzeigen, als die unselektierten Elemente der Navigation.
Ist wholePathSelected mit 0 angegeben oder wurde der Parameter nicht gesetzt, so gilt nur das der Seitenreferenz direkt übergeordnete Element (der Vater bzw. die Menüebene) als selektiert (=Standardwert).
Beispiel:
<CMS_PARAM name="wholePathSelected" value="1" />
Alle Elemente der Vaterkette (alle Väter bis zur Wurzel) gelten als selektiert. Die Ausgabe der selektierten und unselektierten Elemente wird durch die Parameter selectedHTML und unselectedHTML vorgegeben.
Ausgabefragmente
Innerhalb der Ausgabefragmente (<CMS_ARRAY_PARAM>-Tags) bestimmt das <CMS_ARRAY_ELEMENT>-Tag die Darstellungsweise der Navigation im Browser. Dabei wird für jede Navigationsebene, die dargestellt werden soll, ein eigenes <CMS_ARRAY_ELEMENT>-Tag angelegt.
Für jede Ebene kann das optionale Attribut index angegeben werden. Mit diesem Attribut gibt man die Ebene an, für die dieser Eintrag gelten soll. Die Zählung der Ebenen beginnt mit 0. Somit ist 0 die oberste Ebene. Wenn kein Attribut index angegeben wurde, so wird die Ebene automatisch berechnet, d.h. der erste Eintrag ohne index wird als 0 interpretiert, der zweite als 1 und so weiter. Zusätzlich kann für index eine Bereichsdefinition angegeben werden, z.B. 0..2 (von 0 bis 2).
Beispiel:
<CMS_ARRAY_PARAM name="selectedHTML">
<CMS_ARRAY_ELEMENT index="0">
<![CDATA[<a href="$CMS_REF(#nav.ref)$" ...">$CMS_VALUE(#nav.label)$</a>]]>
</CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
Jeder Menüpunkt einer Navigation verlinkt normalerweise auf eine neue Seite. Das heißt: jedes Arrayelement benötigt einen
<![CDATA[...]]>-Tag, um einen Link einzufügen. Innerhalb der <![CDATA[...]]>-Tags kann mit <a href=““>...</a> ein Link eingegeben werden. Da jedoch nicht immer auf dieselbe Seite verlinkt werden soll, wird statt einer konstanten Seite, ein Verweis auf ein Objekt aus der Struktur-Verwaltung benötigt.
Bei der Angabe des Parameters root ändert sich die Zählung der Ebenen. Als Ebene 0 der Navigation gelten dann die direkten Kinder (Söhne) des angegebenen Knotens. |
Parameter beginHTML / endHTML
Über die beiden Parameter beginHTML und endHTML lassen sich Vorlagenfragmente für jede einzelne Ebene der Navigation definieren, die jeweils vor (beginHTML) bzw. nach (endHTML) einem Element ausgegeben werden. Das bedeutet, von diesen beiden Parametern wird jeder Eintrag der entsprechenden Ebene und alle seine Unterpunkte umschlossen (siehe auch Beispiel: Ausgabe von Ebenen und Parametern).
<CMS_ARRAY_PARAM name="beginHTML">
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="endHTML">
...
</CMS_ARRAY_PARAM>
Parameter delimiter / selectedDelimiter
Während die Parameter beginHTML und endHTML für jeden einzelnen Eintrag in der Navigation aufgerufen werden, wird der Inhalt des Parameters delimiter nur zwischen zwei Elementen der Navigation der gleichen Ebene ausgegeben.
Mit dem Parameter selectedDelimiter kann ein Vorlagenfragment definiert werden, welches nur vor und nach dem ausgewählten Eintrag der Navigation in der jeweiligen Ebene ausgegeben wird.
Der Inhalt des Parameters selectedDelimiter wird nicht vor dem ersten und nicht nach dem letzten Element in einer Ebene ausgegeben. |
Wird der Parameter selectedDelimiter nicht angegeben, sondern nur der Parameter delimiter, so wird zwischen allen Einträgen der Navigation der Inhalt des Parameters delimiter dargestellt.
Bei der ausschließlichen Verwendung des Parameters selectedDelimiter, wird nur um ein selektiertes Element der Navigation der Inhalt des Parameters ausgegeben.
Die Parameter delimiter und selectedDelimiter werden nur angewendet, wenn der Parameter siteMap nicht angegeben bzw. sein Wert 0 ist. |
<CMS_ARRAY_PARAM name="delimiter">
...
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="selectedDelimiter">
...
</CMS_ARRAY_PARAM>
Parameter innerBeginHTML / innerEndHTML
Über die beiden Parameter innerBeginHTML und innerEndHTML können weitere Vorlagenfragmente angegeben werden, die alle Kinder eines Eintrags der Navigation umschließen sollen.
<CMS_ARRAY_PARAM name="innerBeginHTML">
…
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="innerEndHTML">
...
</CMS_ARRAY_PARAM>
Der Index der Elemente innerBeginHTML / innerEndHTML bezieht sich auf die Tiefe des Knotens, dessen Kindliste er einleitet. Definitionsgemäß sollen unterhalb der tiefsten, darzustellenden Menüebene keine weiteren Unterseiten dargestellt werden. Daher wird für die umschließenden Elemente innerBeginHTML / innerEndHTML üblicherweise die Obergrenze des Indexes um eins niedriger gewählt, als bei den restlichen Elementen. Andernfalls würde „unterhalb“ von Knoten der tiefsten, darzustellenden Ebene zwar die Ausgabe von innerBeginHTML / innerEndHTML erzeugt (Einleitung der Kindliste), diese würde aber keine weiteren Elemente (Kinder) enthalten (siehe auch Beispiel: Ausgabe von Ebenen und Parametern).
Parameter selectedHTML / unselectedHTML
Mit den Parametern selectedHTML und unselectedHTML werden die Vorlagenfragmente definiert, die bei der Ausgabe eines Elementes verwendet werden sollen. Dabei wird mit selectedHTML die Ausgabe von selektierten Elementen und mit unselectedHTML von unselektierten Elementen festgelegt.
Beispiel:
<CMS_ARRAY_PARAM name="selectedHTML">
…
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="unselectedHTML">
...
</CMS_ARRAY_PARAM>
Das Selektionsverhalten wird durch die Parameter selectedNode und wholePathSelected beeinflusst. |
Parameter pageRefRendering
Die Verwendung des Parameters pageRefRendering erfolgt analog zu den Parametern selectedHTML bzw. unselectedHTML. Der Unterschied ist, dass das mit dem Parameter pageRefRendering angegebene Vorlagenfragment für alle Seitenreferenzen einer Menüebene ausgegeben wird.
Dieser Parameter wird nur berücksichtigt, wenn der Parameter siteMap angegeben wurde! |
<CMS_ARRAY_PARAM name="pageRefRendering">
…
</CMS_ARRAY_PARAM>
Beispiel - Ausgabe Ebenen und Parameter
<ul>
beginHTML(0) unselectedHTML(0) endHTML(0)
beginHTML(0) unselectedHTML(0) endHTML(0)
beginHTML(0) unselectedHTML(0) endHTML(0)
beginHTML(0) selectedHTML(0)
innerBeginHTML(0)
beginHTML(1) selectedHTML(1)
innerBeginHTML(1)
beginHTML(2) unselectedHTML(2) endHTML(2)
beginHTML(2) selectedHTML(2) endHTML(2)
beginHTML(2) unselectedHTML(2) endHTML(2)
innerEndHTML(1)
endHTML(1)
beginHTML(1) unselectedHTML(1) endHTML(1)
beginHTML(1) unselectedHTML(1) endHTML(1)
innerEndHTML(0)
endHTML(0)
beginHTML(0) unselectedHTML(0) endHTML(0)
beginHTML(0) unselectedHTML(0) endHTML(0)
beginHTML(0) unselectedHTML(0) endHTML(0)
beginHTML(0) unselectedHTML(0) endHTML(0)
beginHTML(0) unselectedHTML(0) endHTML(0)
</ul>
Systemobjekt innerhalb der Funktion Navigation
Innerhalb der Navigation-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.
Über das Systemobjekt #nav können beispielsweise Verweise innerhalb der <![CDATA[...]]>-Tags eingegeben werden. Da hier keine konstanten Werte angegeben werden sollen, werden dazu vorbelegte Variablen verwendet.
Beispiel:
"$CMS_REF(#nav.ref)$"
$CMS_VALUE(#nav.label)$
Übersicht
Attribute | Beschreibung |
---|---|
#nav.comment | In der Struktur-Verwaltung eingegebener Kommentar zum Zielknoten. |
#nav.data("BEZEICHNER") | Liefert den Wert der mit dem Bezeichner angegebenen Variablen aus der Struktur-Verwaltung zurück. |
#nav.hasSubFolders | Ermittelt, ob der aktuelle Navigationspunkt Kinder (untergeordnete Menüebenen / Ordner) hat |
#nav.id | Eindeutige serverweit gültige Identifizierungsnummer des Zielknotens. |
#nav.isFirst | Liefert zurück, ob es sich bei dem Navigationspunkt um den ersten der aktuellen Ebene handelt. |
#nav.isLast | Liefert zurück, ob es sich bei dem Navigationspunkt um den letzten der aktuellen Ebene handelt. |
#nav.label | Name des entsprechenden Zielknotens. |
#nav.level | Nummer der Navigationsebene. Die Zählung beginnt mit 0 |
#nav.levelPos | Position des aktuellen Ordners in der aktuellen Ebene. Die Zählung beginnt mit 0. |
#nav.media | In der Struktur-Verwaltung ausgewähltes Bild für das Feld Normal. |
#nav.media.height | Höhe des Bilds in Pixeln. |
#nav.media.width | Breite des Bilds in Pixeln. |
#nav.mediaHighlight | In der Struktur-Verwaltung ausgewähltes Bild für das Feld mit Mauszeiger. |
#nav.mediaHighlight.height | Höhe des Bilds in Pixeln. |
#nav.mediaHighlight.width | Breite des Bilds in Pixeln. |
#nav.mediaHighlightSelected | In der Struktur-Verwaltung ausgewähltes Bild für das Feld Ausgewählt, mit Mauszeiger. |
#nav.mediaHighlightSelected.height | Höhe des Bilds in Pixeln. |
#nav.mediaHighlightSelected.width | Breite des Bilds in Pixeln. |
#nav.mediaSelected | In der Struktur-Verwaltung ausgewähltes Bild für das Feld Ausgewählt. |
#nav.mediaSelected.height | Höhe des Bilds in Pixeln. |
#nav.mediaSelected.width | Breite des Bilds in Pixeln. |
#nav.positions[GANZZAHL] | Position des entsprechenden Ordners in der mit einer Ganzzahl angegebenen Ebene. |
#nav.ref | Referenz zu dem Zielknoten bzw. dem entsprechenden Startknoten. |
#nav.ref.page.id | Eindeutige serverweit gültige Identifizierungsnummer der entsprechenden Seite. |
#nav.selected | Ermittelt, ob das Element selektiert ist oder nicht. |
#nav.comment
Mit diesem Methodenaufruf wird der Kommentar, der in einer Menüebenen der Struktur-Verwaltung, im Feld Kommentar sprachabhängig eingegeben werden kann, ausgegeben.
Beispiel:
<img name=... src=... alt="$CMS_VALUE(#nav.comment)$">
#nav.id
Beim Methodenaufruf #nav.id wird die eindeutige Identifikationsnummer des Knotens aus der Struktur-Verwaltung zurückgeliefert.
Eine eindeutige Identifikationsnummer wird häufig für die Erzeugung von onMouseOver-Effekten (JavaScript) genutzt.
Beispiel:
<img name="i$CMS_VALUE(#nav.id)$" src="...">
#nav.label
Beim Methodenaufruf #nav.label wird der Text, der dem jeweiligen Menüeintrag zugeordnet ist, zurückgeliefert.
Üblicherweise wird der Methodenaufruf in folgenden Parametern verwendet:
- pageRefRendering
- selectedHTML
- unselectedHTML
Beispiel:
<a href="$CMS_REF(#nav.ref)$" target="_blank">$CMS_VALUE(#nav.label)$</a>
#nav.ref
Beim Methodenaufruf #nav.ref wird der Verweis auf die dem jeweiligen Menüeintrag zugeordnete Seitereferenz aus der Struktur-Verwaltung zurückgeliefert.
Üblicherweise wird der Methodenaufruf in folgenden Parametern verwendet:
- pageRefRendering
- selectedHTML
- unselectedHTML
Beispiel:
<a href="$CMS_REF(#nav.ref)$" target="_blank">$CMS_VALUE(#nav.label)$</a>
#nav.ref.page.id
Mithilfe dieses Methodenaufrufs kann die Identifikationsnummer der Seite aus der Inhalte-Verwaltung ausgeben werden, auf welche die Seitenreferenz verweist.
Der Methodenaufruf kann nur innerhalb des Parameters pageRefRendering verwendet werden.
Der Parameter pageRefRendering wird nur ausgewertet, wenn der Parameter siteMap angegeben wurde. |
Benötigt wird die Identifikationsnummer beispielsweise bei der Erzeugung eines PDF-Inhaltsverzeichnisses.
Beispiel:
<img name="i$CMS_VALUE(#nav.ref.page.id)$" src="...">
Beispiele zur Funktion Navigation
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="Navigation" resultname="nav">
<CMS_PARAM name="expansionVisibility" value="standard"/>
<CMS_ARRAY_PARAM name="innerBeginHTML">
<CMS_ARRAY_ELEMENT index="0..3"><![CDATA[<ul>]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="beginHTML">
<CMS_ARRAY_ELEMENT index="0..4"><![CDATA[<li>]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="unselectedHTML">
<CMS_ARRAY_ELEMENT index="0..4"><![CDATA[<a href="$CMS_REF(#nav.ref)$">$CMS_VALUE(#nav.label)$</a>]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="selectedHTML">
<CMS_ARRAY_ELEMENT index="0..4"><![CDATA[<a href="$CMS_REF(#nav.ref)$" style="color:#ff0000;">$CMS_VALUE(#nav.label)$</a>]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="endHTML">
<CMS_ARRAY_ELEMENT index="0..4"><![CDATA[</li>]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="innerEndHTML">
<CMS_ARRAY_ELEMENT index="0..3"><![CDATA[</ul>]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
</CMS_FUNCTION>
</CMS_HEADER>
$CMS_IF(!nav.isEmpty)$
<ul>
$CMS_VALUE(nav)$
</ul>
$CMS_END_IF$
Das Beispiel gibt eine einfache Navigation als Liste aus, wobei das selektierte Element rot eingefärbt wird.
Exemplarische Ausgabe:
<ul>
<li>
<a href="/fs4preview/preview/671041/site/DE/current/671044/897047">entry_01</a>
</li>
<li>
<a href="/fs4preview/preview/671041/site/DE/current/671044/675058">entry_02</a>
</li>
<li>
<a href="/fs4preview/preview/671041/site/DE/current/671044/897043">entry_03</a>
<ul>
<li>
<a href="/fs4preview/preview/671041/site/DE/current/671044/897049" style="color:#ff0000;">entry_03_01</a>
</li>
<li>
<a href="/fs4preview/preview/671041/site/DE/current/671044/897050">entry_03_02</a>
</li>
</ul>
</li>
</ul>