define
Die Funktion define dient dazu, im Header-Bereich einer Vorlage eine Variable zu definieren und der Variable einen Wert zuzuweisen.
Neben Konstanten und Variablen können mit der define-Funktion auch komplexere konditionale Überprüfungen angegeben werden. Abhängig davon, ob eine angegebene Bedingung erfüllt oder nicht erfüllt ist, liefert die Funktion unterschiedliche Rückgabewerte.
Das Definieren von Variablen und Zuweisen von Werten kann ebenso über die Anweisung $CMS_SET(...)$ erfolgen, die Funktion define wurde in erster Linie aus Kompatibilitätsgründen zu FirstSpirit-Version 3.1 beibehalten. Ein Argument, die Funktion define zu verwenden, kann sein, dass sie zu Beginn (im Header) einer Vorlage steht und somit an prominenter Stelle.
Syntax der "define"-Funktion
Der Grundaufbau der Funktion define sieht wie folgt aus:
1) Definition einer String-Konstanten:
<CMS_FUNCTION name="define" resultname="BEZEICHNER">
<CMS_PARAM name="source" value="KONSTANTE" />
</CMS_FUNCTION>
Beispiel:
<CMS_FUNCTION name="define" resultname="name">
<CMS_PARAM name="source" value="Eine Konstante" />
</CMS_FUNCTION>
Im Beispiel wird der Rückgabewert der define-Funktion auf den String Eine Konstante festgelegt.
2) Definition unter Verwendung von Ausdrücken:
<CMS_FUNCTION name="define" resultname="BEZEICHNER">
<CMS_VALUE_PARAM name="source" value="AUSDRUCK" />
</CMS_FUNCTION>
Beispiel:
<CMS_FUNCTION name="define" resultname="name">
<CMS_VALUE_PARAM name="source" value="4 * 2 - 5" />
</CMS_FUNCTION>
Der Rückgabewert der define-Funktion wird mit dem Ausdruck 4 * 2 - 5 festgelegt.
3) Definition eines Vorlagenfragmentes (vergleichbar mit einer Absatzvorlage):
<CMS_FUNCTION name="define" resultname="BEZEICHNER">
<CMS_CDATA_PARAM name="source">
<![CDATA[
RUMPF DES VORLAGENFRAGMENTES
]]>
</CMS_CDATA_PARAM>
</CMS_FUNCTION>
Der Name der Variable, des Ausdrucks oder Vorlagenfragments muss über den Parameter source angegeben werden, z. B. für Ausdrücke: <CMS_VALUE_PARAM name="source" value="...">. |
Zu allgemeinen Hinweisen zur Syntax von Header-Funktionen siehe einleitende Seite Funktionen. |
Rückgabeobjekt der Funktion
Das Funktionsergebnis der Funktion define kann
- im Header-Bereich und/oder
- im HTML-Bereich
der Vorlage ausgegeben bzw. verwendet werden.
Im HTML-Bereich geschieht dies über eine $CMS_VALUE(...)$-Anweisung, z. B.
<CMS_HEADER>
<CMS_FUNCTION name="define" resultname="fr_pt_define">
<CMS_...>
</CMS_FUNCTION>
</CMS_HEADER>
<html>
...
$CMS_VALUE(fr_pt_define)$
...
</html>
Für ein Beispiel zur Verwendung im Header-Bereich siehe einleitende Seite Funktionen.
Beispiele zur "define"-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.
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: Bedingte Auswertung
<CMS_FUNCTION name="define" resultname="name">
<CMS_CDATA_PARAM name="source">
<![CDATA[
$CMS_IF(!myVar.isEmpty)$
erste_Möglichkeit
$CMS_ELSE$
zweite_Möglichkeit
$CMS_END_IF$
]]>
</CMS_CDATA_PARAM>
</CMS_FUNCTION>
Im oben angegebenen Codebeispiel wird der Inhalt einer Variablen myVar geprüft. Ist der Wert von myVar null, gibt der Rückgabewert der define-Funktion erste_Möglichkeit zurück oder, wenn diese Bedingung nicht erfüllt ist, zweite_Möglichkeit.
2. Beispiel: Fallunterscheidung
<CMS_FUNCTION name="define" resultname="name">
<CMS_CDATA_PARAM name="source">
<![CDATA[
$CMS_SWITCH(myVar.toString)$
Standard_Möglichkeit
$CMS_CASE("ABC")$
erste_Möglichkeit
$CMS_CASE("DEF")$
zweite_Möglichkeit
$CMS_CASE("XYZ")$
n-te_Möglichkeit
$CMS_END_SWITCH$
]]>
</CMS_CDATA_PARAM>
</CMS_FUNCTION>
Im oben angegebenen Codebeispiel wird der Inhalt einer Variablen myVar geprüft. Ist der Wert von myVar ABC, gibt der Rückgabewert der define-Funktion erste_Möglichkeit zurück, ist der Wert DEF, zweite_Möglichkeit, usw.
Dabei können beliebig viele unterschiedliche Bedingungen überprüft werden. Dazu können Anweisungen und Funktionen verwendet werden.