kprein
I'm new here

Zugriff auf Formularwerte in einer anderen Sprache

Jump to solution

Hallo zusammen,

es gibt aktuell einen Fall bei meinem Projekt, wo in einer Absatzvorlag folgende Kriterien erfüllt sein sollen:

  • Eine FS_REFERENCE Komponente soll mehrsprachich gepflegt werden.
  • Für die Mastersprache muss beim Erstellen eine Referenz eingepflegt werden.
  • Ist der Wert für die Komponente bei den anderen Projektsprachen leer/nicht gesetzt, dann soll der Wert der Mastersprache genutzt werden.
  • Im Umkehrschluss soll dann natürlich der Wert für jede Sprache genutzt werden, die eingepflegt wurde.
  • Es kann kein default-Wert für die Absatzvorlage gepflegt werden, da er ja abhängig von dem Wert in der Mastersprache wäre.

Denkbare Möglichkeiten wären gewesen das Verhalten über Rules zu pflegen oder in der Ausgabe die Mastersprache explizit zu rendern, wenn die Aufgerufene nicht gepflegt wurde. In allen Fällen lässt sich jedoch keine Wertausgabe für eine bestimmte Sprache vornehmen. Der einzige Kontext, in dem man einen FS Inhalt mit Sprache ausdrücklich anfragen könnte (abgesehen von einer Datenbanktabelle) wäre mit $CMS_REF(#global.node, lang:"SOME_LANG")$ . Damit bekommt man natürlich nur eine Referenz.

Hat da jemand eine Idee, wie man das umsetzen würde?

0 Kudos
1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Kevin,

wenn es nur um die Ausgabe geht sollte es funktionieren wenn Du über das FormData gehst, in etwa so:

$CMS_SET(set_picture,st_picture)$

$CMS_IF(st_picture.isEmpty)$

     $CMS_SET(set_picture, #global.section.formData.get(#global.project.masterLanguage,"st_picture").get())$

$CMS_END_IF$

<img src="$CMS_REF(set_picture)$" />

Das funktioniert allerdings nicht auf "inneren" Absätzen, da müsstest Du dann noch an das richtige FormData kommen.

Alternativer Vorschlag - auch für den Redakteur wahrscheinlich klarer ersichtlich:

Zwei FS_REFERENCEs. Eins sprachunabhängig (=Pflege in Mastersprache, ist also der "Fallback"), eins sprachabhängig.

Das sprachabhängige per Regel in der Mastersprache ausblenden, das sprachunabhängige per Regel in allen anderen Sprachen auf readonly setzen.

Du kannst dann mit einer weiteren Regel z.B. das sprachunabhängige (=aus der Mastersprache) in den anderen Sprachen nur anzeigen, wenn das sprachabhängige leer ist oder auch den Redakteuer per Toggle zwischen "Bild aus Master nutzen" und "Eigenes Bild für diese Sprache" wählen lassen.

Vorteil wäre letztlich, dass der Redakteur schon im Formular sieht, welches Bild tatsächlich benutzt wird.

Viele Grüße

Michael

View solution in original post

2 Replies
mbergmann
Crownpeak employee

Hallo Kevin,

wenn es nur um die Ausgabe geht sollte es funktionieren wenn Du über das FormData gehst, in etwa so:

$CMS_SET(set_picture,st_picture)$

$CMS_IF(st_picture.isEmpty)$

     $CMS_SET(set_picture, #global.section.formData.get(#global.project.masterLanguage,"st_picture").get())$

$CMS_END_IF$

<img src="$CMS_REF(set_picture)$" />

Das funktioniert allerdings nicht auf "inneren" Absätzen, da müsstest Du dann noch an das richtige FormData kommen.

Alternativer Vorschlag - auch für den Redakteur wahrscheinlich klarer ersichtlich:

Zwei FS_REFERENCEs. Eins sprachunabhängig (=Pflege in Mastersprache, ist also der "Fallback"), eins sprachabhängig.

Das sprachabhängige per Regel in der Mastersprache ausblenden, das sprachunabhängige per Regel in allen anderen Sprachen auf readonly setzen.

Du kannst dann mit einer weiteren Regel z.B. das sprachunabhängige (=aus der Mastersprache) in den anderen Sprachen nur anzeigen, wenn das sprachabhängige leer ist oder auch den Redakteuer per Toggle zwischen "Bild aus Master nutzen" und "Eigenes Bild für diese Sprache" wählen lassen.

Vorteil wäre letztlich, dass der Redakteur schon im Formular sieht, welches Bild tatsächlich benutzt wird.

Viele Grüße

Michael

Vielen Dank für die Antwort. Wahrscheinlich macht die zweite Umsetzung mehr Sinn. Das lässt sich mit Tabs noch visuell übersichtlich gestalten.

0 Kudos