Navigation durchnummerieren
Author: TimoMeister
Publication Date: 10/26/2017 13:29
Hallo Community,
in der Navigations-Funktion (<CMS_HEADER>) möchte ich gerne die Navigationspunkte und deren Unternavigationspunkte durchnummerieren.
<item id="0">
<item id="0.0"></item>
<item id="0.1">
<item id="0.1.1"></item>
</item>
<item id="0.2"></item>
</item>
<item id="1"></item>
Wie kann man das am besten realisieren?
Viele Grüße
Timo
-
Author: sense - 10/26/2017 13:39
Das sollte sich mit #nav.level und #nav.levelPos zusammenbasteln lassen.
#nav.level: Nummer der Navigationsebene. Die Zählung beginnt mit 0.
#nav.levelPos: Position des aktuellen Ordners in der aktuellen Ebene. Die Zählung beginnt mit 0.
Mit ein bisschen zusätzlicher Logik solltest Du dann den "Zahlenstring" erhalten.
0 -
Author: TimoMeister - 10/26/2017 13:43
Das ist richtig. Mit Abfragen klappt das schon.
$CMS_IF(#nav.level==0)$
$CMS_VALUE(#nav.levelPos)$
$CMS_ELSIF(#nav.level==1)$
$CMS_VALUE(#nav.folder.parent.getPosition+"_"+#nav.levelPos)$
$CMS_ELSIF(#nav.level==2)$
$CMS_VALUE(#nav.folder.parent.parent.getPosition+"_"+#nav.folder.parent.getPosition+"_"+#nav.levelPos)$
...
$CMS_END_IF$
Ich dachte nur, vielleicht geht es etwas eleganter? Mit dem Hintergrund, dass man im vorhinein nicht genau weiß, wie viele Ebenen es geben wird.
0 -
Author: mbergmann - 10/26/2017 13:51
Hallo Timo,
das sollte in Deinem Fall durch Nutzung von #nav.positions[levelIndex] machbar sein. Du bekommst dabei jeweils die Position in der übergebenen Ebene. Für den Ordner 2.4.6 wäre #nav.positions[1] also 4.
Um den kompletten „Ebenen-Level-Pfad“ in jedem Element auszugeben, sollte etwas wie folgt funktionieren (nicht getestet, nur für die Idee, ggf. noch irgendwo +/- 1 einbauen):
<item id="$CMS_VALUE([0..#nav.level].map(x->#nav.positions[x]).toString("."))$">...
Viele Grüße
Michael
0 -
Author: TimoMeister - 10/26/2017 14:01
Hallo Michael,
das ist perfekt!!! Genau das habe ich gesucht.
Funktioniert genau, wie von Dir angegeben.
Danke und viele Grüße
Timo0
Please sign in to leave a comment.
Comments
4 comments