- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Rules: EMPTY-Abfrage bei Checkbox
Hallo,
ich bilde eine Regel ab:
Formular:
<CMS_MODULE>
<CMS_INPUT_TOGGLE name="st_enable" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Enable Element in this language"/>
</LANGINFOS>
</CMS_INPUT_TOGGLE>
<CMS_GROUP name="st_content">
<CMS_INPUT_TEXT name="st_text">
<LANGINFOS>
<LANGINFO lang="*" label="Text, mandatory"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
</CMS_GROUP>
</CMS_MODULE>
Regel:
<RULES>
<ON_EVENT>
<WITH>
<NOT>
<PROPERTY name="EMPTY" source="st_enable"/>
</NOT>
</WITH>
<DO>
<PROPERTY name="VISIBLE" source="#form.st_content"/>
</DO>
</ON_EVENT>
<ON_SAVE>
<IF>
<AND>
<NOT>
<PROPERTY name="EMPTY" source="st_enable"/>
</NOT>
</AND>
</IF>
<WITH>
<AND>
<NOT>
<PROPERTY name="EMPTY" source="st_text"/>
</NOT>
</AND>
</WITH>
<DO>
<VALIDATION>
<PROPERTY name="VALID" source="st_text"/>
<MESSAGE lang="*" text="The editor must not be empty!"/>
<MESSAGE lang="DE" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</ON_SAVE>
</RULES>
Sobald ich aber den Wert der Checkbox einmal gesetzt habe reagiert sie nicht mehr auf das unchecken, die Regel aktualisiert sich nicht und die CMS_GROUP bleibt sichtbar. Was mache ich falsch?
Danke euch,
Markus
- Labels:
-
Developers
-
Knowledgebase
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich glaube doch. Aber die Werteermittlung ist verkehrt. Du benötigst wohl ein not(st_enable) or not(st_text.empty).
Beste Grüße
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Markus,
das Problem ist die Werteermittlung für den Sichtbarkeitszustand. Das Toggle ist nur einmal EMPTY, und zwar zu Anfang dessen Lebenszeit, wenn noch kein Wert ausgewählt ist. Hier wird die Abfrage des VALUE des Toggle benötigt. Allerdings wird der Leerwert nicht als "falsch" ausgewertet, deshalb muss eine Kombination her:
<RULES>
<ON_EVENT>
<WITH>
<AND>
<NOT>
<PROPERTY name="EMPTY" source="st_enable"/>
</NOT>
<PROPERTY name="VALUE" source="st_enable"/>
</AND>
</WITH>
<DO>
<PROPERTY name="VISIBLE" source="#form.st_content"/>
</DO>
</ON_EVENT>
</RULES>
Beste Grüße
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Servus Stefan,
danke für deine Antwort. Das löst das Sichtbar/Verstecken-Problem. Leider ist damit die Validierung noch nicht erfüllt:
<RULES>
<ON_EVENT>
<WITH>
<AND>
<NOT>
<PROPERTY name="EMPTY" source="st_enable"/>
</NOT>
<PROPERTY name="VALUE" source="st_enable"/>
</AND>
</WITH>
<DO>
<PROPERTY name="VISIBLE" source="#form.st_content"/>
</DO>
</ON_EVENT>
<ON_SAVE>
<IF>
<AND>
<NOT>
<PROPERTY name="EMPTY" source="st_enable"/>
</NOT>
<PROPERTY name="VALUE" source="st_enable"/>
</AND>
</IF>
<WITH>
<AND>
<PROPERTY name="VALUE" source="st_enable"/>
<NOT>
<PROPERTY name="EMPTY" source="st_text"/>
</NOT>
</AND>
</WITH>
<DO>
<VALIDATION>
<PROPERTY name="VALID" source="st_text"/>
<MESSAGE lang="*" text="The editor must not be empty!"/>
<MESSAGE lang="DE" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</ON_SAVE>
</RULES>
Was mache ich hier noch falsch?
Danke und Gruß
Markus
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Validierung wird laut den Regeln nur ausgeführt, wenn der IF-Teil erfüllt ist. Das verhält sich wie ein IF in allen üblichen Programmiersprachen. Statt des IF-Teils muss die Bedingung für deinen Fall in die Werte-Ermittlung (WITH-Teil) eingehen.
Beste Grüße
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Leider ändert das nichts daran, dass das unchecken die Validierung nicht neu anstößt.Auch wenn ich die Ausblendelogik rausnehme wird der Status beim Unchecken nicht aktualisiert, das Element ist nicht speicherbar.
Gruß
Markus
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich glaube doch. Aber die Werteermittlung ist verkehrt. Du benötigst wohl ein not(st_enable) or not(st_text.empty).
Beste Grüße
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
wie mache ich ein ODER in den Rules? Ich kenne nur AND.
Gruß
Markus
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mit OR
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das war jetzt peinlich. Danke
Es funktioniert! Vielen Dank an alle.
LG
Markus
<RULES>
<ON_EVENT>
<WITH>
<AND>
<NOT>
<PROPERTY name="EMPTY" source="st_enable"/>
</NOT>
<PROPERTY name="VALUE" source="st_enable"/>
</AND>
</WITH>
<DO>
<PROPERTY name="VISIBLE" source="#form.st_content"/>
<PROPERTY name="VISIBLE" source="st_text"/>
</DO>
</ON_EVENT>
<ON_SAVE>
<IF>
<AND>
<NOT>
<PROPERTY name="EMPTY" source="st_enable"/>
</NOT>
</AND>
</IF>
<WITH>
<OR>
<NOT>
<PROPERTY name="VALUE" source="st_enable"/>
</NOT>
<PROPERTY name="VALUE" source="st_text"/>
</OR>
</WITH>
<DO>
<VALIDATION>
<PROPERTY name="VALID" source="st_text"/>
<MESSAGE lang="*" text="The editor must not be empty!"/>
<MESSAGE lang="DE" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</ON_SAVE>
</RULES>

