Search the FirstSpirit Knowledge Base
Hallo,
ich möchte über eine Contentarealist auf bestimmt Parameter zugreifen.
Ich habe dafür zwei Absatzvorlagen angelegt.
1. Absatzvorlage (Teaser) enthält u. a.:
<CMS_INPUT_TEXT name="headline" allowEmpty="yes" hFill="yes" singleLine="no" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Überschrift"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
//Eingabe z. B.: Hallo Welt!
2. Absatzvorlage enthält die CMS_INPUT_CONTENTAREALIST.
$CMS_FOR(index,teaser)$
$CMS_VALUE(index)$ //Ausgabe z. B.: Hallo Welt!, ...
$CMS_END_FOR$
Jetzt erhalte ich die Ausgaben meiner Überschriften.
Wie kann ich aber expliziet auf einzelne Parameter aus der 1. Absatzvorlage zugreifen?
Z. B.:
<CMS_INPUT_CONTENTAREALIST name="teaser_ausgabe" hFill="yes" rows="15">
<LANGINFOS>
<LANGINFO lang="*" label="Ausgabe"/>
</LANGINFOS>
<SOURCES>
<TEMPLATE name="namedererstenabsatzvorlage"/>
</SOURCES>
</CMS_INPUT_CONTENTAREALIST>
$CMS_FOR(index,teaser)$
$CMS_VALUE(index.namedererstenabsatzvorlage.headline)$ // funktioniert nicht
$CMS_VALUE(index.namedererstenabsatzvorlage.headline.toString())$ // funktioniert nicht
//ich habe auch versucht in der 1. Absatzvorlage über $CMS_SET(merke_headline, headline)$ die Eingabe auszugeben:
$CMS_VALUE(index.merke_headline)$ // funktioniert leider auch nicht
$CMS_END_FOR$
Kann mir jemand da weiterhelfen?
Danke und schöne Grüße.
Katja
Der "steinige Weg" ist: section.data.get("headline").editor.get(#global.language)
Leider hast du die FirstSpirit-Version nicht angegeben.
Wenn ich die Frage richtig verstehe, soll im Template, das die CMS_INPUT_CONTENTAREALIST enthält, eine Ausgabe von einzelnen Werten der inneren Absätze ausgegeben werden? Dafür muss man auf den Wertetyp zugreifen, dies ist eine Liste von Absätzen. Die Daten eines Absatzes sind dann über "getFormData()" zugreifbar:
$CMS_FOR(section, teaser_ausgabe)$
$CMS_VALUE(section.formData.headline)$<br />
$CMS_END_FOR$
Dies produziert also eine Auflistung aller Überschriften.
Hallo Peter,
ja, Du hast meine Frage richtig verstanden, nur erhalte ich die Fehlermeldung:
Replacing null value with empty default! Undefined field 'headline'!
wenn ich Dein Beispiel umsetze.
Ich habe mehrere verschiedene Schreibweisen ausprobiert und auch unterschiedliche Werte eingefügt, ohne Erfolg.
An der Version sollte es nicht liegen, denn ich habe hier Server-Version: 4.2.432.43881.
Hast Du oder jemand anderes noch eine Idee?
Bitte ersetze mal "headline" durch "form.appendEditorNames(null)" und poste die Ausgabe hier.
Einmal die Ausgabe:
25.04.2012 10:13:01.546 WARN ($CMS_VALUE(section.formData.form.appendEditorNames(null))$ at 81, 2): Replacing null value with empty default! Undefined method 'de.espirit.firstspirit.parser.eval.Undefined#appendEditorNames(java.lang.Object)'!
Hilft Dir das weiter?
Nein, tut es nicht. Ich habe es gerade ausprobiert (allerdings in v5), da funktioniert es. Wird wirklich über die CAL-Werte iteriert? Bitte mal den Typ von "teaser_ausgabe", "section" und "section.formData" ausgeben ($CMS_VALUE(teaser_ausgabe.class)$ etc.).
Einmal die Ausgaben:
$CMS_VALUE(teaser_ausgabe.class)$
de.espirit.firstspirit.client.access.editor.ContentAreaListValueImpl$SectionListImpl
$CMS_VALUE(section.class)$
de.espirit.firstspirit.client.access.editor.EditorSectionImpl
$CMS_VALUE(section.formData.class)$
de.espirit.firstspirit.parser.eval.Undefined
formData scheint zumindestens bei meiner CMS-Version nicht zu funktionieren.
Hast Du eine Alternative parat?
Der "steinige Weg" ist: section.data.get("headline").editor.get(#global.language)
Dank Dir Peter, dass hat geklappt.
Bis section.data.get("headline") bin ich auch gekommen, aber den Rest mit editor.get(#global.language) hätte ich nie hinbekommen.
Ich komme einfach nie auf so was.
Hallo,
seit dem FS 5 Upgrade funktioniert folgender Aufruf nicht mehr.
$CMS_SET(headline)$
$CMS_VALUE(ref(section.data.get("headline").editor.get(#global.language), abs: 1)$
$CMS_END_SET$
Kann mir jemand sagen, was sich geändert hat?