legacyContains
Verwendung der Funktion legacyContains
Bei der FunktionlegacyContains handelt es sich um eine Vergleichsfunktion, die das Vorkommen einer oder mehrerer Teilzeichenketten in einer vorgegebenen Zeichenkette (Quellzeichenkette) ermittelt.
Die legacyContains-Funktion wird in einer späteren FIRSTspirit-Version entfallen. |
Leerprüfung (isEmpty)
Ob eine vorgegebene Zeichenkette leer oder gefüllt ist, kann über die Verwendung der Methode .isEmpty in Kombination mit $CMS_IF(...)$ geprüft werden:
$CMS_IF(BEZEICHNER.isEmpty)$
...
$CMS_ELSE$
...
$CMS_END_IF$
Gleichheitsprüfung (Equals)
Für die Gleichheitsprüfung der vorgegebenen Zeichenkette:
- gegen eine Zeichenkette wird die Verwendung von $CMS_IF(...)$ empfohlen.
- gegen mehrere Zeichenketten wird die Verwendung von $CMS_SWITCH(...)$ empfohlen.
Beispiel:
$CMS_IF("ZEICHENKETTE".equals(BEZEICHNER))$
...
$CMS_ELSE$
...
$CMS_END_IF$
$CMS_SWITCH(BEZEICHNER)$
...
$CMS_CASE("ZEICHENKETTE")$
...
$CMS_END_SWITCH$
Teilzeichenketten-Prüfung (Contains)
Für die Prüfung, ob eine Teilzeichenkette in einer anderen Zeichenkette enthalten ist, wird die Methode .contains in Kombination mit $CMS_IF(...)$ empfohlen:
$CMS_IF("TEILZEICHENKETTE".contains(BEZEICHNER))$
...
$CMS_ELSE$
...
$CMS_END_IF$
Syntax der legacyContains-Funktion
Der Grundaufbau der Funktion legacyContains sieht wie folgt aus:
<CMS_FUNCTION name="legacyContains" resultname="BEZEICHNER">
<CMS_VALUE_PARAM name="source" value="BEZEICHNER"/>
<CMS_PARAM name="contains" value="ZEICHENKETTE"/>
<CMS_PARAM name="ignoreCase" value="BOOLEAN"/>
<CMS_CDATA_PARAM name="trueCase">
<![CDATA[
AUSFÜHRUNGSTEIL (ERFÜLLTE BEDINGUNG)
]]>
</CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="falseCase">
<![CDATA[
AUSFÜHRUNGSTEIL (NICHT ERFÜLLTE BEDINGUNG)
]]>
</CMS_CDATA_PARAM>
</CMS_FUNCTION>
Parameter der legacyContains-Funktion
Für die legacyContains-Funktion lassen sich folgende Parameter angeben:
- contains
- falseCase
- ignoreCase
- source
- trueCase
Der Parameter source ist ein Pflichtparameter. Es muss mindestens einmal der Parameter contains und entweder falseCase oder trueCase angegeben werden. Alle anderen Parameter sind optional. |
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 | Bedeutung | Angabe einer Konstanten | Angabe von Ausdrücken | Angabe eines Vorlagenfragmentes | Pflicht- |
---|---|---|---|---|---|
contains | Eine oder mehrere Vergleichszeichenketten (logisch-und-verknüpft) | X | O | O | ja |
falseCase | Ausführungsteil, wenn keine Teilzeichenkette enthalten ist | X | X | X | ja |
ignoreCase | Groß-/Kleinschreibung ignorieren | O | X | O | nein |
source | Vorgabe- / Quellzeichenkette | X | X | O | ja |
trueCase | Ausführungsteil, wenn eine oder mehrere Teilzeichenketten enthalten sind | X | X | X | ja |
Parameter contains
Mit dem Parameter contains können eine oder mehrere Teilzeichenketten angegeben werden, auf deren Inhalt die Quellzeichenkette (Parameter source) untersucht werden soll.
Die einzelnen contains-Parameter sind bei der Suche logisch-und-verknüpft.
Bei der Defintion einer legacyContains-Funktion muss der Parameter contains mindestens einmal verwendet werden. |
Definition mit der Angabe einer Konstanten:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_PARAM name="contains" value="KONSTANTE" />
<CMS_PARAM name="contains" value="KONSTANTE" />
...
</CMS_FUNCTION>
Parameter falseCase
Mit dem Parameter falseCase wird ein Ausgabewert für den Fehlerfall definiert. Wird kein Vorkommen einer (oder mehrerer) Teilzeichenketten (Parameter contains) in der Quellzeichenkette (Parameter source) gefunden, wird hier definierte Wert zurückgegeben.
Aus Rückwärtskompatibilitätsgründen kann für falseCase das Synonym falseValue benutzt werden. Dieses Synonym sollte aber nicht mehr weiterverwendet werden. |
Bei der Definiton einer legacyContains-Funktion muss falseCase oder trueCase angegeben werden. |
Definition unter Angabe einer Konstanten:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_PARAM name="falseCase" value="KONSTANTE" />
...
</CMS_FUNCTION>
Definition unter Angabe von Ausdrücken:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_VALUE_PARAM name="falseCase" value="AUSDRUCK" />
...
</CMS_FUNCTION>
Definition unter Angabe eines Vorlagenfragmentes (vergleichbar mit einer Absatzvorlage):
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_CDATA_PARAM name="falseCase">
<![CDATA[
RUMPF DES VORLAGENFRAGMENTES
]]>
</CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Parameter ignoreCase
Ohne Definition des Parameters ignoreCase wird beim Vergleich der Teilzeichenketten mit der Quellzeichenkette die Groß- und Kleinschreibung der Teilzeichenketten berücksichtigt (Boolesche Konstante: false).
Wird für den Parameter ignoreCase die Boolesche Konstante true angegeben, wird die Groß- und Kleinschreibung der Teilzeichenkette nicht berücksichtigt.
Definition unter Angabe einer Boolesche Konstanten:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_VALUE_PARAM name="ignoreCase" value="true" />
...
</CMS_FUNCTION>
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_VALUE_PARAM name="ignoreCase" value="false" />
...
</CMS_FUNCTION>
Parameter source
Mit dem Parameter source wird die Quellzeichenkette angegeben.
Bei der Auswertung der legacyContains-Funktion wird das Vorkommen einer Teilzeichenkette (Parameter contains) in der Quellzeichenkette ermittelt.
Bei dem Parameter source handelt es sich um einen Pflichtparameter. |
Definition unter Angabe einer Konstanten:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_PARAM name="source" value="KONSTANTE" />
...
</CMS_FUNCTION>
Definition unter Angabe von Ausdrücken:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_VALUE_PARAM name="source" value="AUSDRUCK" />
...
</CMS_FUNCTION>
Parameter trueCase
Mit dem Parameter trueCase wird ein Ausgabewert für den Fall definiert, dass mindestens eine der angegebenen Teilzeichenketten (Parameter contains) in der Quellzeichenkette (Parameter source) enthalten ist.
Aus Rückwärtskompatibilitätsgründen kann für trueCase das Synonym trueValue benutzt werden. Dieses Synonym sollte aber nicht mehr weiterverwendet werden. |
Bei der Definiton einer legacyContains-Funktion muss falseCase oder trueCase angegeben werden. |
Definition unter Angabe einer Konstanten:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_PARAM name="trueCase" value="KONSTANTE" />
...
</CMS_FUNCTION>
Definition unter Angabe von Ausdrücken:
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_VALUE_PARAM name="trueCase" value="AUSDRUCK" />
...
</CMS_FUNCTION>
Definition unter Angabe eines Vorlagenfragmentes (vergleichbar mit einer Absatzvorlage):
<CMS_FUNCTION name="legacyContains" resultname="name">
<CMS_CDATA_PARAM name="trueCase">
<![CDATA[
RUMPF DES VORLAGENFRAGMENTES
]]>
</CMS_CDATA_PARAM>
...
</CMS_FUNCTION>
Beispiele zur Funktion legacyContains
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: Angabe eine Teilzeichenkette
<CMS_FUNCTION name="legacyContains" resultname="containsString">
<CMS_PARAM name="source" value="Eine Zeichenkette" />
<CMS_PARAM name="contains" value="EiChE" />
<CMS_VALUE_PARAM name="ignoreCase" value="true" />
<CMS_PARAM name="trueCase" value="Teilzeichenkette enthalten" />
<CMS_PARAM name="falseCase" value="Teilzeichenkette NICHT enthalten" />
</CMS_FUNCTION>
Im Beispiel wird bei der Auswertung versucht die Teilzeichenkette EiChE in der Quellzeichenkette Eine Zeichenkette zu finden. Da die Groß- und Kleinschreibung beim Vergleich nicht berücksichtigt wird, liefert der Vergleich true zurück und somit wird Teilzeichenkette enthalten ausgegeben.
2. Beispiel: Angabe mehrerer Teilzeichenketten
<CMS_FUNCTION name="legacyContains" resultname="containsString">
<CMS_PARAM name="source" value="Eine Zeichenkette" />
<CMS_PARAM name="contains" value="Weiche" />
<CMS_PARAM name="contains" value="Kette" />
<CMS_VALUE_PARAM name="ignoreCase" value="true" />
<CMS_PARAM name="trueCase" value="Teilzeichenkette enthalten" />
<CMS_PARAM name="falseCase" value="Teilzeichenkette NICHT enthalten" />
</CMS_FUNCTION>
Im Beispiel wird bei der Auswertung versucht erst die Teilzeichenkette Weiche und dann Kette in der Quellzeichenkette Eine Zeichenkette zu finden. Da die Groß- und Kleinschreibung beim Vergleich nicht berücksichtigt wird, liefert der Vergleich true zurück und somit wird Teilzeichenkette enthalten ausgegeben.