ampersand83
I'm new here

Frage zu sprachabhängiger Validierung in FS 5

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

0 Kudos
19 Replies

Ja, aber dann müsste ich doch mit der obene genannten Regel alles validieren können.

Leider geht das ja nicht.

Nochmal. Ich will ein Pflichtfeld nur dann im englischen Sprachkanal als Pflichtfeld haben, wenn die Seite auch als übersetzt gekennzeichnet ist.

Mit der obigen Regel bekomme ich zwar optisch keinen Fehler angezeigt aber besagte Fehlermeldung, wenn ich das Formular speichern will.

Daher meine Vermutung, dass da evtl. noch ein Bug drin ist.

0 Kudos

Dann wende dich doch bitte mit der Repro und der Angabe der eingesetzten FS-Version an den Helpdesk.

Vielen Dank!

Peter
0 Kudos
ampersand83
I'm new here

Die sprachabhängige Validierung klappt auf Seiten- und Absatzebene schon sehr gut, aber wie kann ich das ganze auf Datenquellen Ebene machen?

Gibt es eine Möglichkeit zu erkennen, ob ich mich z.B. bei der Pflege einer Datenquelle im englischen Sprachkanal befinde?

Ich möchte konkret nur dann im englischen Sprachkanal eine Pflichtfeldüberprüfung, wenn ich diesen auch gerade aktiv ausgewählt habe. Ist das auf irgendeine Weise möglich das zu erkennen?

Meine Alternativlösung, auch wenn sie mir nicht so gut gefällt, wäre es ansonsten im englischen Kanal zusätzlich zu Prüfen, ob ein Nutzer in einem bestimmten Feld schon Eingaben gemacht hat und davon abhängig die Validierung in den anderen Pflichtfeldern zu aktivieren. Da die ganze Validierung hier aber von einer Eingabe in einem bestimmten Feld abhängt, finde ich das ganze aber nicht wirklich optimal.

Wobei mir gerade noch ein anderes Problem einfällt. Wir verwenden in manchen Tabellenvorlagen eine FS_LIST, in der normale Absatzvorlagen eingebunden werden können. Diese Absatzvorlagen prüfen in den Regeln, aber wie in den Posts weiter oben gezeigt nach dem Translated Flag, welches ja auf Ebene von Datenquellen nicht gibt.

Kann mir jemand sagen, ob es hierfür eine bessere Lösung gibt?

Schon mal vielen Dank.

Gruß,

Stefan

0 Kudos

Das Thema ist zwar schon 1 Jahr alt, aber trotzdem besteht das Problem weiterhin.

Hat jemand inzwischen eine Lösung dafür gefunden?

0 Kudos

Bin mir nicht sicher, ob ich die Fragestellung überhaupt richtig verstehe.

Geht es hier um den Zugriff auf die Kanalsprache? Die sollte in Datensätzen genauso zur Verfügung stehen, wie auf Absätzen und Seiten.

Oder geht es um das Translated-Flag? Das geht leider nur über eine selbst definierte Spalte in der Tabelle und entsprechender Eingabekomponente, da die Daten ja mit den anderen in der Datenbank gespeichert werden müssen.

Oder geht es um etwas anderes?

Grüße

Stefan

0 Kudos

Meine Frage bezog sich jetzt noch auf normale Forumulare ohne Datenbank.

Eine Validierung soll sprachabhängig nur im aktiven Reiter gemacht werden ( beim speichern).

Stefan hat zwar geschrieben, dass es auf Seiten- und Absatzvorlagen gut funktioniert, aber leider nicht wie.

0 Kudos

Die Validierung kann nicht in nur einer Sprache erfolgen. Damit würde man potentiell invalide Daten speichern und einen defekten Stand erstellen. Ist der Dateninhalt beim Speichern nicht wichtig und nur für die Freigabe relevant, sollte man entsprechend andere Regeln einsetzen.

Wenn ich das richtig sehe, ist in obige Lösung das Translated-Flag in der Regel eingebaut. Somit werden nur die Regeln Fehler melden, für deren Sprache der Haken in der Seite gesetzt ist. Eine andere Möglichkeit ist mir nicht bekannt.

Beste Grüße

Stefan

0 Kudos

Das Problem ist folgendes:

Es gibt ca. 57 Sprachen im Masterprojekt. Wenn dort beispielsweise ein Redakteur aus Spanien einen Artikel verfassen will und das auch nur für sein Land braucht, soll es möglich sein das zu speichern, auch wenn alle anderen Sprachen leer sind.

Allerdings müssen die Felder bei Spanien dann validiert werden (also der Reiter aktiv ist). Das ganze soll natürlich funktionieren ohne das ich für jedes Land und Feld extra eine Regel erstellen muss.

Sprachabhängige Validierung beschreibt es eigentlich ganz gut.

0 Kudos

Du kannst in den Regeln die Eigenschaft "übersetzt" für die aktuelle Sprache abfragen. Damit kannst du modellieren, das nur übersetzte Inhalte valide sein müssen.

[EDIT]

Hm, genau das hat Stefan weiter oben schon vorgeschlagen. Wieso hilft das für deinen Fall nicht?

Peter
0 Kudos

vielleicht nochmal abschließend:

TRANSLATED funktioniert nicht für Datensätze.

INCLUDED hingegen schon. In den Regeln kann man dann auf den Store abfragen und abhängig davon TRANSLATED und INCLUDED abfragen oder eben nur INCLUDED.

Heißt leider auch, dass man zwei Abfragebäume oder ggfs. zwei Regeln benötigt. Grob skizziert:

WITH

     OR

          AND

               <gewünschte Abfrage>

               PROPERTY name="INCLUDED" source="#global"

               EQUAL

                    PROPERTY name="STORETYPE" source="#global"

                    <TEXT>pagestore</TEXT>

               EQUAL

               PROPERTY name="TRANSLATED" source="#global"

          /AND

          AND

               <gewünschte Abfrage>

               PROPERTY name="INCLUDED" source="#global"

               NOT

                    EQUAL

                         PROPERTY name="STORETYPE" source="#global"

                         <TEXT>pagestore</TEXT>

                    EQUAL

               /NOT

          /AND

/WITH

0 Kudos