Hallo!
Hab' das Ganze jetzt anders gelöst, indem ich den Seitenbaum umgestellt habe. Dabei wird ausgenutzt, dass man mithilfe von TemplaVoila auf einer Seite sowohl das Template für die Seite selbst als auch das für die Unterseiten angeben kann:
-- [root] (id: 1)
---- login (id: 2)
------ home (id: 3)
-------- Navigation 1 (id: 4)
-------- Navigation 2 (id: 5)
-------- First nav level 1 bis n
---------- Second nav level 1 bis n
login enthält hier sein eigenes Template, home enthält einmal das Template für sich selbst und einmal das Template für seine Unterseiten. So ist es auch egal, dass ich mit entryLevel = 3 nicht weiterkomme (denn das geht immernoch nicht). Damit Navigation 1 und 2 nicht mit im Menü auftauchen, werden sie im Code explizit mit excludeUidList ausgeschlossen. Man könnte in der Seitenkonfiguration auch "Hide in Menu" auswählen. Dies ist aber unpraktisch, wenn die Seiten dennoch woanders z.B. in Breadcrumbs auftauchen sollen.
Typoscript-Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| lib.nav = HMENU lib.nav { entryLevel = 2 excludeUidList = 4,5 wrap = ... } lib.nav.1 = TMENU lib.nav.1 { NO.allWrap = ... ACT = 1 ACT.allWrap = ... } lib.nav.2 = TMENU lib.nav.2 { NO.allWrap = ... ACT = 1 ACT.allWrap = ... } lib.nav.3 = TMENU lib.nav.3 { wrap = ... NO.allWrap = ... ACT = 1 ACT.allWrap = ... } |
Das Menü geht übrigens hinab bis Level vier. Dieser vierte Menü-Level wird an einer anderen Stelle der Seite aufgerufen, losgelöst von den anderen drei Leveln. Dafür wird ein eigenes HMENU benötigt (ich schreib's einfach noch als Erweiterung der Lösung dazu)
Typoscript-Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| lib.4lvlnav = HMENU lib.4lvlnav.entryLevel = 5 lib.4lvlnav.1 = TMENU lib.4lvlnav.1 { NO = 1 NO.allWrap = ... ACT = 1 ACT.ATagParams = ... ACT.allWrap = ... } |