Eigenschaft VALID
Gültigkeit einer Eingabekomponente ermitteln
VALID ist ein spezielles Attribut, das nur innerhalb des <VALIDATION/>-Abschnitts einer Regel und nur für Eingabekomponenten verwendet werden kann (siehe Übersicht).
Innerhalb des <WITH/>-Abschnitts einer Regel werden Bedingungen definiert, beispielsweise „Die Eingabekomponente ist nicht leer“ oder „Der Wert in Eingabekomponente A muss größer sein, als der Wert in Eingabekomponente B“.
Die Auswertung dieser Bedingungen im Formular liefert einen Booleschen Wert, der im <DO/>-Abschnitt der Regel mit der gewünschten Handlungsanweisung verknüpft wird. Innerhalb des <DO/>-Abschnitts kann ein <VALIDATION/>-Tag angegeben werden. Eine Validierung ist eine bestimmte Handlungsanweisung, die ausgeführt wird, solange die Bedingungen, die innerhalb der Wertermittlung definiert wurden, nicht erfüllt sind (d.h. solange die Wertermittlung FALSE zurückliefert).
Eine Validierung muss immer einer bestimmten Eingabekomponente innerhalb eines Formulars zugeordnet werden. Innerhalb der Validierung wird daher ein inneres <PROPERTY/>-Tag mit dem Namen einer Eingabekomponente und dem Attribut VALID definiert: <PROPERTY source='gadget' name='VALID'/>.
Solange eine Regelverletzung vorliegt (d.h. die in der Regel definierten Bedingungen im Formular nicht erfüllt sind), führt dieser Ausdruck dazu, dass die Eingabekomponente im Formular (abhängig von der gewählten Restriktionsstufe) hervorgehoben und dem Redakteur ein entsprechender Hinweis angezeigt wird (vgl. Darstellung einer Regelverletzung).
Beispiele
Beispiel 1) Einfache Leerprüfung für eine Eingabekomponente
Das folgende Formular enthält zwei Eingabekomponenten: die Eingabekomponente „cs_picture“ (vom Typ FS_REFERENCE) zur Auswahl eines Bildes und „cs_description“ (vom Typ CMS_INPUT_TEXTAREA) zur Angabe einer Bildbeschreibung.
Über ein dynamisches Formular soll sichergestellt werden, dass die Eingabekomponente „cs_description“ gefüllt werden muss, wenn die Eingabekomponente „cs_picture“ nicht leer ist.
Dazu wird eine Vorbedingung definiert, die zunächst prüft, ob ein Bild in der Eingabekomponente „cs_picture“ referenziert wird. Ist die Vorbedingung erfüllt („cs_picture“ ist nicht leer), wird innerhalb des <WITH/>-Abschnitts geprüft, ob die Eingabekomponente „cs_description“ leer ist. Das Ergebnis dieser Prüfung ist ein Boolescher Wert, der anschließend im <DO/>-Abschnitt mit einer Validierung der Eingabekomponente verknüpft wird. Solange die Bedingung („Bildbeschreibung ist nicht leer“) nicht erfüllt ist, wird der <VALIDATION/>-Abschnitt der Regel ausgeführt und ein Korrekturhinweis eingeblendet.
...
<RULE>
<IF>
<NOT>
<PROPERTY source="cs_picture" name="EMPTY"/>
</NOT>
</IF>
<WITH>
<NOT>
<PROPERTY source="cs_description" name="EMPTY"/>
</NOT>
</WITH>
<DO>
<VALIDATION scope="RELEASE">
<PROPERTY source="cs_description" name="VALID"/>
<MESSAGE lang="*" text="The editor must not be empty!"/>
<MESSAGE lang="DE" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</RULE>
...