Hewera-Harz
Returning Observer

Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions

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())$

Peter

View solution in original post

0 Kudos
8 Replies
marro
Crownpeak employee

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

0 Kudos

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

0 Kudos

Kannst du mal Beispielcode und (Debugging-)Ausgaben liefern?

Peter
0 Kudos

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

0 Kudos
rbitdd
Returning Responder

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. Smiley Happy

Viele Grüße

Diana

0 Kudos

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())$

Peter
0 Kudos

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

0 Kudos

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

0 Kudos