Search the FirstSpirit Knowledge Base
Hallo allerseits
Folgendes Szenario bereitet mir mit FS 5 Schwierigkeiten... in FS 4.2 hat's so problemlos funktioniert.
Der Benutzer hat die Möglichkeit, in einer Seitenvorlage innerhalb des Inhaltsbereiches "main-column" einen "Teaser Container" Absatz zu erstellen und darin die zu publizierenden Teaser zu selektieren. Die Teaser werden zwar im Inhaltsbereich "Main Column" erstellt, die Ausgabe erfolgt aber über den Absatz "Teaser Container". Der "Teaser Container" bezweckt einerseits die mehrspaltige Ausgabe von Teaser, andererseit können so Teaser wiederverwendet werden.
Teaser Auswahlfeld im Formular: (listet alle Absätze innerhalb von "main-column" auf)
<FS_LIST name="st_teasers" hFill="yes" height="300">
<DATASOURCE type="page">
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
</COLUMNS>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="Teaser" description="Please choose the teasers"/>
<LANGINFO lang="DE" label="Teaser" description="Bitte wählen Sie die Teaser"/>
</LANGINFOS>
</FS_LIST>
HTML Code im Formular: (weist die ersten drei selektieren Absätze den Variablen set_teaser1..3 zu)
$CMS_SET(i,1)$
$CMS_FOR(set_teaser, st_teasers)$
$CMS_FOR(_body, #global.page.body("main_column").getChildren())$
$CMS_IF(_body.getName().equals(set_teaser.getReferenceName()))$
$CMS_IF(i == 1)$
$CMS_SET(set_teaser1, _body)$
$CMS_END_IF$
$CMS_IF(i == 2)$
$CMS_SET(set_teaser2, _body)$
$CMS_END_IF$
$CMS_IF(i == 3)$
$CMS_SET(set_teaser3, _body)$
$CMS_END_IF$
$CMS_SET(i,i + 1)$
$CMS_END_IF$
$CMS_END_FOR$
$CMS_END_FOR$
getReferenceName() scheint in FS 5 so nicht mehr zu funktionieren.
Any idea? Oder Vorschläge wie man's ganz anders lösen könnte?
Besten Dank & Grüsse
Richard Gemperle
Lösung gefunden:
mit uid funktionierts auch in FS5
$CMS_IF(_body.getName().equals(set_teaser.uid))$
...
$CMS_END_IF
Kannst du mal den Link auf die API-Methode "getReferenceName()" posten?
Da ist mir wohl ein Fehler unterlaufen:
mit getSectionName() hat's in FS 4.2 funktioniert und in FS 5 nicht mehr
$CMS_IF(_body.getName().equals(set_teaser.getSectionName()))$
...
$CMS_END_IF
Lösung gefunden:
mit uid funktionierts auch in FS5
$CMS_IF(_body.getName().equals(set_teaser.uid))$
...
$CMS_END_IF