pdresel
Occasional Observer

Sitemap mit dynamischem root Parameter

Hallo zusammen.

Ein Kunde von uns möchte gerne selbstständig Sitemaps für Unterbereiche seines Projekts erzeugen.

Unser Plan war das ganze über ein eigenes Seiten-Template zu realisieren. Der Kunde kann in den Einstellungen der Seite den Ordner wählen der der Root für die Sitemap sein soll und das Template erzeugt über die Navigation Header Funktion eine Sitemap.

Auf dem Papier sollte das auch gehen, indem der ausgewählte Ordner als root Parameter an die Funktion übergeben wird. Mit fest eingetragenen Referenznamen funktioniert das auch super. Aber wir bekommen es nicht hin, dass der Ausgewählte Ordner als Parameter akzeptiert wird.

Das Template sieht wie folgt aus:

<CMS_HEADER>
	<CMS_FUNCTION name="Navigation" resultname="fr_ft_sitemap">
		<CMS_PARAM name="expansionVisibility" value="all"/>
		<CMS_PARAM name="siteMap" value="1" />
		<CMS_VALUE_PARAM name="root" value="pt_rootFolder"/>

		<CMS_ARRAY_PARAM name="pageRefRendering">
			<CMS_ARRAY_ELEMENT index="0..10"><![CDATA[
				...
			]]></CMS_ARRAY_ELEMENT>
		</CMS_ARRAY_PARAM>
	</CMS_FUNCTION>
</CMS_HEADER>

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
	$CMS_VALUE(fr_ft_sitemap.toString.trim)$
</urlset>

Wobei pt_rootFolder die FS_REFERENCE Eingabekomponente für den Ordner ist.

Die Generierung wirft folgenden Fehler:

ERROR (header function 'Navigation', resultname = 'fr_ft_sitemap' at 2, 2):  at 2, 2: invalid value for parameter 'root', invalid reference '[services_2:SITESTORE_FOLDER]@4af3a35d'

Ok. Offenbar ist das nicht der Typ von Referenz, der dort gefragt ist. Leider konnten wir der Dokumentation nicht entnehmen was genau da benötigt wird.

Außerdem scheint es auch nicht zu funktionieren dort frei im Template definierte Variablen zu übergeben.
Wenn wir im Template vorher eine Variable definieren

$CMS_SET(set_root, #global.node)$

und diese dann als Parameter übergeben wollen

<CMS_VALUE_PARAM name="root" value="set_root"/>

kommt immer der Fehler

ERROR (header function 'Navigation', resultname = 'fr_ft_sitemap' at 2, 2):  at 2, 2: invalid value for parameter 'root', invalid reference ''

Und das unabhängig davon was wir da definieren. Wir haben also gar nicht die Chance und so den richtigen Typ von Value für den Parameter zusammenzubauen.

Hat jemand einen Tipp was wir falsch machen, oder wo es eine Dokumentation dafür geben könnte?

 

Grüße

Patrick

 

0 Kudos
0 Replies