Search the FirstSpirit Knowledge Base
Hallo zusammen,
gehe ich recht in der Annahme, dass ich es mit dem Validierungs in FS 5 nicht hinbekommen kann, dass z.B. eine Pflichtfedprüfung das speichern nur in der gerade aktiven Sprache verhindert? Sprich eine Überschrift soll sowohl im deutschen als auch im englischen Sprachkanal ein Pflichtfeld sein. Da aber nicht immer der englische Sprachkanal auch genutzt wird, soll sich das Formular abspeichern lassen, wenn ich nur das deutsche Pflichtfeld ausgefüllt habe.
Wenn ich dann aber in den englischen Kanal wechsle will ich natürlich die Prüfung auch für den englischen Kanal haben. Es soll dann verhindert werden, dass ich das Formular mit leerem Pflichtfeld in diesem Kanal abspeichern kann. Diese Prüfung darf aber nur erfolgen, wenn ich mich auch in diesem Kanal befinde.
Ich bekomme das aber nicht hin. Folgendes habe ich versucht:
<RULES>
<ON_SAVE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<TEXT>DE</TEXT>
</EQUAL>
</IF>
<WITH>
<NOT>
<PROPERTY source="pt_title" name="EMPTY"/>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="pt_title" name="VALID"/>
<MESSAGE lang="*" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</ON_SAVE>
<ON_SAVE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<TEXT>EN</TEXT>
</EQUAL>
</IF>
<WITH>
<NOT>
<PROPERTY source="pt_title" name="EMPTY"/>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="pt_title" name="VALID"/>
<MESSAGE lang="*" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</ON_SAVE>
</RULES>
Auf diese Weise werden aber einfach wieder beide Sprachkanäle geprüft. Ich hatte gemäß der Doku ja eigentlich erwartet, dass die zweite Regel nur greift, wenn ich mich auch aktiv im englischen Sprachkanal befinde. Das ist aber anscheinend ein Trugschluß.
Kann mir hier jemand weiterhelfen. Es wäre für unsere Projekt sehr wichtig das hinzubekommen.
Gruß,
Stefan
Man kann innerhalb der Regeln auf das "Übersetzt"-Flag des Absatzes zugreifen. Einfach mal etwas im Beispielprojekt stöbern...
Ist das mit der aktiven Sprache wirklich sinnvoll? Als Redakteur kann ich ja einfach zwischen Sprachreitern wechseln, ohne zu speichern.
Folgende Überlegungen könnten weiterhelfen:
1) Man nutzt den "Seite ist für diese Sprache vollständig übersetzt" Haken.
2) Felder sind nur Pflichtfelder, wenn mindestens ein Feld für diese Sprache gefüllt ist
3) Man alle Sprachen erst ON_RELEASE und nicht bereits beim Speichern.
Das Translated Property hatte ich gerade in diesem Moment selber gefunden. 🙂
Damit werde ich glaube ich glücklich. Aber auch vielen Dank für die Hinweise.
Bin jetzt noch auf ein Problem gestoßen. Wie könnte ich das ganze bei den Projekteinstellungen machen? Hier gibt es ja nicht den Translated Haken.
Projekteinstellungen sind immer sprachunabhängig.
Wir haben jetzt noch ein Problem festgestellt. Bei Seitenvorlagen ist standardmäßig der zweite Sprachkanal (hier Englisch) als nicht übersetzt gekennzeichnet, bei Absatzvorlagen allerdings nicht. Hier ist standardmäßig die Vorlage als Übersetzt gekennzeichnet. Die Abfrage in den Validierungsregeln auf das Attribut translated klappt daher an dieser Stelle nicht.
Gibt es für dieses Verhalten einen Grund und kann ich evtl. konfigurieren, ob eine Absatzvorlage direkt nach dem einbinden in eine Seite automatisch als übersetzt gekennzeichnet wird oder nicht?
Über Hinweise und Tipps wäre ich sehr dankbar.
Weiß hierzu wirklich niemand etwas. Bin langsam ein wenig am verzweifeln.
Es scheint das #global.translated nicht nur auf Seitenebene, sondern auch auf Absatzebene prüft und da die standardmäßig immer als übersetzt gekennzeichnet sind, tritt wohl auch der Fehler auf.
Hier noch eine der angewandten Regeln:
<ON_SAVE>
<IF>
<OR>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<TEXT>DE</TEXT>
</EQUAL>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<TEXT>EN</TEXT>
</EQUAL>
</OR>
</IF>
<WITH>
<NOT>
<AND>
<PROPERTY source="st_headline" name="EMPTY"/>
<PROPERTY source="#global" name="TRANSLATED"/>
</AND>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="st_headline" name="VALID"/>
<MESSAGE lang="*" text="Der Editor darf nicht leer sein!"/>
</VALIDATION>
</DO>
</ON_SAVE>
Meines Erachtens nach sollte es doch so gehen das Feld nur in deutscher Sprache abspeichern zu müssen und im englischen Kanal nichts auszufüllen. Leider geht es aber nicht.
Es erscheint ein Popup mit der Meldung "Das Formular kann nicht gespeichert werden, da noch fehlerhafte Eingaben vorliegen. Bitte korrigieren Sie diese Fehler." Optisch als Fehler wird das ganze aber nicht gekennzeichnet. Kann hier vielleicht noch ein Bug bei der Validierung vorliegen?
Die Eigenschaft "übersetzt" bezieht sich immer auf die gesamte Seite inklusive aller Absätze. Auf Absatzebene kann man alternativ die Eigenschaft "soll für eine Sprache in der Ausgabe erscheinen" (INCLUDED) benutzen.