Questions & Answers

SOLVED
markusbucher
I'm new here

Rules: EMPTY-Abfrage bei Checkbox

Jump to solution

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

1 Solution

Accepted Solutions

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

View solution in original post

0 Kudos
8 Replies
StefanSchulz
I'm new here

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

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>

air11.PNG

Was mache ich hier noch falsch?

Danke und GruรŸ

Markus

0 Kudos

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

0 Kudos

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

0 Kudos

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

0 Kudos

Hi,

wie mache ich ein ODER in den Rules? Ich kenne nur AND.

GruรŸ

Markus

0 Kudos

Mit OR Smiley Wink

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>

Type a product name