Zum Inhalt springen

Schwierigkeiten bei der Menu Realisierung

Erstellt am 4. Juni 2007 · 9 Antworten · letzte Antwort am 5. Juni 2007

Tags: Frage

mab82 ·

hallo versuche seit tagen ein menu aus einer Vorlage zu Realisieren, leider habe ich es nicht hinbekommen.

Also die Vorlage sieht wie folgt aus:

<ul id="nav">
						<li class="active"><a href="#">Wissen</a>
							<ul class="zweiteEbene">
								<li><a href="#">Unterpunkt</a>
									<ul class="dritteEbene">
										<li><a href="#">Unterpunkt_2</a></li>
										<li><a href="#">Unterpunkt_3</a></li>
									</ul>
								</li>
								<li><a href="#">Förderung</a></li>
								<li><a href="#">Rechtsformen</a></li>
								<li><a href="#">Geschäftsidee</a></li>
								<li><a href="#">Franchise</a></li>
								<li class="last"><a href="#">Service</a></li>
							</ul>
						</li>
						<li><a href="#">aktuelles</a></li>
						<li><a href="#">Gastbeiträge</a></li>
						<li><a href="#">Nachrichten</a></li>
						<li><a href="#">Forum</a></li>
						<li class="last"><a href="#">Tools</a></li>
					</ul>

Würde um freuen wenn ihr mir helfen könntet.

Unbekannter Benutzer ·

Was hast Du denn schon für TypoScript versucht?

Grundsätzlich ein paar Tipps:

  • das machst Du mit einem Standard HMENU - TMENU

  • die uls machst Du über wrap, die lis mit allWrap, jeweils je Ebene

  • die active Unterscheidung machst Du über den Menüzustand ACT bzw. CUR

  • den "last"-Eintrag bekommst Du beim allWrap über optionSplit hin

Mit diesen Stichwörtern müsstest Du Dir die Infos eigentlich gut aus der TypoScript Referenz zusammensuchen können.

https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Index.html

Viele Grüße,
Niki

mab82 ·

Hatte folgendes gemacht gehabt:

#ERSTELLEN DER NAVIGATION
#Erste Ebene links 
temp.menu_1 = HMENU	
temp.menu_1.1 = TMENU

temp.menu_1 = HMENU	
temp.menu_1.1 = TMENU

temp.menu_1.1.special.entryLevel = -1
temp.menu_1.1 {
NO.allWrap = <li>|</li> |*||*| <li class="last"> | </li>
CUR = 1
CUR.allWrap = <li class="active">|</li> |*||*| <li class="active last"> | </li>
ACTIFSUB = 1
ACTIFSUB.allWrap = <li class="active">|</li> |*||*| <li class="active last"> | </li>
noBlur = 1
special = rootline
special.range = 2 | -1
}


#Zweite Ebene 
temp.MENU2 = HMENU
temp.MENU2 {
	entryLevel = 1
	wrap =  |
   
   1 = TMENU
	 1 {
  		wrap = |
			expAll = 1
			NO.ATagTitle.field = subtitle//title
			NO.wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li class="last">|</li>
			CUR = 1
			CUR.wrapItemAndSub = <li class="active">|</li>|*|<li class="active">|</li>|*|<li class="active last">|</li>
			ACTIFSUB = 1
			ACTIFSUB.wrapItemAndSub = <li class="active">|</li>|*|<li class="active">|</li>|*|<li class="active last">|</li>
		}
		2 = TMENU 
		2{
			wrap = <ul class="dritteMenuEbene active"> | </ul>
                        expAll = 1
                        NO.ATagTitle.field = subtitle//title
                        NO.wrapItemAndSub = <li> | </li>
		}
}

Das Template mit den Submarkern sieht wie folt aus:

<ul id="nav">
					<!-- ###menu_1###  --> <!-- ###menu_1###  -->
					<li class="active">
						<ul class="zweiteMenuEbene">
							<!-- ###MENU2### --> <!-- ###MENU2### -->
						</ul>
					</li>
				</ul>

Die Struktur mit der zweitenEbene und der drittenEbene ist wie in der Vorlage geworden, nur die Verknüpfung von der 1.Ebene mit der zweitenEbene hat nicht funktioniert, probiere seit stunden nur weiß nicht mehr was ich machen kann

Unbekannter Benutzer ·

mach ein zusammenhängendes Menü

also nur ein Marker "###menu_1###" im HTML Template, und dann das Menü aufbauen mit

menu_1 = HMENU
menu_1 {
     1 = TMENU
     1.NO etc etc

     2 = TMENU
     2.NO etc etc
}

Ansonsten schaut das schon gar nicht so verkehrt aus was Du gemacht hast

viele Grüße
Niki

mab82 ·

Schau mal habe es jetzt so umgeändert das alles in einem ist, wie du es vorgeschlagen hast:

temp.menu_1 = HMENU
   
temp.menu_1 {
	1 = TMENU
	1 {
	 		special.entryLevel = -1
			NO.allWrap = <li>|</li> |*||*| <li class="last"> | </li>
			CUR = 1
			CUR.allWrap = <li class="active">|</li> |*||*| <li class="active last"> | </li>
			ACTIFSUB = 1
			ACTIFSUB.allWrap = <li class="active">|</li> |*||*| <li class="active last"> | </li>
			noBlur = 1
			special = rootline
			special.range = 2 | -1
	}
	2 = TMENU
	2 {
			entryLevel = 1
			wrap = <ul class="zweiteMenuEbene">|</ul>
			expAll = 1
			NO.ATagTitle.field = subtitle//title
			NO.wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li class="last">|</li>
			CUR = 1
			CUR.wrapItemAndSub = <li class="active">|</li>|*|<li class="active">|</li>|*|<li class="active last">|</li>
			ACTIFSUB = 1
			ACTIFSUB.wrapItemAndSub = <li class="active">|</li>|*|<li class="active">|</li>|*|<li class="active last">|</li>
	 }
	 3 = TMENU 
	 3 {
	 			wrap = <ul class="dritteMenuEbene active"> | </ul>
				expAll = 1
				NO.ATagTitle.field = subtitle//title
				NO.wrapItemAndSub = <li> | </li>
	 }
}

Das Template sieht jetzt so aus:

<div class="navigation">
				<ul id="nav">
					<!-- ###menu_1###  --> <!-- ###menu_1###  -->
</ul>
</div>

Und die ausgabe so :

<div class="navigation">
    <ul id="nav">
      <li class="active">Erstes ELem Ebene 1</li>
      <ul class="zweiteMenuEbene">
       <li class="active">Wissen
         <ul class="dritteMenuEbene">
             <li class="active">Element der 3.Ebene</li>
          </ul>
        </li>
       </ul>
    </ul>
</div>

Die verkettung zwischen 2. und 3. ebene ist perfekt🙂
Aber zwischen der 1. und der 2. eben funktioniert es nicht so ganz.
Also das </li> nach dem Erstes Elem Ebene sollte nach der <ul class="zweiteMenuEbene"> zu gehen

Unbekannter Benutzer ·

mach doch mal ohne das special entrylevel das brauchts eigentlich nicht. Menü Template einfach im root aufhängen dann arbeitet es sich automatisch nach unten durch.

Viele Grüße!
Niki

mab82 ·

hi niki,

es hat leider nicht Funktioniert, habe alles was mit entrylevel und special zu tun
hat schritt für schritt auskommentiert.
Aber das ergebnis blieb gleich also keine Änderung.
Habe leider keine Hoffnung sowie ne Idee das dies Lösbar ist .

Würde mich aber um eure Unterstützung freuen...

just2b ·

Hallo,

LI mit allWrap ist natürlich blödsinn. Nimm auch in der 1. Ebene NO.wrapItemAndSub

georg