Hallo nochmal,
da mir niemand erklären konnte, warum die o.g. Konstruktion Fehler wirft, obwohl das m.E. so in der Doku steht, habe ich jetzt doch alles umgebaut. Ich stelle hier nochmal die ursprüngliche Version der endgültigen gegenüber, mit der nach langer Rumprobiererei endlich keine Fehler mehr auf der Console ausgegeben werden.
Ursprünglich:
- <RULE>
- <WITH>
- <NOT>
- <AND>
- <PROPERTY name="VISIBLE" source="st_videoUrl"/>
- <PROPERTY name="TRANSLATED" source="#global"/>
- <PROPERTY name="EMPTY" source="st_videoUrl"/>
- </AND>
- </NOT>
- </WITH>
- <DO>
- <VALIDATION scope="SAVE">
- <PROPERTY name="VALID" source="st_videoUrl"/>
- <MESSAGE lang="*" text="Please enter a video url!"/>
- <MESSAGE lang="DE" text="Bitte geben Sie eine URL zum Video an!"/>
- </VALIDATION>
- </DO>
- </RULE>
Da die Eigenschaft VISIBLE aber im WITH zu den Fehlern geführt hat (die Regel wurde korrekt ausgeführt, hat aber ständig Fehler geschmissen), habe ich dort den TOGGLE Schalter st_mediaType abgefragt, nämlich über <PROPERTY name="VALUE" source="st_mediaType"/>. Da dies wiederum zwar eine Boolean Abfrage ist, aber offenbar im ausgeschalteten Zustand auch null annehmen kann, musste ich noch eine zusätzliche Vorbedingung einbauen, ob das Feld überhaupt einen Wert enhält. Den Übersetzungsstatus der Seite habe ich auch in die Vorbedingung verlagert, da es im WITH auch zu Fehlermeldungen kam. So sieht es jetzt aus:
<RULE>
<IF>
<AND>
<PROPERTY name="TRANSLATED" source="#global"/>
<NOT>
<PROPERTY name="EMPTY" source="st_mediaType"/>
</NOT>
</AND>
</IF>
<WITH>
<NOT>
<AND>
<NOT>
<PROPERTY name="VALUE" source="st_mediaType"/>
</NOT>
<PROPERTY name="EMPTY" source="st_videoURL"/>
</AND>
</NOT>
</WITH>
<DO>
<VALIDATION scope="SAVE">
<PROPERTY name="VALID" source="st_videoURL"/>
<MESSAGE lang="*" text="Please enter a video url!"/>
<MESSAGE lang="DE" text="Bitte geben Sie eine URL zum Video an!"/>
</VALIDATION>
</DO>
</RULE>
Diese Konstruktion sieht zwar unübersichtlicher aus, schreibt mir aber (bislang) nicht das ganze Serverlog voll.
Grüße
Matthias