Menügestaltung unabhängig von Ebene [Gelöst]

  • corona corona
    Padawan
    0 x
    50 Beiträge
    0 Hilfreiche Beiträge
    27. 01. 2012, 21:37

    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:

    1. menu.left = COA
    2. menu.left {
    3. 15 = HMENU
    4. 15{
    5. entryLevel = 1
    6. wrap = <div class="menu_left">|</div>
    7. 1 = TMENU
    8. 1{
    9. wrap = <div class="menu_left_menu" ><ul id='menuList'>|</ul></div>
    10. noBlur =1
    11. ACT=1
    12.  
    13. NO{
    14. wrapItemAndSub = <li class='menuItem'>|</li>
    15. ATagParams = class='menuLink'
    16.  
    17. }
    18. ACT{
    19. wrapItemAndSub = <li class='menuItem'>|</li>
    20. ATagParams = class='menuLinkAct'
    21. }
    22. wrapItemAndSub = <li class='menuItem'>|</li>
    23. ATagParams = class='menuLinkAct'
    24. }
    25. }
    26. 2 = TMENU
    27. 2{
    28. noBlur = 1
    29. ACT = 1
    30. wrap = <ul class='submenuList'>|</ul>
    31. NO{
    32. wrapItemAndSub = <li class='submenuItem'>|</li>
    33. ATagParams = class='submenuLink'
    34. }
    35. ACT{
    36. wrapItemAndSub = <li class='submenuItem'>|</li>
    37. ATagParams = class='submenuLinkAct'
    38. }
    39. wrapItemAndSub = <li class='submenuItem'>|</li>
    40. ATagParams = class='submenuLinkAct'
    41. }
    42. }
    43. }
    44. }


  • hwt hwt
    Sternenflotten-Admiral
    0 x
    217 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2012, 12:52

    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.

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2012, 14:05

    Statt entryLevel=1 musst Du entryLevel=-1 schreiben.

  • corona corona
    Padawan
    0 x
    50 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2012, 15:00

    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?

  • hwt hwt
    Sternenflotten-Admiral
    0 x
    217 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2012, 15:30

    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:

    1. menu.left = COA
    2. menu.left {
    3. 10 = TEXT
    4. 10.value = ...
    5. 10.typolink ....
    6.  
    7. 15 = HMENU
    8. 15 {
    9. ....
    10. }

    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.

  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    28. 01. 2012, 19:33

    Hallo,

    wie wäre es, die Rootline zusätzlich zu checken. An Deinem menu.left nichts verändern, nur noch folgendes einfach dranhängen:

    1. [treeLevel = 2]
    2. menu.left.15.entryLevel = -1
    3. [end]
    4. [treeLevel = 3]
    5. menu.left.15.entryLevel = -2
    6. [end]

    VG,
    LuP

  • hwt hwt
    Sternenflotten-Admiral
    0 x
    217 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2012, 19:46

    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ß!

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2012, 20:42

    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.

  • hwt hwt
    Sternenflotten-Admiral
    0 x
    217 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2012, 21:01

    Oha, ja. Sorry!!

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

    Gruß!

  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    28. 01. 2012, 21:17

    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.

    [quote="corona"]
    Wenn ich Jetzt zum Beispiel Volleyball wähle, sieht das Menü genauso aus.
    [/quote]
    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