[Frage] Flyout Menu / Klassen für Untermenüs nummerieren TYPO3-Version: -

  • tecnique tecnique
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    22. 01. 2014, 22:41

    Hallo zusammen,

    Ich bin neu hier in diesem Forum und ebenso neu sind auch meine Erfahrungen mit Typo3 (blutiger Anfänger). Ich kenne mich gut mit CSS3, HTML5, JavaScript, PHP und JAVA - Programmierung aus, aber mit Typo 3 beschäftige ich mich erst seit ein paar Tagen (ein Kunde will das so).

    Als Übung erstelle ich gerade ein responsive Template in Typo3.

    Das HTML - Template ist fertig, die CSS - Dateien sind erstellt, alles ist in Typo3 eingepflegt.

    Mein Problem tritt beim Flyout - Menü auf. Dieses habe ich im HTML - Template bereits fertig entwickelt (reines HTML und CSS). Ich möchte kein fertiges Menü von Typo3 nutzen.

    Für das Menü muss ich folgende HTML - Struktur erzeugen:

    1. <div id='menu'>
    2. <ul>
    3. <li><a href='./'>Home</a></li>
    4. <li><a href='./'>Hauptlink 2</a>
    5. <ul class='sub2'>
    6. <li><a href=''>Unterlink 2.1</a></li>
    7. <li><a href=''>Unterlink 2.2</a></li>
    8. </ul>
    9. </li>
    10. <li><a href='./'>Hauptlink 3</a></li>
    11. <li><a href='./'>Hauptlink 4</a>
    12. <ul class='sub4'>
    13. <li><a href=''>Unterlink 2.1</a></li>
    14. <li><a href=''>Unterlink 2.2</a></li>
    15. </ul>
    16. </li>
    17. </ul>
    18. </div>

    So sieht mein TypoScript hierfür aus:
    [code]

    1. subparts.MENU = HMENU
    2. subparts.MENU{
    3. wrap = <ul>|</ul>
    4. 1 = TMENU
    5. 1.expAll = 1
    6. 1.NO.wrapItemAndSub = <li>|</li>
    7. 1.IFSUB = 1
    8. 1.IFSUB < .1.NO
    9. 1.IFSUB.ATagParams = class='aMore'
    10. 1.CUR = 1
    11. 1.CUR < .1.NO
    12. # Hier muss irgendwie mitgezählt werden!?
    13.  
    14. 2 = TMENU
    15. 2.expAll = 1
    16. # Hier muss der Zähler irgendwie wieder ausgegeben werden!?
    17. 2.wrap = <ul class='sub'>|</ul>
    18. #2.stdWrap.dataWrap = <ul class="sub{register:count_HMENU_MENUOBJ}">|</ul>
    19. 2.NO.wrapItemAndSub = <li>|</li>
    20. 2.CUR = 1
    21. 2.CUR < .2.NO
    22. }
    [/code]

    Damit bekomme ich annähernd die oben beschriebene HTML - Struktur.
    Nur die Klassen für die Untermenüliste (class='sub[1-4]') bekomme ich nicht hin.
    Diese müssen durchnummeriert sein. Es müssen die Hauptmenüpunkte gezählt werden und dieser Zähler muss dann als Nummer der Klasse verwendet werden.

    Also [i]unbedingt[/i] so:
    Hauptlink 1
    Hauptlink 2 -> Untermenü (class='[b]sub2[/b]')
    Hauptlink 3
    Hauptlink 4 -> Untermenü (class='[b]sub4[/b]')

    Und [i]nicht[/i] so:
    Hauptlink 1
    Hauptlink 2 -> Untermenü (class='[b]sub1[/b]')
    Hauptlink 3
    Hauptlink 4 -> Untermenü (class='[b]sub2[/b]')

    Mein Ansatz ist nun, den Hauptmenüpunkten einen Counter zu geben und diesen in den Untermenüs wieder auszugeben. Allerdings scheitere ich daran kläglich. Alle bisherigen Lösungsansätze haben nicht das gewünschte Ergebniss erzeugt.

    Vielen Dank schon im Voraus für Eure Hilfe!

    Gruß Toby


  • 1
  • tecnique tecnique
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    23. 01. 2014, 05:06

    Stunden später...

    Habe die Lösung gefunden.
    Das Menu in ein COA gepackt und dann in der ersten Ebene in TMENU.1.NO einen Counter eingefügt.
    Warum das funktioniert weiß ich nicht, aber es funktioniert ;-)

    1. subparts.MENU = COA
    2. subparts.MENU{
    3. 10 = HMENU
    4. 10{
    5. wrap = <ul>|</ul>
    6. 1 = TMENU
    7. 1.expAll = 1
    8. 1.NO.wrapItemAndSub = <li>|</li>
    9. 1.NO{
    10. before.cObject{
    11. mainMenuNumber.cObject=TEXT
    12. mainMenuNumber.cObject{
    13. value={register:mainMenuNumber}+1
    14. }
    15. mainMenuNumber.prioriCalc=intval
    16. }
    17. }
    18. 1.IFSUB = 1
    19. 1.IFSUB < .1.NO
    20. 1.IFSUB.ATagParams = class='aMore'
    21. 1.CUR = 1
    22. 1.CUR < .1.NO
    23.  
    24. 2 = TMENU
    25. 2.expAll = 1
    26. #2.wrap = <ul class='sub'>|</ul>
    27. #2.insertData = 1
    28. 2.stdWrap.dataWrap = <ul class="sub{register:mainMenuNumber}">|</ul>
    29. 2.NO.wrapItemAndSub = <li>|</li>
    30. 2.CUR = 1
    31. 2.CUR < .2.NO
    32. }
    33. }

  • 1