Zum Inhalt springen

Megamenü mit TYPO3

Erstellt am 19. Oktober 2013 · 3 Antworten · letzte Antwort am 21. Oktober 2013

Tags: TYPO3 6.x, Frage

leibnitz ·

Hallo,

bin gerade dabei an einem Megamenü für TYPO3. HTML/CSS ist alles schon fertig, aktuell bin ich dabei das Menü in TypoScript zu erstellen. Hier stehe ich vor einem kleinen Problem.

Das Menü ist im HTML Code so aufgebaut:

			<li class="has-submenu">
				<a href="#">Menüpunkt</a>
				<div class="subnav cf">
					<ul>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
					</ul>
					<ul>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
						<li><a href="#">Menüpunkt</a></li>
					</ul>
				</div>
			</li>

Beim Megamenü ist sozusagen das erste <ul> die linke Spalte und das zweite <ul> die Rechte.

Wie kann ich in TYPO3 sagen, dass er nach genau 8 Punkten ein neues <ul>|</ul> erstellen soll? evtl. mit Trennzeichen?

Mein aktuelles TypoScript sieht so aus:

  marks.MAINMENU = HMENU
  marks.MAINMENU {
    entryLevel = 0
    1 = TMENU
    1 {
      noBlur = 1
      expAll = 1
      wrap = <ul>|</ul>
      NO = 1
      NO {
        wrapItemAndSub = <li> | </li>
      }
      IFSUB = 1
      IFSUB {
        wrapItemAndSub = <li class="has-submenu"> |</li>
      }
    }
    2 = TMENU
    2 {
      noBlur = 1
      expAll = 1
      wrap = <div class="subnav cf"><ul>|</ul></div>
      NO = 1
      NO {
        wrapItemAndSub = <li>|</li>
      }
    }
  }

Grüße Leibnitz

sensus-media ·

Hi Leibnitz,

mit einem Trennzeichen bist du schon mal auf dem richtigen Weg.
Trennzeichen dort setzen wo das <ul> beendet werden soll.

Im TypoScript fügst du folgendes hinzu:

      SPC = 1
      SPC.before.dataWrap = </ul>|<ul>
      SPC.doNotShowLink = 1

Dann sollte dein HTML stimmen.

jenses ·

marks.MAINMENU.maxItems
und
marks.MAINMENU.begin
sind dein Freund.
Brauchst du 3 Spalten, musst du 3 HMENU-Objekte mit den entsprechenden Werten für maxItems und begin erzeugen, sinnvollerweise innerhalb eines COA's.

marks.MAINMENU = COA
marks.MAINMENU {
  10 = HMENU
  10 {
    begin = 1
    maxitems = 8
    ...
  }
  20 < .10
  20 {
    begin = 9
  }
  30 < .10
  30 {
    begin = 17
  }
}