Zum Inhalt springen

anfänger: zwei ebenen menü

Erstellt am 5. April 2006 · 4 Antworten · letzte Antwort am 7. April 2006

Tags: Frage

flo25 ·

Hallo Leute!
Ich bin ziemlicher Newbie was typo3 anbelangt,
vor allem was das meiner meinung ziemlich kryptische typoscript anbelangt.
Also:
Ich habe eine 2 ebenen tiefe seitmap á la:

Home
Home>>Menü1
Menü1>>Subitem1
Menü1>>Subitem2
Home>>Menü2
Menü2>Subitem1
Menü2>Subitem2
...usw...

Ich möchte nun mittels Typo script folgende
Menüstruktur anzeigen lassen:
Zuerst werden nur Einträge der ersten Ebene angezeigt, also
"Menü1"
"Menü2"
klickt man auf "Menü1" sollten erstens
alle ebene 1 Menüeinträge angezeigt werden, aber unterhalb von "Menü1" dann auch
"Subitem1"
"Subitem2"
Dazu habe ich jetzt folgendes Typo Script:

# Leftside Navigation   
subparts.LEFTNAV = HMENU    

subparts.LEFTNAV.special = directory
subparts.LEFTNAV.special.value = 20
##pid20=oberste seite in sitemap struktur(home)

subparts.LEFTNAV.1 = TMENU  

subparts.LEFTNAV.1 {   
NO.allWrap =  <div class="navi1"> | </div>   
ACT = 1   
ACT.allWrap = <div class="navi1-act"> | </div>   
}       



subparts.LEFTNAV.2 = TMENU   

subparts.LEFTNAV.2 {   
NO.allWrap =  <div class="navi2"> | </div>   
ACT = 1   
ACT.allWrap = <div class="navi2-act"> | </div>   
}

Das Resultat ist dass die Menüeinträge
der ersten Ebene richtig mit CSS formatiert werden, also "navi1" und "navi1-act" mit css
hervorhebung des aktuellen Menüpunktes der ersten Ebene, aber wenn ich auf eben einen solchen Link der ersten ebene klicke werden leider nicht die Menüpunkte der zweiten Ebene angezeigt
(subparts.LEFTNAV.2)
-->ich habe auch

subparts.LEFTNAV.1.2

probiert geht auch nicht...

wenn ich das typo script auf wie folgt umändere, werden dann zwar auch die Einträge
der zweiten Ebene angezeigt, aber erstens
mit <div class="navi1"> anstatt class="navi2"
und zweitens fehlen dann die oberen Menüpunkte. Also beim klick auf Menü2 werden zwar die Subitems dieses Menüs angezeigt, aber dann fehlen wieder die Unterpunkte von "Menü1"

# Leftside Navigation   
subparts.LEFTNAV = HMENU    

subparts.LEFTNAV.special = directory
subparts.LEFTNAV.entryLevel = 0

subparts.LEFTNAV.1 = TMENU  

subparts.LEFTNAV.1 {   
NO.allWrap =  <div class="navi1"> | </div>   
ACT = 1   
ACT.allWrap = <div class="navi1-act"> | </div>   
}       



subparts.LEFTNAV.2 = TMENU   

subparts.LEFTNAV.2 {   
NO.allWrap =  <div class="navi2"> | </div>   
ACT = 1   
ACT.allWrap = <div class="navi2-act"> | </div>   
}

Ich wäre wehr froh wenn mir wer helfen könnte, dass Typo3 beim anklicken von etwa
Menü2>Subitem1 folgenden HTML Code rauswirfr:

<div class="menu1">Menu1</div>
<div class="menu1">Menu2</div>
<div class="menu2-act">Menu2-Subitem1</div>
<div class="menu2">Menu2 - Subitem2</div>

ps: by the way:
in vielen t3scripts werden HMENU zb so definiert:

...
temp.tmenu= HMENU
...

ich habe aber

...
subparts.LEFTNAV = HMENU   
...

vewendet.
was ist dieses objekt "temp" ?
wie muss dieses definiert werden?
weil wenn ich zb
temp.LEFTNAV verwende, kommt bei mir überhaupt kein Menü.

Vielen Dank im Vorraus für eure Hilfe!
liebe Grüße
FLorian

laptop24 ·

Hallo,

Bei Verwendung der HMENU Option "special" werden mehrere Ebenen nicht mehr beachtet. Es werden sozusagen alle weiteren Ebenen ausser der ersten ignoriert (sehr zu meinem Leidwesen).

theo ·

special weglassen und fertig ist die Laube.

Im oben genannten Beispiel ist ein special-Menü absolut fehl am Platze, d.h. es macht null Sinn.

laptop24 ·

@just2b: You're my savior. 🙂 Ich werde den Code zwar nicht patchen, aber immerhin hab ich nun eine Lösung. Falls es mal brennen sollte.

@theo: Das ist eine ganz andere Sache. In diesem Fall macht es nicht wirklich Sinn. Aber vielleicht war der Fall konstruiert. Ich hatte mal ein Projekt, wo ich das benötigt hätte.

Gruß, Lars Thalheim