$CMS_SWITCH(...)$
Verwendung von $CMS_SWITCH(...)$
Innerhalb einer Vorlage können, abhängig von einer Bedingung, beispielsweise der Breite eines Bildes, unterschiedliche Ausgaben an die entsprechende Stelle einer Seite generiert werden.
Bedingte Auswertungen werden durch Verwendung der folgenden Anweisungen ausgeführt:
- $CMS_IF(...)$
- $CMS_SWITCH(...)$
Im Unterschied zur Anweisung $CMS_IF(...)$, wird bei $CMS_SWITCH(...)$ eine Variable auf mehrere mögliche Inhalte geprüft (Fallunterscheidung). Hierbei kann, je nach vorgegebenen Inhalt, ein anderes Ergebnis ausgegeben werden.
Syntax von $CMS_SWITCH(...)$
Der Grundaufbau einer Schleife mit $CMS_SWITCH(...)$ sieht wie folgt aus:
$CMS_SWITCH(OBJEKT)$
STANDARDAUSFÜHRUNGSTEIL
$CMS_CASE(BEDINGUNG_1)$
AUSFÜHRUNGSTEIL_1
$CMS_CASE(BEDINGUNG_2)$
AUSFÜHRUNGSTEIL_2
...
$CMS_CASE(BEDINGUNG_N)$
AUSFÜHRUNGSTEIL_N
$CMS_END_SWITCH$
Der $CMS_SWITCH(...)$-Anweisung wird zur Überprüfung ein OBJEKT übergeben.
Ausdrücke bis zum ersten $CMS_CASE(...)$-Block stellen den Standardfall dar.
Es folgen beliebige $CMS_CASE(...)$-Blöcke mit einem BEDINGUNG und einem AUSFÜHRUNGSTEIL.
Die Auswertung einer $CMS_SWITCH(...)$-Anweisung erfolgt wie folgt:
Die $CMS_CASE(...)$-Blöcke werden nacheinander mit den angegebenen BEDINGUNGEN gegen den Wert von OBJEKT verglichen.
Stimmt die BEDINGUNG mit dem Wert von OBJEKT überein, so wird der AUSFÜHRUNGSTEIL dieses $CMS_CASE(...)$-Blocks ausgeführt.
Stimmen die beiden Werte nicht überein, wird der nächste $CMS_CASE(...)$-Block für den Vergleich genommen.
Stimmt die BEDINGUNG keines $CMS_CASE(...)$-Blocks mit dem Wert von OBJEKT überein, so wird der STANDARDAUSFÜHRUNGTEIL ausgeführt.
Eine $CMS_SWITCH(...)$-Anweisung lässt sich daher auch in eine $CMS_IF(...)$-Anweisung umschreiben:
$CMS_SWITCH("wert")$
Standardausgabe
$CMS_CASE("kein_wert")$
Kein Wert
$CMS_CASE("wert")$
Wert
$CMS_END_SWITCH$
ist äquivalent zu:
$CMS_IF("kein_wert".equals("wert"))$
Kein Wert
$CMS_ELSEIF("wert".equals("wert"))$
Wert
$CMS_ELSE$
Standardausgabe
$CMS_END_IF$
Parameter von $CMS_SWITCH(...)$
$CMS_SWITCH(...)$ verfügt nur über einen Parameter: ein OBJEKT.
OBJEKT
Um eine $CMS_SWITCH(...)$-Anweisung zu definieren, ist die Angabe eines Objektes zwingend notwendig:
$CMS_SWITCH("Wert")$
...
$CMS_END_SWITCH$
oder
$CMS_SWITCH(varName)$
...
$CMS_END_SWITCH$
oder
$CMS_SWITCH(varName.toString)$
...
$CMS_END_SWITCH$
Das Objekt kann sowohl eine Konstante als auch eine andere Variable oder ein Ausdruck sein.
Informationen zur Auswertungsreihenfolge von Ausdrücken sind unter logische Ausdrücke und vergleichende Ausdrücke aufgeführt. |
Parameter von $CMS_CASE(...)$
Die $CMS_CASE(...)$-Blöcke verfügen ebenfalls über einen Parameter: die BEDINGUNG.
BEDINGUNG
Eine Bedingung kann sowohl eine Konstante als auch eine andere Variable oder ein Ausdruck sein.
Beispiele zu $CMS_SWITCH(...)$
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. |
1. Beispiel: Sprachabhängige Ausgabe
Codebeispiel:
$CMS_SWITCH(#global.language.abbreviation.toLowerCase)$
Welcome!
$CMS_CASE("de")$
Willkommen!
$CMS_CASE("en")$
Welcome!
$CMS_CASE("fr")$
Bienvenue!
$CMS_END_SWITCH$
Beschreibung:
Das Beispiel gibt in einer Vorschau für die Sprache mit dem Kürzel "de" "Willkommen!" aus, für "fr" "Bienvenue!", für "en" und für alle anderen Sprachen "Welcome!".
Ausgabe:
Willkommen!
für die Sprache mit dem Kürzel "de".