Questions & Answers

SOLVED
patric_dosch
I'm new here

Hat die aktuelle Seite Kinder, die in der Navigation sind

Jump to solution

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 Smiley Wink

GrรผรŸe, Patric

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

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

View solution in original post

0 Kudos
3 Replies
hoebbel
Crownpeak employee

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

0 Kudos

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?

0 Kudos

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 Smiley Wink

#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

0 Kudos

Type a product name