$CMS_VALUE(...)$
Verwendung von $CMS_VALUE(...)$
Damit die Inhalte von Variablen, Eingabekomponenten oder Funktionsergebnissen im Ausgabekanal sichtbar sind, muss eine Ausgabe innerhalb der Vorlagen erfolgen. Damit beispielsweise der Inhalt einer Eingabekomponente im Browser sichtbar ist, muss innerhalb des HTML-Ausgabekanals (Register HTML), im HTML-Bereich der Vorlage, der Inhalt der Eingabekomponente ausgegeben werden. Mit der Anweisung $CMS_VALUE(...)$ ist es dem Redakteur möglich, in Vorlagen auf diese Inhalte zuzugreifen. Zusätzlich lassen sich in der Anweisung Ausdrücke (siehe auch Ausdrücke) auswerten und Methoden (siehe auch Methoden) anwenden. Die anwendbaren Ausdrücke bzw. Methoden hängen vom Typ der Variable ab, d.h. eine Eingabekomponente liefert eine Variable vom Typ Set, eine andere Eingabekomponente eine Variable vom Typ String zurück (siehe auch Formulare ).
Hierbei wird innerhalb der Klammern der Name der zu referenzierenden Variable angegeben, im Beispiel der Name der Eingabekomponente. Falls nicht die Variable selber, sondern nur ein Attribut der Variable auf der Seite eingebunden werden soll, so muss der Name des Attributs, durch einen Punkt getrennt, hinter dem Variablennamen angegeben werden. Damit die Änderungen in der GUI sichtbar sind, muss auf der Seite in der Inhalte-Verwaltung eine Aktualisierung durchgeführt werden.
Syntax von $CMS_VALUE(...)$
Bei Verwendung von $CMS_VALUE(...)$ muss folgende Syntax eingehalten werden:
$CMS_VALUE(VARIABLE)$
oder
$CMS_VALUE(KONSTANTE)$
oder
$CMS_VALUE(AUSDRUCK)$
Die einfachste Form von $CMS_VALUE(...)$ gibt den Wert einer Variablen aus. Innerhalb der Klammern (...) können aber auch komplexere Ausdrücke verwendet werden:
Beispiel: Kombination mit "+"-Operator:
$CMS_VALUE(meineZahl + 2)$
Beispiel: Kombination mit Punktnotation:
$CMS_VALUE(meinWert.toString)$
Ist eine Variable nicht definiert oder ist sie Null, wird zu Debugging-Zwecken im Log eine entsprechende Fehlermeldung ausgegeben, z. B. Undefined field oder Undefined variable. Um diese Fehlermeldungen zu unterbinden, kann je nach Anwendungsfall eine isNull- (Methode .isNull()) oder isEmpty-Prüfung (Methode .isEmpty()) durchgeführt werden, z. B. $CMS_IF(!VARIABLE.isNull)$ $CMS_VALUE(VARIABLE)$ $CMS_END_IF$ Die Möglichkeiten, über die Funktion isSet(...) zu prüfen, ob eine Variable gesetzt ist, oder über default einen Standardwert zu definieren (z. B. $CMS_VALUE(VARIABLE, default:"Standardwert")$, siehe unten), sollten mit Vorsicht eingesetzt werden, da in diesem Fall Fehlermeldungen unterdrückt werden, was die Fehlersuche („Debugging“) erschwert, und im Fall von isSet eine möglicherweise unerwünschte Ausgabe des Wertes auf der generierten Seite erfolgt. |
Innerhalb einer $CMS_VALUE(...)$-Anweisung können mehrere Parameter (Variablen, Konstanten, Ausdrücke), kommasepariert übergeben werden, beispielsweise bei der Definition eines Standardwertes.
Syntax (Definition eines Standardwertes):
$CMS_VALUE(OBJEKT1, default:OBJEKT2)$
Beispiel (Definition eines Standardwertes):
$CMS_VALUE(VARIABLENNAME,default:"--WERT NICHT GESETZT--")$
In dem Beispiel wird, wenn die Variable VARIABLENNAME nicht definiert ist, --WERT NICHT GESETZT-- ausgegeben.
Ersetzungen ab FirstSpirit Version 4.0
Ab FirstSpirit Version 4.0 können innerhalb der Anweisung $CMS_VALUE(...)$ auch Ausdrücke verwendet werden.
Beispiele:
"$CMS_VALUE(6 * 7)$"
Gibt die Zahl "42" aus.
"$CMS_VALUE("1" == "1")$"
Gibt den Wert "true" aus.
"$CMS_VALUE(true || false)$"
Gibt den Wert "true" aus.
Außerdem werden ab FirstSpirit Version 4.0 einige Anweisungen durch $CMS_VALUE(...)$ ersetzt.
Eine kurze Übersicht bietet die folgende Tabelle:
Anweisung vor Version 4.0 | Anweisung ab Version 4.0 |
---|---|
$CMS_BODY(NAME)$ | $CMS_VALUE(#global.page.body("NAME"))$ |
$CMS_DEREF(AUSDRUCK)$ | $CMS_VALUE(ref(REFERENZAUSDRUCK).AUSDRUCK)$ |
$CMS_DUMPCONTEXT()$ | $CMS_VALUE(#global.dumpcontext)$ |
$CMS_LOCALVALUE(VARIABLENNAME)$ | $CMS_VALUE(#nav.METHODE)$ |
Beispiele zu $CMS_VALUE(...)$
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: Methodenaufruf
Codebeispiel:
$CMS_SET(zeichenkette, "Eine Zeichenkette mit vielen Buchstaben")$
$CMS_VALUE(zeichenkette.contains("mit"))$
Beschreibung:
Im angegebenen Beispiel wird eine Variable zeichenkette mit einer Zeichenkette definiert. Mit der Methode contains, die auf einem String angewendet werden kann, wird überprüft, ob die Teilzeichenkette mit in der Zeichenkette Eine Zeichenkette mit vielen Buchstaben enthalten ist.
Ausgabe:
true
2. Beispiel: Konstantenausgabe
Codebeispiel:
$CMS_VALUE("KONSTANTE")$
Beschreibung:
Im Beispiel wird die Konstante KONSTANTE ausgegeben.
Ausgabe:
KONSTANTE