- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hat die aktuelle Seite Kinder, die in der Navigation sind
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
- Labels:
-
Developers
- Tags:
- children
- navigation
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

