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

Eigenschaft EDITABLE

Eingabekomponenten zum Bearbeiten sperren bzw. entsperren

Eine Eingabekomponente kann die Fähigkeit haben, Werte zu bearbeiten und persistent zu speichern. Der Ausdruck <PROPERTY source="gadget" name="EDITABLE"/> kann in den Bereichen Vorbedingung, Wertermittlung und Handlungsanweisung der Regeldefinition eingesetzt werden und erlaubt (z. B. im Bereich Wertermittlung) das Bearbeiten einer Eingabekomponente im Formular (abhängig von einer bestimmten Bedingung).

Mithilfe des Attributs EDITABLE kann beispielsweise eine Regel definiert werden, die das Bearbeiten einer Eingabekomponente, abhängig von der Redaktionssprache oder vom Verwaltungstyp, in der das Formular geöffnet wird, ermöglicht.

Beispiele

Beispiel 1) Bearbeiten abhängig vom Wert einer anderen Eingabekomponente

In einem Formular gibt es eine Eingabekomponente „st_picture“ und eine Eingabekomponente „st_description“. Über ein dynamisches Formular soll sichergestellt werden, dass die Eingabekomponente „st_description“ nur bearbeitet werden kann, wenn die Eingabekomponente „st_picture“ nicht leer ist.

Innerhalb des <WITH/>-Abschnitts wird zunächst über ein <PROPERTY/>-Tag geprüft, ob die Eingabekomponente „st_picture“ nicht leer ist. Das Ergebnis dieser Prüfung ist ein Boolescher Wert, der anschließend im <DO/>-Abschnitt mit einer Handlungsanweisung verknüpft wird. Ist die Bedingung erfüllt (Wertermittlung liefert TRUE), wird die Eingabekomponente „st_description“ über ein weiteres <PROPERTY/>-Tag auf „editierbar“ gesetzt. Ist die Bedingung nicht erfüllt („st_picture“ ist leer und die Wertermittlung liefert FALSE), ist die Eingabekomponente „st_description“ im Formular nicht editierbar.

<RULES>
<RULE>
<WITH>
<NOT>
<PROPERTY source="st_picture" name="EMPTY"/>
</NOT>
</WITH>
<DO>
<PROPERTY source="st_description" name="EDITABLE"/>
</DO>
</RULE>
</RULES>

Beispiel 2) Manuelle Bearbeitung der Eingabekomponente unterbinden (Wert per Skript setzen)

In einem Formular gibt es eine Eingabekomponente „rules_text“. Über ein dynamisches Formular soll sichergestellt werden, dass die Eingabekomponente „rules_text“ nicht manuell durch den Redakteur editierbar ist.

Innerhalb des <WITH/>-Abschnitts wird die Eingabekomponente über die Konstante <FALSE/> zunächst dauerhaft gegen eine Bearbeitung gesperrt.

<RULES>
<RULE>
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY name="EDITABLE" source="rules_text"/>
</DO>
</RULE>
</RULES>

Statt einer manuellen Bearbeitung soll hier der Wert der Eingabekomponente über ein Skript gesetzt werden. Dazu ist im Formular eine weitere Eingabekomponente „rules_button“ vom Typ FS_BUTTON hinterlegt. Bei einem Klick auf „rules_button“ wird das Beanshell-Skript „set_value“ ausgeführt, das automatisch einen Wert in die Eingabekomponente „st_text“ schreibt.

Formular:

...
<FS_BUTTON name="rules_button" noBreak="yes" onClick="script:set_value">
<LANGINFOS>
<LANGINFO lang="*" label="Set"/>
</LANGINFOS>
<PARAMS>
<PARAM name="target">#field.rules_text</PARAM>
</PARAMS>
</FS_BUTTON>

<CMS_INPUT_TEXT name="rules_text">
<LANGINFOS>
<LANGINFO lang="*" label="rules"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
...

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.4 | Datenschutz