Zum Inhalt springen

kein Menu wenn keine Unterseiten

Erstellt am 23. November 2011 · 7 Antworten · letzte Antwort am 28. November 2011

Tags: Frage

Marv_In ·

Hallo,

ich habe ein vielleicht etwas ungewoehnliches Problem.
Auf meiner Seite habe ich neben dem Hauptmenu noch ein Zweites.

Was ich jetzt Suche ist eine Loesung um dieses Menu auszublenden/nicht anzuzeigen wenn die aktuelle Seite keine weiteren Unterseiten hat.

Ein Bonus waer noch wenn dann noch ich auf den restlichen Seiten im Menu Eintraege die Unterseiten haben anders formatieren kann als Eintraege die keine Unterseiten haben.

Wem das jetzt zu wirr war, kann ich versuche das noch etwas naeher auszufuehren.
Aber schon mal vielen Dank fuer jeden Hinweis wo ich suchen muss.

MichaMore ·

Hallo,

wenn die beiden Menüs getrennt sind (also auch 2 separate HMENU konfiguriert werden) kannst Du das doch über den entryLevel lösen. Zumindest habe ich das in der Konfig für unseren Relaunch so gemacht.

Die Formatierung würde ich über CSS-Klassen lösen, die Du mit z.B. CURIFSUB oder ACTIFSUB und dem jeweiligen wrap zuweist.

Ich hoffe, ich habe Dich richtig verstanden 😃

Gruß
Micha

Marv_In ·

Danke fuer deine Antwort.

Ja, es werden zwei seperate HMENUs definiert.
Wie ich das dann aber ueber das entryLevel loesen soll ist mir nicht ganz klar.

Gesucht ist eine Moeglichkeit das Menu auf der untersten Seite (den Blaettern im Seitenbaum) nicht anzuzeigen.
Das entryLevel gibt mir ja nur eine Moeglichkeit die Wurzel des Menubaumes zu aendern.
(Blaetter koennen prinzipiell auf allen Ebenen des Baums auftauchen)

Die Formattierung mit IFSUB hat teils schon funktioniert, allerdings war da noch eine Fehler drin, den muss ich noch Suchen.
[Ich glaub dafuer mach ich dann mal noch ein zweiten Thread auf. Je mehr ich drueber nachdenk desto mehr Fragen hab ich 😉 ]

MichaMore ·

Okay, dann habe ich Dich doch etwas falsch verstanden. Dafür ist dann entryLevel wohl ungeeignet.

Ich experimentiere gerade hinsichtlich Menüs mit Conditions und "PIDinRootline", um die Anzeige zu steuern. Vielleicht findest Du damit eine Lösung. Ich kann Dir aber leider kein Beispiel aufzeigen, habe das derzeit nur auf dem Papier und noch nicht getestet.

Viele Grüße
Micha

Marv_In ·

Dann muss ich mal weitersuchen und/oder hoffen, dass jmd anderes mir eine Tip geben kann in welche Richtung ich gehen muss.

Vielen Dank dir aber.

Marv_In ·

Eine Idee hab ich grad noch 😉

Gibt es vielleicht eine Moeglichkeit wenn ich auf den untersten Seiten (den Blaettern, auf denen wo kein Menu angezeigt werden soll) ein Stueck T3 Script in die Seite einbaue?

Kann man das ueber das Template irgendwie auslesen?

jank ·

Das entryLevel kann man dazu verwenden um die 2. Menüebene in ein seperates Hmenü zu packen.

# 2. Menüebene:
entryLevel = 1

# 3. Menüebene:
entryLevel = 2

#....

Ein menü wird auch nur dann erstellt wenn es Einträge hat.

ABER: Wenn du das Menü z.B. in ein div einfügst ala:

<div class="menu">###menu###</div>

wird natürlich das div ausgegeben.

hierfür kannst du auch das div im Template weg lassen

###menu###

und im TS Wrappen:

lib.menu = HMENU
lib.menu{
	stdWrap.wrap = <div class="menu">|</div>
	stdWrap.required = 1
}

@MichaMore
statt conditions würde ich if nehmen wenn es garnicht anders geht:

lib.menu = HMENU
lib.menu{
	if {
		value.field = uid
		# liste der uids der Elternseiten
		isInList = 5,43
		negate = 1
	}
}

Doku zu if

Marv_In ·

Mit dem Entrylevel geht das von mir gewuenschte nicht.
Auf typo3.org hab ich aber dann gefunden was ich brauch und moechte das hier noch kurz weitergeben.

Die Loesung ist es mittels der if-Funktion zu erledigen:

subparts.ONSITEMENU = HMENU
  subparts.ONSITEMENU.if.isTrue.numRows {
    table = pages
    where = pid=this
}

Damit wird das Menu nur angezeigt, wenn in der "pages"-Tabelle ein Eintrag existiert der als Parent-ID (pid) die aktuelle Seite hat.

Vielen Dank fuer eure Hilfe.
Demnaechst kommt mein naechster Hilferuf zum Thema Menus 🙂