Eigenschaft LENGTH
Zeichenanzahl einer Eingabekomponente prüfen
Einige FirstSpirit-Eingabekomponenten stellen eine Längeninformation ihrer gespeicherten Werte bereit, z. B.:
Mithilfe dieser Information kann ein Vorlagenentwickler die Anzahl der Zeichen, die ein Redakteur in eine Eingabekomponente einträgt, über Regeln auswerten. Neben der Beschränkung auf eine maximale Zeichenanzahl, können über ein dynamisches Formular auch Prüfungen über eine minimal notwendige Zeichenanzahl oder auch eine Prüfung auf gleiche Zeichenanzahl durchgeführt werden. Diese Vergleiche können gegen eine numerische Konstante („Es dürfen nicht mehr als 1024 Zeichen eingetragen werden.“) oder gegen einen variablen Vergleichswert (z. B. die Längeninformation einer weiteren Eingabekomponente) ausgeführt werden.
Der Ausdruck <PROPERTY source='gadget' name='LENGTH'/> kann im Bereich Wertermittlung der Regeldefinition (oder für die Definition einer Vorbedingung) eingesetzt werden und liefert die Zeichenanzahl des entsprechenden Wertes zurück.
Zur Definition einer vollständigen Bedingung für eine längenabhängige Validierung, muss zusätzlich ein Vergleichswert:
- ein konstanter numerischer Vergleichswert (z. B. <NUMBER>10</NUMBER>) oder
- ein variabler Vergleichswert, bspw. die Zeichenanzahl einer weiteren Eingabekomponente
und ein Operator:
- <GREATER_THAN/>,
- <LESS_THAN/> oder
- <EQUAL/>
angegeben werden. In diesem Fall liefert der Ausdruck einen Booleschen Wert zurück.
Hinweis: Bei einer Längenprüfung muss beachtet werden, dass einige Eingabekomponenten nicht sichtbare Zeichen (z. B. Absatzmarkierung im DOM) verwenden. Dies sollte bei der Erstellung der Regel berücksichtigt werden. Handelt es sich bei der Eingabekomponente beispielsweise um eine Eingabekomponente vom Typ CMS_INPUT_DOM, so können vom Redakteur im unten gezeigten Beispiel weniger als die definierten 1.024 Zeichen eingegeben werden, da jede nicht sichtbare Absatzmarkierung ebenfalls als ein Zeichen zählt. |
Beispiele
Beispiel 1) Einfache Längenprüfung für eine Eingabekomponente:
Das folgende Formular enthält eine Eingabekomponente „cs_description“ (vom Typ CMS_INPUT_DOM) zur Angabe einer Produktbeschreibung. Über ein dynamisches Formular soll sichergestellt werden, dass die Eingabe des Redakteurs eine bestimmte Zeichenanzahl nicht überschreitet.
Dazu wird innerhalb des <WITH/>-Abschnitts die Zeichenanzahl der Eingabekomponente geholt und gegen eine numerische Konstante verglichen. Das Ergebnis dieser „Größer-als“-Prüfung ist ein Boolescher Wert, der anschließend im <DO/>-Abschnitt mit einer Validierung der Eingabekomponente verknüpft wird. Solange die Bedingung („Zeichenanzahl ist nicht größer als 1024“) nicht erfüllt ist, wird der <VALIDATION/>-Abschnitt der Regel ausgeführt und ein Korrekturhinweis eingeblendet. Durch die umschließenden <ON_SAVE/>-Tags wird außerdem das Speichern des Formulars unterbunden.
...
<ON_SAVE>
<WITH>
<NOT>
<GREATER_THAN>
<PROPERTY source="cs_description" name="LENGTH"/>
<NUMBER>1024</NUMBER>
</GREATER_THAN>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="cs_description" name="VALID"/>
<MESSAGE lang="*" text="Only 1,024 characters allowed!"/>
<MESSAGE lang="DE" text="Es sind nur 1.024 Zeichen zugelassen!"/>
</VALIDATION>
</DO>
</ON_SAVE>
...