Search the FirstSpirit Knowledge Base
Hallo Zusammen,
ich hab hier eine kleine Herausforderung an der ich gerade scheitere 😞
Ich habe eine Datenquelle, in der sich Seitenreferenzen befinden. Diese Seitenreferenzen werden über eine ContentSelect Funktion ausgelesen. Ich brauche nun den Zufgriff auf die Seite selbst über die Seitenreferenz, damit ich dann auf die Inhalte der Eingabekomponenten zugreifen kann.
Also so: Seitenreferenz > Seite > Inhalt der Eingabekomponente (z.B. eine Seitenüberschrift)
Bis jetzt erhalte ich ein Objekt vom Typ (de.espirit.firstspirit.acces.store.sitestore.Pageref und versuche über die Methode .getPage() an die Seite zu kommen. Das funktioniert leider nicht.
Über Hilfe bei dieser Herausforderung würde ich mich freuen.
Danke
Petra
Debugging Info:
WARN 17.07.2013 11:39:50.920{g-node=5852} (de.espirit.firstspirit.generate.SiteProduction): Replacing null value with empty default!
inside of: Template 'rss Feed' (id=2811)
inside of: $CMS_VALUE(fr_rss_pages.get(0).page.getPage())$ - at 31, 50
Kannst du da mal die Zwischenschritte ausgeben? "page" ist soweit ich das sehe eine Eingabekomponente vom Typ "FS_REFERENCE" - da besteht ja durchaus die Möglichkeit, das keine Referenz ausgewählt ist.
Dann ist "getPage()" falsch, davor fehlt noch ein "get()" (siehe API-Doc von TargetReference).
$CMS_VALUE(fr_rss_pages.get(0).page.get().getPage())$
Hallo Petra,
welche FirstSpirit-Version verwendet ihr? Und könntest Du etwas genauer erläutern, was beim Auruf von .getPage() passiert?
Viele Grüße
Donato
Hi Donato,
wir verwenden FirstSpirit v.5.0.210.55494
Beim Aufruf von .getPage() kommt eine null Referenz zurück. Auf das PageRef-Objekt kann man z.B. ohne Probleme .getUid() aufrufen. Aber viele andere API-Methoden, darunter auch .getPage(), liefern nicht das gewünschte Ergebnis zurück.
VG,
Thiemo
Kannst du mal Beispielcode und (Debugging-)Ausgaben liefern?
Hallo Peter,
Das Mapping der Tabellenvorlage sieht wie folgt aus:
(s. Screenshot im Anhang)
Die contentSelect Funktion so:
<CMS_FUNCTION name="contentSelect" resultname="fr_rss_pages">
<CMS_PARAM name="schema" value="barmenia_de" />
<QUERY entityType="rss_feed">
</QUERY>
</CMS_FUNCTION>
Ein beispielhafter Zugriff auf eine Seitenreferenz so (einfachhalber ohne Loops, etc.):
$CMS_VALUE(fr_rss_pages.get(0).page.getPage)$
Debugging Info:
WARN 17.07.2013 11:39:50.920{g-node=5852} (de.espirit.firstspirit.generate.SiteProduction): Replacing null value with empty default!
inside of: Template 'rss Feed' (id=2811)
inside of: $CMS_VALUE(fr_rss_pages.get(0).page.getPage())$ - at 31, 50
Viele Grüße,
Thiemo
Hallo,
also ich hatte eine ähnliche Anforderung. Bei mir musste ich innerhalb der Navigation auswerten, ob ein Link zur Seite ein Neu-Icon haben muss.
$CMS_SET(set_ref, #nav.ref)$
$CMS_SET(set_page, set_ref.getPage())$
$CMS_IF(set_page.getData() != null)$
$CMS_SET(set_data, set_page.getData())$
$CMS_IF(set_page.getFormData() != null)$
$CMS_SET(set_formData, set_page.getFormData())$
$CMS_IF(
set_data.get("pt_new_icon") != null &&
set_formData.get(#global.language, "pt_new_icon").get() > #global.now)$
$CMS_RENDER(template:"render_icons", icon_type: "neu", display_type:"before")$
$CMS_END_IF$
$CMS_END_IF$
$CMS_END_IF$
Vielleicht hilft das weiter.
Viele Grüße
Diana
Debugging Info:
WARN 17.07.2013 11:39:50.920{g-node=5852} (de.espirit.firstspirit.generate.SiteProduction): Replacing null value with empty default!
inside of: Template 'rss Feed' (id=2811)
inside of: $CMS_VALUE(fr_rss_pages.get(0).page.getPage())$ - at 31, 50
Kannst du da mal die Zwischenschritte ausgeben? "page" ist soweit ich das sehe eine Eingabekomponente vom Typ "FS_REFERENCE" - da besteht ja durchaus die Möglichkeit, das keine Referenz ausgewählt ist.
Dann ist "getPage()" falsch, davor fehlt noch ein "get()" (siehe API-Doc von TargetReference).
$CMS_VALUE(fr_rss_pages.get(0).page.get().getPage())$
Hi Peter,
vielen Dank für die schnelle Antwort, die das Problem gelöst hat! Es fehlte tatsächlich noch ein .get() Methodenaufruf.
Gruß,
Thiemo
Hallo,
ich vermute, dass sich die Frage durch Peters Antwort geklärt hat. Daher markiere ich diesen Thread als beantwortet.
Sollte die Frage doch noch bestehen, bitte noch einmal melden.
Viele Grüße
Jan