Zum Inhalt springen

räumliche Trennung Hauptmenu - Untermenu

Erstellt am 23. November 2013 · 2 Antworten · letzte Antwort am 18. Dezember 2013

Tags: TYPO3 4, Frage

SteffenKaPunkt ·

Hallo Leute,

ich habe auf einer Webseite die räumliche Trennung des Haupt- und des Untermenus eingebaut. Funktioniert wunderbar. Habe jetzt aber das Problem, dass beim Untermenu Als Überschrift der jeweilig zugehörige Hauptmenüpunkt angezeigt werden soll.
Wie kann ich das bewerkstelligen?

Mein Submenu sieht in etwa so hier aus:

lib.MENU_RECHTS = HMENU
lib.MENU_RECHTS {
  #gesamten rechten Content einfassen
  stdWrap.wrap = <div id="menu-rechts">|</div>
  stdWrap.required = 1 
  special.value = 258
  entryLevel = 2
  1 = TMENU
  1 {
    ...
  }
}
etux ·

Es gibt einige Lösungswege. Allein die HMENU Lösung kann unterschiedlich konfiguriert werden – ein Menü oder zwei in einem COA usw. Man sollte aber die TYPO3 Ref. schon kennen. 😉

Gleichzeitig „special.value“ und „entryLevel“ zu benutzen, mach wenig Sinn, bzw. geht nicht. Auch dann nicht, wenn da noch „special = list | directory“ stünde. 😉

Die Menü-rechts sollte auch bei der ersten Ebene anfangen.
Erstmal werden die NO-Zustände mit „doNotShowLink = 1“ ausgeschaltet.
Damit die Menu-Items der ersten Ebene nur dann angezeigt werden, wenn sie Unterseiten haben, definierst Du den Menü-Zustand „ACTIFSUB“. Beispielsweise in einem h2-Element (linkWrap = h2 | /h2) und ohne Verlinkung (doNotLinkIt = 1).
Jetzt könntest Du hier (beim ACTIFSUB) die weiteren Ebenen anhängen - "after.cObject = HMENU" als directory-Menü. Die directory-ID ist dann immer die aktuelle UID (special.value.field = uid).

Du könntest Dir aber auch statt dessen, ein COA bauen.
Zuerst wird die Überschrift konfiguriert. Hier stehen Dir mehrere Möglichkeiten zur Verfügung (auch als HMENU, s.O.).
Die Unterseiten dann als HMENU (entryLevel = 1).
Usw. ...

etux ·

Nachtrag:
In einem anderen Forum habe ich so eben den Thread hier als mögliche Lösung zum dortigen Problem verlinkt. Daher ergänze ich mein Lösungsvorschlag von oben mit zwei Code-Beispielen:

lib.MENU_RECHTS = HMENU
lib.MENU_RECHTS {
  special = directory
  special.value = 258
  stdWrap {
    required = 1
    wrap = <div id="menu-rechts">|</div>
  }
  1 = TMENU
  1 {
    expAll = 1
    NO {
      doNotShowLink = 1
    }
    ACTIFSUB = 1
    ACTIFSUB {
      linkWrap = <h2>|</h2>
      doNotLinkIt = 1
      after.cObject = HMENU
      after.cObject {
        special = directory
        special.value.field = uid
        1 = TMENU
        1 {
          expAll = 1
          wrap = <ul>|</ul>
          NO {
            wrapItemAndSub = <li>|</li>
          }
        }
        /* weitere Levels
        2 < .1
        3 < .1
        */
      }
    }
  }
}

... oder

lib.MENU_RECHTS = COA
lib.MENU_RECHTS {
  stdWrap {
    required = 1
    wrap = <div id="menu-rechts">|</div>
  }
  10 = HMENU
  10 {
    special = directory
    special.value = 258
    1 = TMENU
    1 {
      expAll = 1
      NO {
        doNotShowLink = 1
      }
      ACTIFSUB = 1
      ACTIFSUB {
        allWrap = <h2>|</h2>
        doNotLinkIt = 1
      }
    }
  }
  20 = HMENU
  20 {
    entryLevel = 1
    1 = TMENU
    1 {
      expAll = 1
      wrap = <ul>|</ul>
      NO {
        wrapItemAndSub = <li>|</li>
      }
    }
    /* weitere Levels
    2 < .1
    3 < .1
    */
  }
}