Startseite
Startseite

Startseite / Vorlagenentwicklung / Regeln / Formulareigenschaften <PROPERTY/> / Eigenschaft EMPTY

Eigenschaft EMPTY

Leerwertprüfung für Eingabekomponenten

Eingabekomponenten können einen Wert enthalten oder „leer“ sein. Ist kein Wert in der Eingabekomponente hinterlegt, kann diese abhängig vom Typ der Eingabekomponente entweder einen:

Der Ausdruck <PROPERTY source="gadget" name="EMPTY"/> kann im Bereich Wertermittlung der Regeldefinition (oder für die Definition einer Vorbedingung eingesetzt werden und prüft, ob für eine Eingabekomponente ein Wert gespeichert (oder in der Vorlage vorbelegt) wurde oder ob die Eingabekomponente leer ist. Der Ausdruck liefert einen Booleschen Wert zurück:

<PROPERTY source="gadget" name="empty"/>

Liefert:

Eingabekomponente enthält einen Wert (set="1")

FALSE

Eingabekomponente enthält keinen Wert (set="0"). Es ist kein Vorgabewert vorgegeben.

TRUE

Eingabekomponente enthält keinen Wert (set="0"). Es ist ein Vorgabewert mit preset="default" vorgegeben.

FALSE

Eingabekomponente enthält keinen Wert. Es ist ein (persistenter) Vorgabewert mit preset="copy" vorgegeben (set="1").

FALSE

Eingabekomponente enthält einen Leerwert (set="1")

TRUE

  
Wichtig Soll geprüft werden, ob eine Eingabekomponente NULL liefert, kann dies über das Tag <NOT_NULL/> erfolgen.

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. Durch die umschließenden <ON_SAVE/>-Tags wird außerdem das Speichern des Formulars unterbunden.

...
<ON_RELEASE>
<IF>
<NOT>
<PROPERTY source="cs_picture" name="EMPTY"/>
</NOT>
</IF>
<WITH>
<NOT>
<PROPERTY source="cs_description" name="EMPTY"/>
</NOT>
</WITH>
<DO>
<VALIDATION>
<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>
</ON_RELEASE>
....

Hinweis: Eine solche Definition eignet sich nicht unbedingt für eine Bearbeitung mit InEdit. Siehe dazu Seite Anzeige von Regelverletzungen im ContentCreator.

Beispiel 2) Speichern eines Formulars mit leeren Eingabekomponenten unterbinden

Das nachfolgende Beispiel verhindert das Speichern eines Formulars, wenn nicht mindestens eine Eingabekomponente des Formulars mit Inhalt gefüllt wurde. Die Regel wird sprachabhängig ausgewertet. Dazu wird innerhalb der Vorbedingung zunächst sichergestellt, dass der Redakteur das Formular in der Projekt-Mastersprache bearbeitet. Diese Auswertung ist insbesondere bei sehr restriktiven Regeln wichtig, die wie in diesem Beispiel das Speichern eines Formulars verhindern. Der Regelentwickler sollte bedenken, dass nicht immer alle Sprachen für jeden Redakteur auch sichtbar oder editierbar sind:

...
<ON_SAVE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<PROPERTY source="#global" name="MASTER"/>
</EQUAL>
</IF>
<WITH>
<NOT>
<AND>
<PROPERTY source="st_headline" name="EMPTY"/>
<PROPERTY source="st_text" name="EMPTY"/>
<PROPERTY source="st_picture" name="EMPTY"/>
</AND>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="st_headline" name="VALID"/>
<MESSAGE lang="*" text="No content provided!"/>
<MESSAGE lang="DE" text="Es wurde kein Inhalt erfasst!"/>
</VALIDATION>
<VALIDATION>
<PROPERTY source="st_text" name="VALID"/>
<MESSAGE lang="*" text="No content provided!"/>
<MESSAGE lang="DE" text="Es wurde kein Inhalt erfasst!"/>
</VALIDATION>
<VALIDATION>
<PROPERTY source="st_picture" name="VALID"/>
<MESSAGE lang="*" text="No content provided!"/>
<MESSAGE lang="DE" text="Es wurde kein Inhalt erfasst!"/>
</VALIDATION>
</DO>
</ON_SAVE>
...

© 2005 - 2015 e-Spirit AG | Alle Rechte vorbehalten. | Letzte Änderung: 2015-02-19