MarcusDau
Occasional Collector

Navigation-Funktion und Multipages

Jump to solution

Also, ich habe eine CMS_FUNCTION, die die Sitemap nach schema.org erzeugen soll. Aktueller Code sieht (fast) so aus:

<CMS_FUNCTION name="Navigation" resultname="googleSitemap">
<CMS_PARAM name="expansionVisibility" value="all"/>
<CMS_PARAM name="wholePathSelected" value="0"/>
<CMS_PARAM name="siteMap" value="1" />
<CMS_ARRAY_PARAM name="pageRefRendering">
<CMS_ARRAY_ELEMENT index="0..100"><![CDATA[
$CMS_SET(multiPageParams, #nav.ref.getMultiPageParams(#global.language, #global.templateSet))$
$CMS_FOR(i, [0 .. multiPageParams.pageCount - 1])$
<url>
<loc>$CMS_VALUE(ref(#nav.ref, abs:1, index:i).url.replaceAll("index.xhtml",""))$</loc>
<lastmod>$CMS_VALUE(#nav.ref.page.changeDate().format("yyyy-MM-dd"),default:#startdate.format("yyyy-MM-dd"))$</lastmod>
<changefreq>$CMS_VALUE(#nav.ref.meta("mt_sitemap_changefreq"),default:"monthly")$</changefreq>
<priority>$CMS_VALUE(#nav.ref.meta("mt_sitemap_priority"),default:"0.5")$</priority>
</url>
$CMS_END_FOR$
]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
</CMS_FUNCTION>


Das funktioniert soweit auch problemlos. Nun habe ich aber die Herausforderung, dass ich in der Funktion bei Multipages auf einen Wert aus dem entsprechenden Datensatz zugreifen muss. Sprich, in der Datenquelle gibt es ein Feld, welches sagt, ob z.B. eine Pressemeldung in der Sitemap auftauchen darf oder nicht.

Wie greife ich in der Nav-Funktion auf dieses Feld zu? Also sowas wie #nav.getMultipage().getDatensatz().getFeld(„x“).getWert() wobei die rot markierten „Methoden“ nur beispielhaft sind.

Wisst Ihr, was ich benötige? Könnt Ihr mir helfen?

Danke vorab.

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Marcus,

funktioniert denn multiPageParams.getData().get(i) in der Schleife nicht? 
Wenn ich es richtig sehe, müsstest Du damit das gewünschte Entity (sofern nur ein Datensatz pro Seite ausgegeben wird) bekommen.

Viele Grüße
Holger

View solution in original post

2 Replies
hoebbel
Crownpeak employee

Hallo Marcus,

funktioniert denn multiPageParams.getData().get(i) in der Schleife nicht? 
Wenn ich es richtig sehe, müsstest Du damit das gewünschte Entity (sofern nur ein Datensatz pro Seite ausgegeben wird) bekommen.

Viele Grüße
Holger

MarcusDau
Occasional Collector

Danke Dir Holger. Top! Ich war da schon mal, bin dann aber falsch abgebogen. Nun klappt es.

 

0 Kudos