Zum Inhalt springen

Submenu anzeigen lassen wenn entry level 2?

Erstellt am 3. Dezember 2006 · 8 Antworten · letzte Antwort am 12. Januar 2007

Tags: Frage

electric-x ·

Hallo typo3.net forum,

Ich habe mehrere Menüblöcke in meiner Seite und deswegen musste ich diese aufsplitten - Es gibt also einen Menüpunkt "Navigation Links" in dem dann sämtliche Menüpunkte stecken. Deshalb auch entry.level = 2 - leider erscheint mit folgendem Typoscript nicht das Submenu.

# Linke Navigation
   subparts.NAVILINKS= HMENU
   subparts.NAVILINKS.special = directory
   subparts.NAVILINKS.special.value = 258
   subparts.NAVILINKS.entry.level = 2
   subparts.NAVILINKS.1 = TMENU
  subparts.NAVILINKS.1 {
      NO.allWrap = <span class="navilinks"> | </span>
      ACT = 1
      ACT.allWrap = <span class="navilinks-aktiv"> | </span>

} 

   subparts.NAVILINKS.2 = TMENU
   subparts.NAVILINKS.2.entry.level = 2
   subparts.NAVILINKS.2 {
      NO.allWrap = <div class="navilinkssub"> | </div>
      ACT = 1
      ACT.allWrap = <div class="navilinkssub-aktiv"> | </div>
 } 
 
    subparts.NAVILINKS.3 = TMENU
   subparts.NAVILINKS.3 {
      NO.allWrap = <div class="navilinkssub"> | </div>
      ACT = 1
      ACT.allWrap = <div class="navilinkssub-aktiv"> | </div>
 }

Das Hauptmenü wird ohne Probleme angezeigt. Leider nicht das Submenü... irgendwo steckt ein Fehler... auch mit .3 wird es nicht angezeigt - obwohl man ja eine Ebene +1 rechnen muss.

SmaxTheFrog ·

Moin evtl. hilft mein Beispiel:

subparts.DOCUMENT_MAINNAVI = HMENU
subparts.DOCUMENT_MAINNAVI {
1 = TMENU
1.NO = 1
1.NO.linkWrap = <li>|</li>
}
subparts.DOCUMENT_SUBNAVI = HMENU
subparts.DOCUMENT_SUBNAVI {
entryLevel = 1
1 = TMENU
1.NO = 1
1.NO.linkWrap = <li>|</li>
}

subparts.DOCUMENT_BREADCRUMP = HMENU
subparts.DOCUMENT_BREADCRUMP {
special=rootline
special.range= 0 | -1
1 = TMENU
1.NO = 1
1.NO.linkWrap = | -> |*| | -> |*| |
}

entryLevel oder range könnte beschreiben was du brauchst.

Gruß

Dirk

electric-x ·

Hallo,

danke schonmal für deine antwort.

Mein Hauptmenü wird ja grundlegend angezeigt - jedoch nicht das Submenu

also folgendermaßen ist das aufgebaut

Linke Navigation
- Produkte
-- Produkt 1
-- Produkt 2
-- Produkt 3
-Empfehlungen
-- Empfehlung 1
-- Empfehlung 2

Linke Navigation 2
- Produkte2
-- Produkt2 1
-- Produkt2 2
-- Produkt2 3

Die beiden Punkte "Linke Navigation 1 und Linke Navigation 2" sollen nicht angezeigt werden - nur der Menupunkt Produkte, Empfehlungen und Produkte2 wenn diese angeklickt wurden (sowie die zugehörigen Submenus wenn der Oberpunkt aktiv ist). Bisher wird immernur Menuebene "2" angezeigt - also Prudukte und Empfehlungen und Produkte2. Jedoch nicht die Submenus wenn z.B. Produkte aktiv ist. Evtl. liegt das am entry.level? oder special.value = 258? Muss man beim Submenu was noch übergeben?

electric-x ·

oder hat jemand eine andere idee wie man so ein gesplittetes menü lösen kann? weil jedes mal mit max items arbeiten ist auch nicht so komfortabel... Funktioniert das überhaupt so wie ich das gemacht habe + subemnu ebenen?

stevee ·

hallo electric

erstmal hab ich dir was zum lesen:
#54965
#25103
#55308

was bei dir sicher falsch ist, ist die schreibweise.
z.b. heisst es entryLevel und nicht entry.Level

und

entryLevel ist eine eigenschaft von NAVILINKS und nicht von NAVILINKS.2

hoffe, das hilft dir weiter

electric-x ·

Hallo Stevee,

Danke für Deine Hilfe. Bei meinem Menu geht es darum dass ich so gesehen 3 Hauptmenüs habe. Ein Horizontales oben was ich mit folgendem TS anzeigen lasse:

#Top Navigation
 
   subparts.NAVIOBEN = HMENU
   subparts.NAVIOBEN.special = directory
   subparts.NAVIOBEN.special.value = 257
   subparts.NAVIOBEN.entry.level = 2
   subparts.NAVIOBEN.excludeUidList = 35, 58
   subparts.NAVIOBEN.1 = TMENU
   subparts.NAVIOBEN.1 {
      NO.allWrap = <td><span class="block">|</span></td>
      ACT = 1
      ACT.allWrap =  <td><span class="blockaktiv">|</span></td>
}

Und dann noch 2 Hauptmenüs Links die über 2 verschiedene Marker ausgeführt werden:

# Linke Navigation
   subparts.NAVILINKS= HMENU
   subparts.NAVILINKS.special = directory
   subparts.NAVILINKS.special.value = 258
   subparts.NAVILINKS.entrylevel = 2
   subparts.NAVILINKS.1 = TMENU
  subparts.NAVILINKS.1 {
      NO.allWrap = <span class="navilinks"> | </span>
      ACT = 1
      ACT.allWrap = <span class="navilinks-aktiv"> | </span>

} 
   #subparts.NAVILINKS.2.special.value = directory
   #subparts.NAVILINKS.2.entrylevel = 3
   subparts.NAVILINKS.2 = TMENU
   subparts.NAVILINKS.2 {
      NO.allWrap = <div class="navilinkssub"> | </div>
      ACT = 1
      ACT.allWrap = <div class="navilinkssub-aktiv"> | </div>
 } 
 
 # Linke Navigation 2
   subparts.NAVILINKS2= HMENU
   subparts.NAVILINKS2.special = directory
   subparts.NAVILINKS2.special.value = 260
   subparts.NAVILINKS2.entrylevel = 2
   subparts.NAVILINKS2.1 = TMENU
  subparts.NAVILINKS2.1 {
      NO.allWrap = <span class="navilinks"> | </span>
      ACT = 1
      ACT.allWrap = <span class="navilinks-aktiv"> | </span>

} 

   subparts.NAVILINKS2.2 = TMENU
   subparts.NAVILINKS2.2.special = directory
   subparts.NAVILINKS2.2.entrylevel = 3
   subparts.NAVILINKS2.2 {
      NO.allWrap = <div class="navilinkssub"> | </div>
      ACT = 1
      ACT.allWrap = <div class="navilinkssub-aktiv"> | </div>
 }

Leider wird egal wie ich es auch mache bei beiden nicht das jeweilige Submenu angezeigt 🙁. Irgendwo steckt da wohl ein kleiner/großer Fehler drin.

Bei Navilinks1 und 2 werden die Hauptmenüs angezeigt - auch von der richtigen PID aus. Leider die dazugehöirgen Submenus nicht.

stevee ·

so, nun wollen wir mal - hier deinen kompletten code überarbeitet:

#Top Navigation
	subparts.NAVIOBEN = HMENU
	subparts.NAVIOBEN.special = directory
	subparts.NAVIOBEN.special.value = 257
//	subparts.NAVIOBEN.entryLevel = 2		// *1
	subparts.NAVIOBEN.excludeUidList = 35, 58
	subparts.NAVIOBEN.1 = TMENU
	subparts.NAVIOBEN.1 {
		NO.allWrap = <td><span class="block">|</span></td>
		ACT = 1
		ACT.allWrap =  <td><span class="blockaktiv">|</span></td>
	}

habe gesamthaft alles ausgeklammert, was du nicht brauchst...

*1: funktioniert nicht und brauchst du auch nicht, wenn du schon die special-eigenschaften mit einem value (=ID) angegeben hast.
beachte trotzdem die richtige schreibweise. erstes wort wird immer klein (entry) und weitere zusammengesetzte/angehängte wörter werden am anfang GROSS (Level) geschrieben.
ohne dies wird es nicht richtig verarbeitet.

kauf dir dazu am besten ein buch, da sind diese basics beschrieben.
vermutlich sind sie auch schon hier drin:
http://www.typo3.net/uploads/media/dokumentation.pdf

# Linke Navigation
	subparts.NAVILINKS= HMENU
	subparts.NAVILINKS.special = directory
	subparts.NAVILINKS.special.value = 258
//	subparts.NAVILINKS.entryLevel = 2		// dito *1
	subparts.NAVILINKS.1 = TMENU
	subparts.NAVILINKS.1 {
		NO.allWrap = <span class="navilinks"> | </span>
		ACT = 1
		ACT.allWrap = <span class="navilinks-aktiv"> | </span>
	}
 
//	subparts.NAVILINKS.special.value = directory		// *2
//	subparts.NAVILINKS.entryLevel = 3					// *2
	subparts.NAVILINKS.2 = TMENU
	subparts.NAVILINKS.2 {
		NO.allWrap = <div class="navilinkssub"> | </div>
		ACT = 1
		ACT.allWrap = <div class="navilinkssub-aktiv"> | </div>
	} 
 
# Linke Navigation 2
	subparts.NAVILINKS2= HMENU
	subparts.NAVILINKS2.special = directory
	subparts.NAVILINKS2.special.value = 260
//	subparts.NAVILINKS2.entryLevel = 2			// dito *1
	subparts.NAVILINKS2.1 = TMENU
	subparts.NAVILINKS2.1 {
		NO.allWrap = <span class="navilinks"> | </span>
		ACT = 1
		ACT.allWrap = <span class="navilinks-aktiv"> | </span>
	} 
 
	subparts.NAVILINKS2.2 = TMENU
//	subparts.NAVILINKS2.special = directory		// dito *2
//	subparts.NAVILINKS2.entryLevel = 3			// dito *1
	subparts.NAVILINKS2.2 {
		NO.allWrap = <div class="navilinkssub"> | </div>
		ACT = 1
		ACT.allWrap = <div class="navilinkssub-aktiv"> | </div>
	}

*2: vergleiche bitte alles ausgeklammerte auch mit deinem code. auch wenn du ihn für dieses menü nicht brauchst, habe ich den code in der richtigen schreibweise geschrieben. bitte unterschiede vergleichen.
hier ist z.b. wichtig, dass die special-eigenschaften eigenschaften (hab ich schon im ersten beitrag geschrieben) vom gesamten HMENU und nicht erst von der zweiten ebene des menüs (NAVILINKS.2) sind.
daher ist es hier jetzt zwar richtig geschrieben, aber nicht möglich anzugeben, weil es ja oben schon definiert ist.

dann hab ich dir noch einen vereinfachungstipp:
den code:

	subparts.NAVILINKS2= HMENU
	subparts.NAVILINKS2.special = directory
	subparts.NAVILINKS2.special.value = 260
	subparts.NAVILINKS2.1 = TMENU
	subparts.NAVILINKS2.1 {
	}

kann du einiges vereinfachen:

subparts.NAVILINKS2= HMENU	{
	special = directory
	special.value = 260
	1 = TMENU
	1 {
	...
	}
}

eine weiterführende abhandlung über den wert "entryLevel" gibts hier:
#53203

electric-x ·

Hallo stevee,

nochmals vielen Dank dass du mir das so erklärt hast 🙂.
Das mit entry"L"evel habe ich so weit kapiert.

Braucht man in meinem Fall ja wirklich nicht.

Was mit jedoch beunruhigt, dass der Code nun anscheinend fehlerfrei ist - er mir aber trotzdem kein Menu anzeigt *grml*

folgendes TS habe ich nun am Beispiel von NAVILINKS:

# Linke Navigation
   subparts.NAVILINKS= HMENU
   subparts.NAVILINKS.special = directory
   subparts.NAVILINKS.special.value = 258
   subparts.NAVILINKS.1 = TMENU
   subparts.NAVILINKS.1 {
      NO.ATagTitle.field = title
      NO.allWrap = <span class="navilinks"> | </span>
      ACT = 1
      ACT.ATagTitle.field = title
      ACT.allWrap = <span class="navilinks-aktiv"> | </span>

} 
   subparts.NAVILINKS.2 = TMENU
   subparts.NAVILINKS.2 {
      NO.ATagTitle.field = title
      NO.allWrap = <div class="navilinkssub"> | </div>
      ACT.ATagTitle.field = title
      ACT = 1
      ACT.allWrap = <div class="navilinkssub-aktiv"> | </div>
 }

Habe auch schon anstelle von directory die funktion list verwendet. dann wird auch das Submenu angezeigt - leider aber eine Ebene zu hoch.

im Typo3 ist es so aufgebaut

NAVILINKS (PID 258-)
- Produkte
-- Produkt 1
-- Produkt 2
-- Produkt 3
- Empfehlungen
- Wellnessreisen
-- Hamburg
-- Nürnberg
-- München

das ganze Menü soll aber bei Produkte starten - dass im frontend nur Produkte, Empfehlungen und Wellnessreisen angzeigt werden und nicht der Punkt NAVILINKS.