Zum Inhalt springen

2. Menu ebene aktiv. nur aktives element anzeigen,

Erstellt am 20. November 2013 · 6 Antworten · letzte Antwort am 20. November 2013

Tags: Frage

nevsred ·

Hallo

ich habe ein umfangreiches Menü mit einer herausfordernden Menü-Konzept.

im 1. Level sind die übergreifenden Punkte
im 2. Level einzelne "Landingpages"

nun soll das 1. Level ausgeblendet werden und ein Link zur Startseite erscheinen
Ein weiteres Menü wird angezeigt und stellt dann die Unterseiten des aktiven Punkts von Level 2 als 3. und 4. Ebene dar.

kann mir jemand da nen Ansatz nennen. wie man das machen würde.
dem aktiven menüpunkt eine klasse zuweisen und mit javascript dann die anderen Sachen ein und ausblenden?

gibt es ne schicke TS Idee?
Das ganze soll auch ziemlich dynamisch sein, da weitere Punkte in Level 2 hinzu kommen können.

Grüße Sven

Chrissli ·

Es gibt hier diverse Conditions die dir weiterhelfen könnten.
Siehe "pidInRootLine" oder "pidInList" oder auch "treeLevel"

etux ·

Conditions kann man zwar auch verwenden, die eigene „Conditions“ vom HMENU dürften aber wesentlich locker die Aufgabe lösen – aus meiner Sicht ist HMENU das mächtigste Werkzeug von TYPO3.
Hier ein Beispiel, was nicht auf Anhieb funktionieren muss - ich kenne den Seitenbaum nicht und getestet habe ich es auch nicht. o.O
Daher müsste was nicht stimmt, angepasst werden. Kürzer und „eleganter“ dürfte der Code auch hin zu bekommen sein.

lib.menu = COA
lib.menu {
  10 = COA
  10 {
    if.isFalse.field = pid
    10 = HMENU
    10 {
      1 = TMENU
      1 {
        wrap = <ul>|</ul>
        NO {
          allWrap = <li>|</li>
        }
      }
    }
  }
  20 = COA
  20 {
    if.isTrue.field = pid
    10 = HMENU
    10 {
      special = list
      1 = TMENU
      1 {
        wrap = <p>|</p>
        NO {
          allWrap = |
        }
      }
    }
  }
  30 = HMENU
  30 {
    entryLevel = 1
    1 = TMENU
    1 {
      expAll = 1
      wrap = <ul>|</ul>
      NO {
        wrapItemAndSub = <li>|</li>
      }
    }
    2 < .1
    3 < .1
  }
}
etux ·

Nachtrag:
Die Konfiguration von Oben habe ich gerade getestet. Bei mir funktioniert sie. Aber auch die folgende:

lib.menu = COA
lib.menu {
  10 = HMENU
  10 {
    special = list
    1 = TMENU
    1 {
      wrap = <ul>|</ul>
      NO {
        allWrap = <li>|</li>
      }
      CUR = 1
      CUR {
        doNotShowLink = 1
        after.cObject = HMENU
        after.cObject {
          1 = TMENU
          1 {
            NO {
              allWrap = <li>|</li>
            }
          }
        }
      }
    }
  }
  20 = HMENU
  20 {
    entryLevel = 1
    1 = TMENU
    1 {
      expAll = 1
      wrap = <ul>|</ul>
      NO {
        wrapItemAndSub = <li>|</li>
      }
    }
    2 < .1
    3 < .1
  }
}
etux ·

Danke Crissli, ganz lieb von Dir. 🙂
Hehe. Ein Ratsmitglied müsste deutlich mehr darauf haben als ein Jedi-Meister. Oder mindestens genau so viel.
Und das trifft bei Dir zu. Auch wenn Du bescheidener Weise vom Gegenteil zu überzeugen versuchst. 😉

nevsred ·

krass, cool. vielen Dank. ich werde es ausprobieren und dann verändern wenn es nicht 100% passt.
aber das ist mehr als ich erwartet habe. Danke.
Conditions sind mir zu strict. also bei neuer Unterseite muss man wieder conditions neu anlegen.
mit tMENU finde ich schon super.