- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Auslesen der Sitemap-Variable eines Datensatzes
Hallo Zusammen,
ich mรถchte bei Detailseiten aus Datenquellen im title-Tag der Seite den entsprechenden Wert des Datensatzes ausgeben, der im Daten-Reiter und als Sitemap-Variable definiert ist.
Ich mache dies wie folgt in der Seitenvorlage:
$CMS_IF(!#global.pageParams.data.isEmpty && #global.ref.class.toString.equals("de.espirit.firstspirit.generate.ContentProducerReference") && !#global.ref.target.getContent2Params.getSitemapVariableName.isEmpty)$ $CMS_SET(sitemapvar, #global.ref.target.getContent2Params.getSitemapVariableName)$ <title>$CMS_VALUE(#global.pageParams.data.first.get(sitemapvar))$</title> $CMS_ELSE$ <title>$CMS_VALUE(pt_meta_title, default:"")$</title> $CMS_END_IF$
In der Vorschau funktioniert das wunderbar. Bei den letztendlich generierte Seiten wird aber immer der ELSE-Zweig durchlaufen. Hat hier jemand eine Idee oder einen Hinweis, woran das liegen kรถnnte?
FS-Server Version ist die 5.2.426.74523.
Vielen Grรผรe
Sebastian
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sebastian,
Ohne jetzt schon genau sagen zu kรถnnen ob es der Grund des Problems ist: was auf jeden Fall schonmal ungรผnstig ist, ist die Nutzung von getClass().toString().equals(...). Das sollte man so nie nutzen, weil ein getClass immer die konkrete Implementierungsklasse ausgibt, die รผblicherweise nie Teil der API ist (und sich darum jederzeit รคndern kann bzw. sich auch zwischen Vorschau und Generierung unterscheiden kann). Es sollte immer nur auf Interfaces geprรผft werden.
Eine โinstanceofโ-Prรผfung gegen ein Interface kannst Du mit class("de.espirit....SomeInterface").isCase(someObject) machen, siehe hier.
Grundsรคtzlich wรผrde ich erstmal so vorgehen, mir die Ergebnisse der einzelnen Teile des IFs mal separat auszugeben um zu schauen an welcher Stelle etwas โandersโ ist. Vielleicht liegt es ja tatsรคchlich schon an der Klassenprรผfung.
Viele Grรผรe
Michael

