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

Labels (1)
0 Kudos
1 Solution

Accepted Solutions
Peter_Jodeleit
Crownpeak employee
Crownpeak employee

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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
Crownpeak employee

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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
TRomey
I'm new here

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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
Peter_Jodeleit
Crownpeak employee
Crownpeak employee

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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

Peter
0 Kudos
TRomey
I'm new here

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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
Peter_Jodeleit
Crownpeak employee
Crownpeak employee

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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
TRomey
I'm new here

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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
kohlbrecher
Crownpeak employee
Crownpeak employee

Re: Über Seitenreferenz auf Seite und deren Inhalte zugreifen

Jump to solution

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