Search the FirstSpirit Knowledge Base
Hallo,
wir haben für einige Seiten SEO-URLs angelegt, weil die Pfade über die Struktur sehr lang sind. Zu einem anderen Zweck benötige ich aber den Strukturpfad. Gibt es die Möglichkeit, den in der Strukturverwaltung vorhandenen Pfad auszulesen?
Über $CMS_REF(#global.ref.node)$ bekomme ich beispielsweise nur den generierten Pfad ausgelesen.
Und noch eine Zusatzfrage: Kann man abfragen, ob für eine Seite eine SEO-URL angelegt wurde?
Danke, auf den Weg bin ich auch schon gekommen. Ich dachte es gäbe da evtl. noch was out of the box. Scheint leider nicht so.
Mein Lösungsweg sieht wie folgt aus:
$CMS_SET(set_depth, #global.node.depth)$
$CMS_SET(set_sitestorePath, {"start": #global.node.getParentFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")})$
$CMS_FOR(for_element, [1..set_depth])$
$CMS_SET(set_rootFolder, set_rootFolder.getParentFolder)$
$CMS_IF(#for.index == 0)$
$CMS_SET(void, set_sitestorePath.put("production", set_rootFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")))$
$CMS_ELSIF(#for.index == 1)$
$CMS_SET(void, set_sitestorePath.put("location", set_rootFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")))$
$CMS_ELSIF(#for.index == 2)$
$CMS_SET(void, set_sitestorePath.put("root", set_rootFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")))$
$CMS_END_IF$
$CMS_END_FOR$
Sehr individuell aber vllt. hilft es trotzdem irgendjemanden irgendwann einmal weiter.
Hallo Henning,
hilft dir vielleicht #global.canonicalUrl weiter?
Viele Grüße,
Lena
Hallo Lena,
danke, aber leider hilft der Wert nicht weiter. SEO-URLs sind ja Ersetzungen der Original URLs. Daher handelt es sich bei der SEO-URL um die Canonical-URL und der Aufruf liefert null zurück.
Handelt es sich bei der generierten URL bereits um eine kanonische URL, liefert dieser Aufruf null zurück.
Hallo Henning,
#global.ref.node ist vom Typ PageRef und da kann man sich über "getParent()" die komplette Vaterkette im Site-Store holen.
Hilft Dir das weiter?
Grüße Marian
Danke, auf den Weg bin ich auch schon gekommen. Ich dachte es gäbe da evtl. noch was out of the box. Scheint leider nicht so.
Mein Lösungsweg sieht wie folgt aus:
$CMS_SET(set_depth, #global.node.depth)$
$CMS_SET(set_sitestorePath, {"start": #global.node.getParentFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")})$
$CMS_FOR(for_element, [1..set_depth])$
$CMS_SET(set_rootFolder, set_rootFolder.getParentFolder)$
$CMS_IF(#for.index == 0)$
$CMS_SET(void, set_sitestorePath.put("production", set_rootFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")))$
$CMS_ELSIF(#for.index == 1)$
$CMS_SET(void, set_sitestorePath.put("location", set_rootFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")))$
$CMS_ELSIF(#for.index == 2)$
$CMS_SET(void, set_sitestorePath.put("root", set_rootFolder.getDisplayName(#global.language).toLowerCase.replaceAll("[^0-9a-z]", "-")))$
$CMS_END_IF$
$CMS_END_FOR$
Sehr individuell aber vllt. hilft es trotzdem irgendjemanden irgendwann einmal weiter.