Sprach-Fallback in Datenquellen
Author: a_dada
Publication Date: 4/7/2011 8:46
Hallo,
ich habe in meinem Projekt folgende Konstellation:
DATENQUELLE:
headline_DE (String 512)
headline_EN (String 512)
body_DE (FirstSpirit XML)
body_EN (FirstSpirit XML)
FORMULAR:
<CMS_INPUT_TEXT name="cs_headline" hFill="yes" maxInputLength="512" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Headline" description="The title of the content entry."/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_DOM name="cs_body" bold="yes" hFill="yes" italic="yes" rows="10" table="no" useLanguages="yes">
<FORMATS>
<TEMPLATE name="Standard"/>
</FORMATS>
<LANGINFOS>
<LANGINFO lang="*" label="Text" description="The text of the content entry."/>
</LANGINFOS>
</CMS_INPUT_DOM>
HTML-KANAL:
<h1>$CMS_VALUE(#row.headline, default:#row.headline_EN)$</h1>
$CMS_VALUE(#row.body, default:#row.body_EN)$
Damit möchte ich erreichen, dass z.B: beim Generieren des DE-Sprachkanals auf EN zugegriffen wird, sollte noch keine Übersetzung vorliegen (Mastersprache EN).
Das funktioniert mit der Headline wunderbar, jedoch nicht mit dem body. Es scheint so, dass man nicht auf den Inhalt eines anders-sprachigen DOM-Elements zugreifen kann. Auch so Dinge "getValue("body_EN").get().get(lang)" und ähnliches haben nicht zum Erfolg geführt, sie liefern zwar Objekte zurück (de.espirit.firstspirit.client.editorcomponent.EditorWrapper oder de.espirit.firstspirit.access.editor.value.DomElementImpl), allerdings ist da kein Content drin.
Danke schonmal im vorraus für euer Feedback,
Andreas Dada
-
Author: hoebbel - 4/7/2011 10:05
Hallo Herr Dada,
funktioniert folgendes?
$CMS_SET(actualLanguage,#global.language)$
$CMS_IF(#global.language != #global.project.masterLanguage && !cs_body.isEmpty)$$CMS_VALUE(cs_body)$$CMS_ELSE$$CMS_SET(#global.language,#global.project.masterLanguage)$$CMS_VALUE(cs_body)$$CMS_SET(#global.language,actualLanguage)$$CMS_END_IF$
Also die Generierungssprache gegebenenfalls vor der Ausgabe des CMS_INPUT_DOMs auf die gewünschte Sprache (im Beispiel die Mastersprache) wechseln und dann ausgeben. Den Wechsel zurück auf die aktuelle Sprache nicht vergessen :smileywink:
Viele Grüsse aus Dortmund,
Holger Höbbel
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
1 Kommentar