Search the FirstSpirit Knowledge Base
Hallo Zusammen,
ich muss auf einer Seite wissen, ob die aktuelle Seite eine weitere Navigationsebene hat.
Ich habe hier im Forum einiges dazu gefunden. Nahe liegt #nav.hasSubFolders, diese kann aber nur in der Function im Header genutzt werden.
Leider muss ich diese Info außerhalb der Function wissen, da ich darauf reagieren muss (das Ergebniss eines ContentSelects wird statt der Navigation ausgegeben).
Mein erster Gedanke war, das Ergebnis der Navigation auf leer zu prüfen, leider finde ich der API nichts bezüglich de.espirit.firstspirit.generate.functions.NavigationFunctionImpl$StandardNavigation, daher fält es mir schwer zu wissen, wann eine Navigation nun tatsächlich leer ist.
Ich hoffe, ihr versteht was ich so vor habe
Grüße, Patric
Hallo Patric,
wenn es hier darum geht, ob der Ordner, indem sich die aktuelle Seite befindet, noch Kinder hat, würde ich so vorgehen:
Der Vaterordner hat $CMS_VALUE(#global.node.parent.getChildren(#global.node.parent.class,false).toList().size)$ Kinder
Wenn Du allerdings Ordner mit sehr vielen Kindern hast und wenn Du auch noch wissen willst, ob die Ordner in der Navigation sichtbar sind, dann besser so:
$CMS_SET(navChildren,false)$
$CMS_FOR(folder,#global.node.parent.getChildren(#global.node.parent.class,false))$
$CMS_IF(folder.getFolderLangSpec(#global.language).isVisible())$
$CMS_SET(navChildren,true)$
$CMS_END_IF$
$CMS_END_FOR$
$CMS_IF(navChildren)$Navigationskinder sind da$CMS_END_IF$
Viele Grüsse aus Dortmund,
Holger
Hallo Patric,
wenn es hier darum geht, ob der Ordner, indem sich die aktuelle Seite befindet, noch Kinder hat, würde ich so vorgehen:
Der Vaterordner hat $CMS_VALUE(#global.node.parent.getChildren(#global.node.parent.class,false).toList().size)$ Kinder
Wenn Du allerdings Ordner mit sehr vielen Kindern hast und wenn Du auch noch wissen willst, ob die Ordner in der Navigation sichtbar sind, dann besser so:
$CMS_SET(navChildren,false)$
$CMS_FOR(folder,#global.node.parent.getChildren(#global.node.parent.class,false))$
$CMS_IF(folder.getFolderLangSpec(#global.language).isVisible())$
$CMS_SET(navChildren,true)$
$CMS_END_IF$
$CMS_END_FOR$
$CMS_IF(navChildren)$Navigationskinder sind da$CMS_END_IF$
Viele Grüsse aus Dortmund,
Holger
Danke, das paßt, auch wenn es etwas unheimlich aussieht.
Mir hat der Teil mit getChildren(#global.node.parent.class,false)
gefehlt, ist es hier auch möglich explizit den Type anzugeben?
Hallo Patric,
Patric Dosch schrieb:
Danke, das paßt, auch wenn es etwas unheimlich aussieht.
Mir hat der Teil mit
getChildren(#global.node.parent.class,false)
gefehlt, ist es hier auch möglich explizit den Type anzugeben?
Ähm - #global.node.parent.class gibt bereits den Typ an
#global.node --> aktuelle Seitenreferenz
.parent --> der "Vaterknoten", also der Ordner, in dem sich die Seitenreferenz befindet
.class --> Die Klasse des Ordners.
Die Methode liefert also alle Kinder des Ordners zurück, die ebenfalls Ordner sind. Da für die Vererbung "false" (also keine Vererbung) angegeben wird, werden nur die direkten Kinder zurückgeliefert.
Viele Grüsse aus Dortmund,
Holger