Search the FirstSpirit Knowledge Base
Hallo zusammen
Ich muss ein "CMS_INPUT_TOGGLE" per Regel auswerten und das Feld "st_initiativeApplicationUrl" zum Pflichtfeld machen wenn TRUE. Wie mach ich sowas?
<CMS_INPUT_TOGGLE
name="st_showInitiativeApplication"
allowEmpty="yes"
hFill="yes"
preset="copy"
singleLine="no"
useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Show initiative application"/>
<LANGINFO lang="DE" label="Initiativbewerbungslink anzeigen"/>
</LANGINFOS>
</CMS_INPUT_TOGGLE>
Mein Versuch derRegel:
<ON_EVENT>
<IF>
<PROPERTY name="VALUE" source="st_showInitiativeApplication"/>
</IF>
<DO>
<NOT>
<VALIDATION scope="SAVE">
<PROPERTY name="VALID" source="st_initiativeApplicationUrl"/>
<MESSAGE lang="*" text="Please enter the Initiavie Application URL"/>
<MESSAGE lang="DE" text="Bitte geben Sie die Initiativbewerbungs URL ein!"/>
</VALIDATION>
</NOT>
</DO>
</ON_EVENT>
Hallo Thomas,
um ein Feld zum Pflichtfeld machen zu können, musst Du auch prüfen, ob es leer ist und nur dann die Regel aktiv werden lassen. Außerdem muss im WITH definiert werden, wann die Regel aktiv ist.
Schließlich ist es keine gute Idee mit einem IF etwas zu prüfen, das der Redakteur beeinflussen kann. Das bedeutet nämlich, dass die Regel nur ausgeführt wird, wenn der IF Teil zutrifft. Klingt auf den ersten Blick so, als würde man das haben wollen. In der Praxis stellt man dann aber schnell fest, dass das nicht der Fall ist, da eine Pflichtfeldregel beispielsweise auch ausgeführt werden muss, um den Fehlerstatus wieder los zu werden.
Langer Rede, kurz Sinn: Einfach im WITH prüfen, ob der TOGGLE gesetzt ist und das entsprechende Pflichtfeld leer ist. Wenn nicht, dann den Fehlertext anzeigen. Nun noch berücksichtigen, dass die Logik für das WITH "anders" herum ist.
Dann kommt als Regel beispielsweise so etwas heraus:
<RULE>
<WITH>
<OR>
<NOT>
<PROPERTY name="VALUE" source="st_showInitiativeApplication"/>
</NOT>
<NOT>
<PROPERTY name="EMPTY" source="st_initiativeApplicationUrl"/>
</NOT>
</OR>
</WITH>
<DO>
<VALIDATION>
<PROPERTY name="VALID" source="st_initiativeApplicationUrl"/>
<MESSAGE lang="*" text="Please enter the Initiavie Application URL"/>
<MESSAGE lang="DE" text="Bitte geben Sie die Initiativbewerbungs URL ein!"/>
</VALIDATION>
</DO>
</RULE>
Viele Grüße,
Holger
Hallo Thomas,
um ein Feld zum Pflichtfeld machen zu können, musst Du auch prüfen, ob es leer ist und nur dann die Regel aktiv werden lassen. Außerdem muss im WITH definiert werden, wann die Regel aktiv ist.
Schließlich ist es keine gute Idee mit einem IF etwas zu prüfen, das der Redakteur beeinflussen kann. Das bedeutet nämlich, dass die Regel nur ausgeführt wird, wenn der IF Teil zutrifft. Klingt auf den ersten Blick so, als würde man das haben wollen. In der Praxis stellt man dann aber schnell fest, dass das nicht der Fall ist, da eine Pflichtfeldregel beispielsweise auch ausgeführt werden muss, um den Fehlerstatus wieder los zu werden.
Langer Rede, kurz Sinn: Einfach im WITH prüfen, ob der TOGGLE gesetzt ist und das entsprechende Pflichtfeld leer ist. Wenn nicht, dann den Fehlertext anzeigen. Nun noch berücksichtigen, dass die Logik für das WITH "anders" herum ist.
Dann kommt als Regel beispielsweise so etwas heraus:
<RULE>
<WITH>
<OR>
<NOT>
<PROPERTY name="VALUE" source="st_showInitiativeApplication"/>
</NOT>
<NOT>
<PROPERTY name="EMPTY" source="st_initiativeApplicationUrl"/>
</NOT>
</OR>
</WITH>
<DO>
<VALIDATION>
<PROPERTY name="VALID" source="st_initiativeApplicationUrl"/>
<MESSAGE lang="*" text="Please enter the Initiavie Application URL"/>
<MESSAGE lang="DE" text="Bitte geben Sie die Initiativbewerbungs URL ein!"/>
</VALIDATION>
</DO>
</RULE>
Viele Grüße,
Holger
UPS - bei der VALIDATION fehlt natürlich der SCOPE="save": <VALIDATION scope="save">