TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

Menügestaltung unabhängig von Ebene


Autor Nachricht
Verfasst am: 27. 01. 2012 [21:37]
corona
Themenersteller
Dabei seit: 04.07.2011
Beiträge: 50
Hallo zusammen,

es ist schwierig zu beschreiben, was ich möchte.
Und zwar habe in meiner Webseite ein Topmenü und ein Leftmenü.
Das Topmenü ist ein Megadropdown und das Seitenmenü ergänzt dieses.

Ich habe also zB folgende Webseitenstruktur:
1. Ebene - 2. Ebene - 3.Ebene
* Home
* Sport - Abteilung A - Volleyball
* Sport - Abteilung B - Turnen
* Sport - Abteilung B - Tanzen

Jetzt ist es so, dass im Seitenmenü 2 Ebenen angezeigt werden. Jeweils anders dargestellt.

Also ab der 2. Ebene
Wenn zB Sport gewählt ist, dann wird im Leftmenü gezeigt:
Abteilung A
- Volleyball
Abteilung B
- Turnen
- Tanzen

Wenn ich Jetzt zum Beispiel Volleyball wähle, sieht das Menü genauso aus.

Was ich allerdings erreichen will, ist, dass Volleyball dann der oberste Eintrag im linken Menü wäre. Ich weiß leider nicht, wie ich es besser beschreiben soll.
Das Menü sollte dann aussehen:
Volleyball

Wenn ich Tanzen wähle, soll es wie folgt aussehen:
Turnen
Tanzen

Mit anderen Worten. Immer die Ebene, die gewählt ist, soll die höchste sein. Wie kann ich das erreichen?

DAnke für jede Hilfe


TS meines Menüs:
TYPOSCRIPT
menu.left = COA
menu.left {  
  	15 = HMENU
  	15{
    		entryLevel = 1
   	 	wrap = <div class="menu_left">|</div>
    		1 = TMENU
    		1{
      			wrap = <div class="menu_left_menu" ><ul id='menuList'>|</ul></div>
      			noBlur =1
      			ACT=1
      			ACTIFSUB = 1
 
      			NO{
       				wrapItemAndSub = <li class='menuItem'>|</li>
        			ATagParams = class='menuLink'
 
      			} 
 	     		ACT{
        			wrapItemAndSub = <li class='menuItem'>|</li>
        			ATagParams = class='menuLinkAct'
     	 		}
      			ACTIFSUB{
        			wrapItemAndSub = <li class='menuItem'>|</li>
        			ATagParams = class='menuLinkAct'
      			}
   	 	}
    		2 = TMENU
    		2{
      			noBlur = 1
	      		ACT = 1
      			ACTIFSUB = 1
      			wrap = <ul class='submenuList'>|</ul>
	      		NO{
        			wrapItemAndSub = <li class='submenuItem'>|</li>
        			ATagParams = class='submenuLink'
     			}
  	    		ACT{
        			wrapItemAndSub = <li class='submenuItem'>|</li>
        			ATagParams = class='submenuLinkAct'
      			}
      			ACTIFSUB{
        			wrapItemAndSub = <li class='submenuItem'>|</li>
        			ATagParams = class='submenuLinkAct'
      			}
    		}
	}
}
Profil
Verfasst am: 28. 01. 2012 [12:52]
hwt
Dabei seit: 11.03.2006
Beiträge: 182
Hallo,

da gibt es mehrere Möglichkeiten.

Du könntest z.B. den aktuellen Menüpunkt per CSS oben positionieren.

Alternativ könntest du das Menü auch per Typoscript aus einem Typolink auf die aktuelle Seite + Menü exklusive des aktuellen Menüpunktes aufbauen.

Freelancer für TYPO3 | Entwicklung, Schulung, Projektmanagement, Support
Profil
Verfasst am: 28. 01. 2012 [14:05]
igorshmigor
Dabei seit: 17.03.2006
Beiträge: 888
Statt entryLevel=1 musst Du entryLevel=-1 schreiben.

ProfilWWW
Verfasst am: 28. 01. 2012 [15:00]
corona
Themenersteller
Dabei seit: 04.07.2011
Beiträge: 50
Das entryLevel=-1 funktioniert nicht so ganz.

Wenn ich zB auf Tanzen klicke, dann geht das Menü komplett weg und es bleibt nicht nur Tanzen und Turnen stehen.
Es soll möglich sein, dass dann auch zu einem anderen Menüpunkt dieser Ebene gesprungen werden kann in dem Menü.

Ich verstehe nur Bahnhof, was hwt geschrieben hat. Kann ich ein Beispiel kriegen?

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 28.01.2012 um 15:02.]
Profil
Verfasst am: 28. 01. 2012 [15:30]
hwt
Dabei seit: 11.03.2006
Beiträge: 182
Hallo,

entryLevel legt ja auch die Einstiegsebene fest. Die betroffenen Seiten liegen ja aber auf der gleichen Ebene.

Also eine Variante ist, dem aktuellen Menüpunkt CSS-Styles zu geben, die ihn über den anderen positionieren.

Eine andere wäre es die aktuelle Seite als Typolink vor dem Menü einzufügen nach folgendem Muster:
TYPOSCRIPT
menu.left = COA
menu.left {  
          10 = TEXT
          10.value = ...
          10.typolink ....
 
          15 = HMENU
          15 {
             ....
          }

Dabei solltest du aber beachten, dass du dein div und ul an den entsprechenden Stellen wrapst und natürlich noch den aktuellen Menüpunkt an seiner Originaloosition mit CSS ausblendest.

Freelancer für TYPO3 | Entwicklung, Schulung, Projektmanagement, Support
Profil
Verfasst am: 28. 01. 2012 [19:33]
LuP
Dabei seit: 12.04.2007
Beiträge: 279
Hallo,

wie wäre es, die Rootline zusätzlich zu checken. An Deinem menu.left nichts verändern, nur noch folgendes einfach dranhängen:
TYPOSCRIPT
[treeLevel = 2]
menu.left.15.entryLevel = -1
[end]
[treeLevel = 3]
menu.left.15.entryLevel = -2
[end]

VG,
LuP
Profil
Verfasst am: 28. 01. 2012 [19:46]
hwt
Dabei seit: 11.03.2006
Beiträge: 182
Hallo LuP,

wie soll das denn bitte den aktuellen Menüpunkt der dritten Ebene über die anderen der dritten Ebene setzen?

"entryLevel" gibt doch nur an, ab welcher Tiefe das Submenü dargestellt wird.

Gruß!

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 28.01.2012 um 19:46.]

Freelancer für TYPO3 | Entwicklung, Schulung, Projektmanagement, Support
Profil
Verfasst am: 28. 01. 2012 [20:42]
igorshmigor
Dabei seit: 17.03.2006
Beiträge: 888
hwt, wenn Du die Eingangsfrage nochmal liest wirst Du vielleicht feststellen, dass es genau darum geht. Er will nicht die Reihenfolge der Darstellung ändern, sondern die Einstiegsebene festlegen.
Ich denke es sollte so gehen, wie LuP geschrieben hat.

ProfilWWW
Verfasst am: 28. 01. 2012 [21:01]
hwt
Dabei seit: 11.03.2006
Beiträge: 182
Oha, ja. Sorry!!

Hatte das mehrfach gelesen aber trotzdem ganz anders verstanden. Ja vor dem Hintergrund habt ihr natürlich recht.

Gruß!

Freelancer für TYPO3 | Entwicklung, Schulung, Projektmanagement, Support
Profil
Verfasst am: 28. 01. 2012 [21:17]
LuP
Dabei seit: 12.04.2007
Beiträge: 279
entryLevel definiert, ab welchem Level in der Rootline das Menü starten soll.

Mit entryLevel = 0 werden Menüs der ersten Ebene gerendert.
Mit entryLevel = 1 werden Menüs der zweiten Ebene gerendert.
Bei negativem Wert wird das entryLevel von hinten an in der Rootline gewählt.

corona schrieb:

Wenn ich Jetzt zum Beispiel Volleyball wähle, sieht das Menü genauso aus.

Gewählt ist hier die 3. Ebene, gerendert wird aber Menüs der 2. Ebene [entryLevel=1]. Wenn wie im vorliegenden Fall gewünscht, nur Menüs auf derselben Ebene gerendert werden soll und die 3. Ebene die äußerte wäre, müsste nach meiner Logik, wenn [entryLevel=-1] das äußerte Level angibt, das entryLevel in der Rootline rückwärts um eine Ebene runter [entryLevel=-2], dann wäre man am Ziel.

VG,
LuP
Profil