Zum Inhalt springen

Submenü je Root - Knoten darstellen

Erstellt am 9. Mai 2007 · 3 Antworten · letzte Antwort am 10. Mai 2007

Tags: Frage

Der Dude ·

Hallo! Bin Typo - Newbie und hab nach vielem Suchen für eine einfache Sache keine Lösung gefunden. Habe folgende Seitenstruktur:

root
-----Home
-----Büro
-----Projekt
----------Intern
----------Extern
-----Kontakt
----------Formular
----------Kontakt

Wenn ein Knoten in der Root (bspw. Projekt) geklickt wird, sollen die Seiten der 2. Ebene im jeweilige Submenü erscheinen (bspw. Intern & Extern). Gibt es keine 2. Ebene, gibt´s auch kein Submenü.

Folgendes Typoscript (relevanter Teilausschnitt) verwende ich bisher. Bis auf die Submenü - Sache funzt alles:

# Einbindung Template
	100 = TEMPLATE
	100 {
		template = FILE
		template.file = fileadmin/template/vorlage.html
		workOnSubpart = DOKUMENT
		marks {
			PAGETITLE = TEXT
			PAGETITLE.field = title
			
			# Haupt-Menü
			MAINNAV = HMENU
			MAINNAV {
				special = directory
				special.value = 16  # ID des Root-Elements für Einstieg
				entryLevel = 0
				1 = TMENU
				1 {
					noBlur = 0
					NO = 1
					NO.linkWrap = <li>|</li>
					ACT = 1
					ACT.linkWrap = <li>|</li>
					ACT.ATagParams = class="active"
				}
			}
			
			# Sub-Menü
			SUBNAV = HMENU
			SUBNAV {
				special = directory
				special.value = ...
				entryLevel = 1
				1 = TMENU
				1 {
					noBlur = 0
					NO = 1
					NO.linkWrap = <li>|</li>
					ACT = 1
					ACT.linkWrap = <li>|</li>
					ACT.ATagParams = class="active"
				}
			}
			
		}
	
	}

Sicherlich muß ich doch dem "special.value = ..." im Sub-Menü nur verklickern, dass er sich immer auf den jeweiligen übergeordneten Knoten beziehen soll?!

Für einen Tipp wäre ich sehr dankbar!

Gruß, Stephan

einpraegsam.​net ·

was ist damit?

MAINNAV = HMENU
                        MAINNAV {
                                special = directory
                                special.value = 16  # ID des Root-Elements für Einstieg
                                entryLevel = 0
                                1 = TMENU
                                1 {
                                        noBlur = 0
                                        NO = 1
                                        NO.linkWrap = <li>|</li>
                                        ACT = 1
                                        ACT.linkWrap = <li>|</li>
                                        ACT.ATagParams = class="active"
                                }
                                2 < .1
                        }

Und warum nutzt du entryLevel und special.value - das ist zeitgleich absolut und relativ...

Der Dude ·

Ah ja klar - vielen Dank für den Hinweis! Das richtige Typoscript sieht nun so aus. (siehe nachfolgender Auszug)
Allerdings, wenn es kein Sub-Menü gibt, werden trotzdem die Tags "<ul></ul>" (wrap = <ul>|</ul>) ausgegeben und das Ganze ist nicht mehr XHTML valide, wenn es leere <ul> - Elemente gibt. Kann ich die Ausgabe dann unterdrücken, wenn es kein Sub-Menü gibt und falls ja, wie?

# Haupt-Menü
MAINNAV = HMENU
MAINNAV {
	wrap = <ul>|</ul>
	entryLevel = 0
	1 = TMENU
	1 {
		noBlur = 0
		NO = 1
		NO.linkWrap = <li>|</li>
		ACT = 1
		ACT.linkWrap = <li>|</li>
		ACT.ATagParams = class="active"
	}
}

# Sub-Menü
SUBNAV = HMENU
SUBNAV {
	wrap = <ul>|</ul>
	entryLevel = 1
	1 = TMENU
	1 {
		noBlur = 0
		NO = 1
		NO.linkWrap = <li>|</li>
		ACT = 1
		ACT.linkWrap = <li>|</li>
		ACT.ATagParams = class="active"
	}
}
Der Dude ·

Ah, hab´s gefunden... Wird der wrap innerhalb vom TMENU angesetzt, erfolgt die Ausgabe auch nur, wenn´s ein Sub-Menü gibt...

# Sub-Menü
SUBNAV = HMENU
SUBNAV {
	entryLevel = 1
	1 = TMENU
	1 {
		wrap = <ul>|</ul>