Charlotte_Koeni
I'm new here

alle Sprachversionen ausgeben (projekteinstellungen)

Hallo zusammen,

eine Frage zu den Variablen einer Projekteinstellungseite.

Ich würde gerne den Inhalt eines Textelements aus jedem Sprachreiter ausgeben Das Element heißt z.B. ps_country und ist ein einfaches Textelement. Wenn ich nun in einer anderen Seitenvorlage (nicht in den Projekteinstelltungen) diese Variable aufrufe, geht das ja ganz einfach mit: $CMS_VALUE(ps_country)$. Wie komme ich aber nun an die einzelnen Sprachversionen ran?

Versucht habe ich es schon mit

- $CMS_VALUE(#global.getSection().getData().get("ps_country").getEditor().get("DE"))$

- $CMS_VALUE(ps_country.getEditor().get("DE"))$

Hat beides leider nicht funktioniert. Deswegen wäre es toll, wenn jemand noch einen weiteren Tip für mich hätte!?

Gruß

Charlotte

0 Kudos
4 Replies
hoebbel
Crownpeak employee

Hallo Frau König,

funktioniert das hier vielleicht:

$CMS_SET(actualLanguage,#global.language)$

$CMS_FOR(lang, #global.project.languages)$

  $CMS_SET(#global.language,lang)$

  $CMS_VALUE(ps_country)$

$CMS_END_FOR$

$CMS_SET(#global.language,actualLanguage)$

Viele Grüsse aus Dortmund,

  Holger Höbbel

0 Kudos

Vielen Dank!

Das werde ich ausprobieren!

Gruß

charlotte

0 Kudos

Hallo Frau König,

das wird nicht funktionieren Smiley Sad

Neuer Ansatz:

Versuchen Sie mal das hier:

$CMS_FOR(lang, #global.project.languages)$

$CMS_VALUE(lang.abbreviation)$-$CMS_VALUE(#global.userService.getStore("globalstore",true).projectProperties.getData().get("ps_country").getEditor().get(lang))$<br>

$CMS_END_FOR$

Hinweis: userService.getStore("globalstore",true) ist deprecated.

Sobald ich etwas Zeit habe, versuche ich Ihnen hier noch einen Lösungsweg ohne deprecated Methoden zur Verfügung zu stellen.

Viele Grüsse aus Dortmund,

  Holger Höbbel

0 Kudos
hoebbel
Crownpeak employee

Nachtrag:

Mein ursprünglicher Lösungsansatz funktioniert übrigens nur, wenn der auszugebende Kontext bei der Änderung der Sprache noch nicht initialisiert wurden.

Wenn man also beispielsweise die Sprache auf der Seite vor der Ausgabe eines Absatzes ändert, dann klappt auch der ursprüngliche Ansatz.

Beispiel hierfür:

$CMS_SET(actualLanguage,#global.language)$

$CMS_FOR(body,#global.page.children)$

$CMS_FOR(section,body.children)$

$CMS_IF(#global.language != #global.project.masterLanguage && section.isInOutputIncluded(#global.language))$$CMS_VALUE(section)$$CMS_ELSE$

$CMS_SET(#global.language,#global.project.masterLanguage)$$CMS_VALUE(section)$$CMS_SET(#global.language,actualLanguage)$$CMS_END_IF$

$CMS_END_FOR$

$CMS_END_FOR$

Absätze sollen also in der Mastersprache ausgegeben werden, wenn der Haken "diesen Absatz in der Ausgabe generieren" deaktiviert wurde.

0 Kudos