Startseite / Vorlagenentwicklung / Vorlagensyntax / Funktionen / im Header / Navigation

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 Navigation-Funktionen 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 Navigation-Funktion 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 Navigation-Funktion 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 Navigations-Funktionen abgelegt werden (siehe Beispiel Ausgabe der Funktionsergebnisse).

Beispiel (Funktion):

<CMS_FUNCTION name="Navigation" resultname="fr_pt_mainNavi">
<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 -->
Wichtig Die Navigation-Funktion kann so konfiguriert werden, dass Seiten bzw. Menüpunkte im ContentCreator vom Redakteur direkt auf der Vorschauseite verschoben oder per Drag & Drop angelegt 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 "Navigation"-Funktion 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>
Wichtig Zu allgemeinen Hinweisen zur Syntax von Header-Funktionen siehe einleitende Seite Funktionen.

Parameter der "Navigation"-Funktion

Bei der Navigation-Funktion können folgende Parameter genutzt werden:

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

standard

Beim Schlüsselbegriff standard ist die Navigation vollständig kontrahiert.
Es wird der aktuelle Menüpunkt, seine Söhne, seine Brüder, seine Väter und deren Brüder angezeigt.

all

Wird der Schlüsselbegriff all als Wert gewählt, so wird der komplette Navigationsbaum vollständig expandiert und alle Elemente angezeigt.

pathonly

Der Schlüsselbegriff pathonly bewirkt, dass nur der aktuelle Menüpunkt, seine Söhne und alle seine Väter angezeigt werden.

purepath

Der Schlüsselbegriff purepath entspricht weitgehend dem Parameter pathonly, nur dass die Söhne des aktuellen Menüpunkts ausgeblendet werden.
Diese Navigation stellt also nur den Pfad zum aktuellen Menüpunkt dar.

parentpath

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.

subtree

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.

Um den aktuellen Menüpunkt darzustellen gibt es zwei Möglichkeiten:

  1. Eine zusätzliche Navigation-Funktion mit dem Schlüsselbegriff standard für den Parameter expansionVisibility. Der Parameter wholePathSelected sollte nicht angegeben werden. Weiterhin sollten Vorlagenfragmente nur über den Parameter selectedHTML erstellt werden.
  2. Zugriff auf die Menüebene über das Systemobjekt #global (z. B. mit $CMS_VALUE(#global.node.parent)$).


Hinweis: Wird der Parameter subtree (expansionVisibility="subtree") gesetzt, wird ein über den Parameter root angegebener Startpunkt nicht berücksichtigt.

  

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" />

Wichtig 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.)

Navigation function (parameter

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.

Enthält eine Unterseite mehr als einen Datensatz, wird für die Beschriftung in der Sitemap der erste und der letzte Datensatz der Seite verwendet. Sie werden durch ein " - " voneinander getrennt ausgegeben.

Anzahl der Einträge pro Seite: 1

Für jeden der 3 Datensätze wird eine Unterseite erzeugt.

* 1. Datensatz
* 2. Datensatz
* 3. Datensatz

Für die Mehrfachseite resultieren 3 Einträge in der Sitemap.
Für die Beschriftung wird jeweils der enthaltene Datensatz verwendet.

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
* 3. Datensatz

Für die Mehrfachseite resultieren 2 Einträge in der Sitemap.
Für die Beschriftung der ersten Unterseite werden die ersten beiden Datensätze verwendet (getrennt durch ein " - "), für die Beschriftung der zweiten Unterseite wird der dritte Datensatz verwendet.

    

Für „einfache“ Seitenreferenzen (keine Seitenreferenz einer Mehrfachseite) hat der Parameter multiPages mit dem Wert 1 keine Auswirkung.

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

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

Wichtig 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 Array-Element 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.

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

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

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

Wichtig 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 "Navigation"-Funktion

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.folder

Liefert den aktuellen Ordner in der Menüstruktur 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.isFirstPageRef
(nur in Kombination mit pageRefRendering)

Liefert zurück, ob es sich bei der Seitenreferenz um die erste der aktuellen Ebene handelt.

#nav.isLastPageRef
(nur in Kombination mit pageRefRendering)

Liefert zurück, ob es sich bei der Seitenreferenz um die letzte 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 Bildes in Pixeln.

#nav.media.width

Breite des Bildes in Pixeln.

#nav.mediaHighlight

In der Struktur-Verwaltung ausgewähltes Bild für das Feld mit Mauszeiger.

#nav.mediaHighlight.height

Höhe des Bildes in Pixeln.

#nav.mediaHighlight.width

Breite des Bildes 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 Bildes in Pixeln.

#nav.mediaHighlightSelected.width

Breite des Bildes in Pixeln.

#nav.mediaSelected

In der Struktur-Verwaltung ausgewähltes Bild für das Feld Ausgewählt.

#nav.mediaSelected.height

Höhe des Bildes in Pixeln.

#nav.mediaSelected.width

Breite des Bildes in Pixeln.

#nav.positions[GANZZAHL]

Position des entsprechenden Ordners in der mit einer Ganzzahl angegebenen Ebene.
Bei #nav.positions handelt es sich um eine Liste. Es ist daher darauf zu achten, dass die angegebene Zahl kleiner als die Anzahl der Elemente in der Liste (#nav.positions.size) ist.

#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.folder

Beim Methodenaufruf #nav.folder wird der Verweis auf den in der Navigation darzustellenden Ordner aus der Struktur-Verwaltung zurückgeliefert.

Üblicherweise wird der Methodenaufruf in folgenden Parametern verwendet:

  • selectedHTML
  • unselectedHTML

Benötigt wird die Information beispielsweise, um zu prüfen, ob der Ordner eine Startseite oder einen Startordner hat.

Beispiel:

$CMS_IF(#nav.folder == #global.node.parent)$
<Ausgabe für Startseite>
$CMS_ELSE$
<Ausgabe für Startordner>
$CMS_END_IF$

#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.

Wichtig 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 "Navigation"-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="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>

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