Startseite
Startseite

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 im Bereich Handlungsanweisung der Regeldefinition eingesetzt werden und erlaubt 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>
<ON_EVENT>
<WITH>
<NOT><PROPERTY source='st_picture' name='EMPTY'/></NOT>
</WITH>
<DO>
<PROPERTY source='st_description' name='EDITABLE'/>
</DO>
</ON_EVENT>
</RULES>

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

Beispiel 2) Bearbeiten abhängig von der Zugehörigkeit des Redakteurs zu einer Redaktionsgruppe

In einem Formular gibt es einen Bereich (CMS_GROUP) mit mehreren Eingabekomponenten. Über ein dynamisches Formular soll sichergestellt werden, dass dieser Bereich nur für Redakteure editierbar ist, die Mitglied der Redaktionsgruppe „editors“ sind.

Innerhalb des <WITH/>-Abschnitts wird zunächst die Gruppenzugehörigkeit des Redakteurs über das Tag <IN_GROUP/> ermittelt und mit dem Namen der dort definierten Gruppe verglichen. Das Ergebnis dieser Prüfung ist ein Boolescher Wert, der anschließend im <DO/>-Abschnitt mit einer Handlungsanweisung verknüpft wird. Solange die Bedingung („Redakteur ist Mitglied der Gruppe editors“) erfüllt ist, ist der Formularbereich „group_editors“ editierbar.

<RULES>
<ON_EVENT>
<WITH>
<IN_GROUP name="editors"/>
</WITH>
<DO>
<PROPERTY source='#form.group_editors' name='EDITABLE'/>
</DO>
</ON_EVENT>
</RULES>

Beispiel 3) 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>
<ON_EVENT>
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY name="EDITABLE" source="rules_text"/>
</DO>
</ON_EVENT>
</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 - 2015 e-Spirit AG | Alle Rechte vorbehalten. | Letzte Änderung: 2015-02-19