Adi
Adi

Reputation: 301

stdWrap.outerwrap in Tmenu in typoscript

i have a question about the stdwrap in my menu. Here is my code:

ib.nav.main = HMENU
lib.nav.main {
1 = TMENU
1 {
    wrap =  <ul class="menu sitemenu-submenu-light sitemenu-extra-strong sitemenu-extra-no-arrows">|</ul>
    expAll = 1
    noBlur = 1
    NO = 1
    NO {
        wrapItemAndSub = <li>|</li>
        stdWrap.htmlSpecialChars = 1
        ATagParams = class="menu-item menu-separator"
    }
    ACT < .NO
    ACT = 1
    ACT{
       wrapItemAndSub = <li class="current">|</li>
   }
}
2 = TMENU
2 {
    expAll = 1
    stdWrap.outerWrap = <ul>|</ul>
    NO.allWrap = <li>|</li>
    noBlur = 1
    NO.ATagParams = class="menu-item"
    IFSUB = 1
    IFSUB {
        allWrap = <div class="mega-menu mega-section"><h4 data-role="title">|</h4></div>
        ATagParams = class="menu-item"
        before.cObject = LOAD_REGISTER
        before.cObject.hasSubmenu = TEXT
        before.cObject.hasSubmenu.value = 1
    }
    stdWrap.outerWrap.override.if.isTrue.data = REGISTER:hasSubmenu
    stdWrap.outerWrap.override = <div class="mega" data-columns="5">|</div>
    wrap.override.if.isTrue.data = REGISTER:hasSubmenu
}

As far as it goes (and as far as i understand it), will this code override my ul with a div, if there is a third level in the navigation. However, this seems to break my layout in the same way, as if i wrote this line without the override:

stdWrap.outerWrap = <div>|</div>

As i learned, i have to put "li" tags in an ul or typoscript breaks the layout and puts in random "li" tags everywhere. However, as i understand my override, it should only replace the ul with the div when there are submenus. It would be interesting to know, why typoscript is behaving this way, when i put "li" tags inside a div (which is wrong, i know ~ usually by templating this won't destroy my template though) and why my override is behaving in such a way. I thought maybe, that i have to reset the value of my Register as it always may be set but i didn't find a way to do so.

edit:

resulting html:

<nav id="navigation" class="site-main-nav">
   <ul class="-menu sitemenu-submenu-light sitemenu-extra-strong sitemenu-extra-no-arrows">
      <li class="current mega-menu"><a href="index.php?id=74" class="menu-item menu-separator">Unternehmen</a>
          <ul>
              <li><a href="index.php?id=78" class="menu-item">Stark im Verbund</a></li>
              <li><a href="index.php?id=90" class="menu-item">Unternehmensbild</a></li>
              <li><a href="index.php?id=91" class="menu-item">Auf einem Blick</a></li>
              <li><a href="index.php?id=92" class="menu-item">Zalhen / Daten / Fakten</a></li>
              <li><a href="index.php?id=93" class="menu-item">Mitbestimmung</a></li>
              <li><a href="index.php?id=94" class="menu-item">Soziale Verantwortung</a></li>
              <li><a href="index.php?id=95" class="menu-item">International</a></li>
              <li><a href="index.php?id=96" class="menu-item">Personen</a></li>
              <li><a href="index.php?id=97" class="menu-item">Imagebroschüre</a></li>
       </ul>
    </li>
    <li class="mega-menu"><a href="index.php?id=75" class="menu-item menu-separator">Mitglieder</a>
       <div class="-mega" data-columns="5">
          <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=82" class="menu-item">Warenprogramme</a></h4>
             <ul>
                 <li><a href="index.php?id=102" class="menu-item">Industriepartner</a></li>
                 <li><a href="index.php?id=103" class="menu-item">Starseller</a></li>
                  <li><a href="index.php?id=104" class="menu-item">Voting</a></li>
                  <li><a href="index.php?id=105" class="menu-item">Mandatmodell</a></li>
                  <li><a href="index.php?id=106" class="menu-item">Topseller</a></li>
                  <li><a href="index.php?id=107" class="menu-item">Listing</a></li>
                  <li><a href="index.php?id=108" class="menu-item">Sport</a></li>
                  <li><a href="index.php?id=109" class="menu-item">Exclusivmarken</a></li>
      </ul>
     </div>
     <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=98" class="menu-item">Messe-
         &amp; Ordercenter</a></h4>
         <ul>
            <li><a href="index.php?id=110" class="menu-item"> Campus</a></li>
            <li><a href="index.php?id=111" class="menu-item">Messen auf einem Blick</a></li>
                                    <li><a href="index.php?id=112" class="menu-item"> First Order</a></li>
                                    <li><a href="index.php?id=113" class="menu-item"> Fashion Days</a></li>
                                    <li><a href="index.php?id=114" class="menu-item"> auf der GDS</a></li>
                                    <li><a href="index.php?id=115" class="menu-item">Rundreise</a></li>
                                    <li><a href="index.php?id=116" class="menu-item">Termine</a></li>
                                </ul>
                            </div>
                            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=99" class="menu-item">Fachberatung</a>
                            </h4>
                                <ul>
                                    <li><a href="index.php?id=117" class="menu-item">Strategie/Sortiment</a></li>
                                    <li><a href="index.php?id=118" class="menu-item">Lieferantenanalyse</a></li>
                                    <li><a href="index.php?id=119" class="menu-item">Betriebsvergleich</a></li>
                                    <li><a href="index.php?id=120" class="menu-item">Seminare &amp; Trainings</a>
                                    </li>
                                    <li><a href="index.php?id=121" class="menu-item">Unternehmensberatung</a></li>
                                    <li><a href="index.php?id=122" class="menu-item">Steuerberatung</a></li>
                                    <li><a href="index.php?id=123" class="menu-item">Rechtsberatung</a></li>
                                    <li><a href="index.php?id=124" class="menu-item">ERFA-Tagung</a></li>
                                    <li><a href="index.php?id=125" class="menu-item">Prozessberatung</a></li>
                                </ul>
                            </div>
                            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=100" class="menu-item">Finanzen</a></h4>
                                <ul>
                                    <li><a href="index.php?id=126" class="menu-item">DZB ZR</a></li>
                                    <li><a href="index.php?id=127" class="menu-item">DZB Finanz</a></li>
                                    <li><a href="index.php?id=128" class="menu-item">DZB Cash</a></li>
                                </ul>
                            </div>
                            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=101" class="menu-item">Marketing</a></h4>
                                <ul>
                                    <li><a href="index.php?id=130" class="menu-item">Marketingbausteine</a></li>
                                    <li><a href="index.php?id=131" class="menu-item">Saisonwerbung</a></li>
                                    <li><a href="index.php?id=132" class="menu-item">Homepage-Baukasten</a></li>
                                </ul>
                            </div>
                        </div>
                    </li>
                    <li class="mega-menu"><a href="index.php?id=76" class="menu-item menu-separator">Industriepartner</a>

                        <div class="-mega" data-columns="5">
                            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=134" class="menu-item">Warenprogramme</a></h4>
                                <ul>
                                    <li><a href="index.php?id=142" class="menu-item">Industriepartner</a></li>
                                    <li><a href="index.php?id=141" class="menu-item">Starseller</a></li>
                                    <li><a href="index.php?id=140" class="menu-item">Voting</a></li>
                                    <li><a href="index.php?id=139" class="menu-item">Mandatmodell</a></li>
                                    <li><a href="index.php?id=138" class="menu-item">Topseller</a></li>
                                    <li><a href="index.php?id=137" class="menu-item">Listing</a></li>
                                    <li><a href="index.php?id=136" class="menu-item">Sport</a></li>
                                    <li><a href="index.php?id=135" class="menu-item">Exclusivmarken</a></li>
                                </ul>
                            </div>
                            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=143" class="menu-item">Messe- &amp; Ordercenter</a></h4>
                                <ul>
                                    <li><a href="index.php?id=150" class="menu-item"> Campus</a></li>
                                    <li><a href="index.php?id=149" class="menu-item">Messen auf einem Blick</a></li>
                                    <li><a href="index.php?id=148" class="menu-item"> First Order</a></li>
                                    <li><a href="index.php?id=147" class="menu-item"> Fashion Days</a></li>
                                    <li><a href="index.php?id=146" class="menu-item"> auf der GDS</a></li>
                                    <li><a href="index.php?id=145" class="menu-item">Rundreise</a></li>
                                    <li><a href="index.php?id=144" class="menu-item">Termine</a></li>
                                </ul>
                            </div>
                            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=151" class="menu-item">Dienstleistungen</a></h4>
                                <ul>
                                    <li><a href="index.php?id=153" class="menu-item">Industriepartner-Marketing</a>
                                    </li>
                                    <li><a href="index.php?id=154" class="menu-item">Prozessberatung</a></li>
                                    <li><a href="index.php?id=155" class="menu-item">Lieferantenförderung</a></li>
                                </ul>
                            </div>
                            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=152" class="menu-item">Finanzen</a></h4>
                                <ul>
                                    <li><a href="index.php?id=156" class="menu-item">Zentralregulierung</a></li>
                                </ul>
                            </div>
                        </div>
                    </li>
                    <li><a href="index.php?id=157" class="menu-item">Links</a></li>
                </ul>
            </nav>
        </div>
        <li class="mega-menu"><a href="index.php?id=83" class="menu-item menu-separator">News</a>
            <div class="-mega" data-columns="5"></div>
        </li>
        <li><a href="index.php?id=158" class="menu-item"> News</a></li>
        <li><a href="index.php?id=159" class="menu-item"> in der Presse</a></li>
        <li><a href="index.php?id=160" class="menu-item">Foto-&amp; Videogalerie</a></li>
        <li><a href="index.php?id=161" class="menu-item">Schuhverliebt</a></li>
    </div>
    <li class="mega-menu"><a href="index.php?id=77" class="menu-item menu-separator">Händlersuche</a></li>
    <li class="mega-menu"><a href="index.php?id=88" class="menu-item menu-separator">Karriere</a>

        <div class="-mega" data-columns="5"></div>
    </li>
    <li><a href="index.php?id=162" class="menu-item">Stellenangebote</a></li>
    <li><a href="index.php?id=163" class="menu-item">Die  als Arbeitgeber</a></li>
    <li><a href="index.php?id=164" class="menu-item">Ausbildung</a></li>
    <li><a href="index.php?id=165" class="menu-item">Duales Studium</a></li>
    <li><a href="index.php?id=166" class="menu-item">Direkteinstieg</a></li>

expected HTML:

<nav id="navigation" class="site-main-nav">
<ul class="-menu sitemenu-submenu-light sitemenu-extra-strong sitemenu-extra-no-arrows">
    <li class="current mega-menu"><a href="index.php?id=74" class="menu-item menu-separator">Unternehmen</a>
        <ul>
            <li><a href="index.php?id=78" class="menu-item">Stark im Verbund</a></li>
            <li><a href="index.php?id=90" class="menu-item">Unternehmensbild</a></li>
            <li><a href="index.php?id=91" class="menu-item">Auf einem Blick</a></li>
            <li><a href="index.php?id=92" class="menu-item">Zalhen / Daten / Fakten</a></li>
            <li><a href="index.php?id=93" class="menu-item">Mitbestimmung</a></li>
            <li><a href="index.php?id=94" class="menu-item">Soziale Verantwortung</a></li>
            <li><a href="index.php?id=95" class="menu-item">International</a></li>
            <li><a href="index.php?id=96" class="menu-item">Personen</a></li>
            <li><a href="index.php?id=97" class="menu-item">Imagebroschüre</a></li>
        </ul>
    </li>
    <li class="mega-menu"><a href="index.php?id=75" class="menu-item menu-separator">Mitglieder</a>
        <div class="-mega" data-columns="5">
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=82" class="menu-item">Warenprogramme</a>
            </h4>
                <ul>
                    <li><a href="index.php?id=102" class="menu-item">Industriepartner</a></li>
                    <li><a href="index.php?id=103" class="menu-item">Starseller</a></li>
                    <li><a href="index.php?id=104" class="menu-item">Voting</a></li>
                    <li><a href="index.php?id=105" class="menu-item">Mandatmodell</a></li>
                    <li><a href="index.php?id=106" class="menu-item">Topseller</a></li>
                    <li><a href="index.php?id=107" class="menu-item">Listing</a></li>
                    <li><a href="index.php?id=108" class="menu-item">Sport</a></li>
                    <li><a href="index.php?id=109" class="menu-item">Exclusivmarken</a></li>
                </ul>
            </div>
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=98" class="menu-item">Messe- &amp;
                Ordercenter</a></h4>
                <ul>
                    <li><a href="index.php?id=110" class="menu-item"> Campus</a></li>
                    <li><a href="index.php?id=111" class="menu-item">Messen auf einem Blick</a></li>
                    <li><a href="index.php?id=112" class="menu-item"> First Order</a></li>
                    <li><a href="index.php?id=113" class="menu-item"> Fashion Days</a></li>
                    <li><a href="index.php?id=114" class="menu-item"> auf der GDS</a></li>
                    <li><a href="index.php?id=115" class="menu-item">Rundreise</a></li>
                    <li><a href="index.php?id=116" class="menu-item">Termine</a></li>
                </ul>
            </div>
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=99" class="menu-item">Fachberatung</a>
            </h4>
                <ul>
                    <li><a href="index.php?id=117" class="menu-item">Strategie/Sortiment</a></li>
                    <li><a href="index.php?id=118" class="menu-item">Lieferantenanalyse</a></li>
                    <li><a href="index.php?id=119" class="menu-item">Betriebsvergleich</a></li>
                    <li><a href="index.php?id=120" class="menu-item">Seminare &amp; Trainings</a></li>
                    <li><a href="index.php?id=121" class="menu-item">Unternehmensberatung</a></li>
                    <li><a href="index.php?id=122" class="menu-item">Steuerberatung</a></li>
                    <li><a href="index.php?id=123" class="menu-item">Rechtsberatung</a></li>
                    <li><a href="index.php?id=124" class="menu-item">ERFA-Tagung</a></li>
                    <li><a href="index.php?id=125" class="menu-item">Prozessberatung</a></li>
                </ul>
            </div>
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=100" class="menu-item">Finanzen</a></h4>
                <ul>
                    <li><a href="index.php?id=126" class="menu-item">DZB ZR</a></li>
                    <li><a href="index.php?id=127" class="menu-item">DZB Finanz</a></li>
                    <li><a href="index.php?id=128" class="menu-item">DZB Cash</a></li>
                </ul>
            </div>
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=101" class="menu-item">Marketing</a></h4>
                <ul>
                    <li><a href="index.php?id=130" class="menu-item">Marketingbausteine</a></li>
                    <li><a href="index.php?id=131" class="menu-item">Saisonwerbung</a></li>
                    <li><a href="index.php?id=132" class="menu-item">Homepage-Baukasten</a></li>
                </ul>
            </div>
        </div>
    </li>
    <li class="mega-menu"><a href="index.php?id=76" class="menu-item menu-separator">Industriepartner</a>

        <div class="-mega" data-columns="5">
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=134" class="menu-item">Warenprogramme</a>
            </h4>
                <ul>
                    <li><a href="index.php?id=142" class="menu-item">Industriepartner</a></li>
                    <li><a href="index.php?id=141" class="menu-item">Starseller</a></li>
                    <li><a href="index.php?id=140" class="menu-item">Voting</a></li>
                    <li><a href="index.php?id=139" class="menu-item">Mandatmodell</a></li>
                    <li><a href="index.php?id=138" class="menu-item">Topseller</a></li>
                    <li><a href="index.php?id=137" class="menu-item">Listing</a></li>
                    <li><a href="index.php?id=136" class="menu-item">Sport</a></li>
                    <li><a href="index.php?id=135" class="menu-item">Exclusivmarken</a></li>
                </ul>
            </div>
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=143" class="menu-item">Messe- &amp;
                Ordercenter</a></h4>
                <ul>
                    <li><a href="index.php?id=150" class="menu-item"> Campus</a></li>
                    <li><a href="index.php?id=149" class="menu-item">Messen auf einem Blick</a></li>
                    <li><a href="index.php?id=148" class="menu-item"> First Order</a></li>
                    <li><a href="index.php?id=147" class="menu-item"> Fashion Days</a></li>
                    <li><a href="index.php?id=146" class="menu-item"> auf der GDS</a></li>
                    <li><a href="index.php?id=145" class="menu-item">Rundreise</a></li>
                    <li><a href="index.php?id=144" class="menu-item">Termine</a></li>
                </ul>
            </div>
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=151" class="menu-item">Dienstleistungen</a>
            </h4>
                <ul>
                    <li><a href="index.php?id=153" class="menu-item">Industriepartner-Marketing</a></li>
                    <li><a href="index.php?id=154" class="menu-item">Prozessberatung</a></li>
                    <li><a href="index.php?id=155" class="menu-item">Lieferantenförderung</a></li>
                </ul>
            </div>
            <div class="mega-menu -mega-section"><h4 data-role="title"><a href="index.php?id=152" class="menu-item">Finanzen</a></h4>
                <ul>
                    <li><a href="index.php?id=156" class="menu-item">Zentralregulierung</a></li>
                </ul>
            </div>
            <a href="index.php?id=157" class="menu-item">Links</a></div>
    </li>
    <li class="mega-menu"><a href="index.php?id=83" class="menu-item menu-separator">News</a>
        <div class="-mega" data-columns="5">
            <a href="index.php?id=158" class="menu-item"> News</a>
            <a href="index.php?id=159" class="menu-item"> in der Presse</a>
            <a href="index.php?id=160" class="menu-item">Foto-&amp;Videogalerie</a>
            <a href="index.php?id=161" class="menu-item">Schuhverliebt</a>
        </div>
    </li>
    <li class="mega-menu"><a href="index.php?id=77" class="menu-item menu-separator">Händlersuche</a></li>
    <li class="mega-menu"><a href="index.php?id=88" class="menu-item menu-separator">Karriere</a>

        <div class="-mega" data-columns="5">
            <a href="index.php?id=162" class="menu-item">Stellenangebote</a>
            <a href="index.php?id=163" class="menu-item">Die  als Arbeitgeber</a>
            <a href="index.php?id=164" class="menu-item">Ausbildung</a>
            <a href="index.php?id=165" class="menu-item">Duales Studium</a>
            <a href="index.php?id=166" class="menu-item">Direkteinstieg</a>
        </div>
    </li>
    <li class="mega-menu"><a href="index.php?id=89" class="menu-item menu-separator">Kontakt</a></li>
</ul>

Upvotes: 0

Views: 1131

Answers (1)

pgampe
pgampe

Reputation: 4578

You must have an <ul> around <li>. Please also mind the order of the stdWrap. You can find nice cheat sheets on the official documentation (stdWrap overview for cObjects and stdWrap overview for menu objects): http://docs.typo3.org/typo3cms/CheatSheets.html

After you update your question, here is the update to the answer.

TypoScript does not care about your HTML. TypoScript ist not smart at all. It will just create any string and you define. If your resulting HTML is wrong, that means your instructions to the page renderer (that is what TypoScript is) are wrong. You need to check what gets generated where and how this is attached together to form the final string that is returned to the browser.

Please post the broken and the expected HTML.

Upvotes: 1

Related Questions