Menü mit first & last klassen aber nur 1 item vorhanden

  • beo6 beo6
    Padawan
    0 x
    45 Beiträge
    1 Hilfreiche Beiträge
    07. 12. 2011, 12:31

    Hallo.

    Ich habe ein ganz kleines und ich denke/hoffe ein relativ einfach zu lösendes problem.

    Das erste Menü-Item und das letzte sollen jeweils eine andere Klasse haben.
    Das funktioniert sehr gut.

    1. lib.content.subnav.10.1 {
    2. NO.wrapItemAndSub = <li class="first">|</li>|*|<li>|</li>|*|<li class="last">|</li>
    3. }

    Nun gibt es jedoch auf ein paar wenigen Seiten nur eine einzige Unterseite wordurch natürlich die Klasse für das letzte Menü-Item von typo3 genommen wird.

    Ich bräuchte für diesen sonderfall jedoch am besten wiederrum eine ganz andere klasse.

    bzw. beide klassen da dieses Item ja sowohl letztes als auch erstes item ist.

    1. lib.content.subnav.10.1 {
    2. NO.wrapItemAndSub = <li class="first last">|</li>
    3. }

    Vielen dank für jeden Hinweis.


  • 1
  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    07. 12. 2011, 12:43

    So müsste es gehen:

    1. lib.content.subnav.10.1 {
    2. NO.wrapItemAndSub = <li class="first last">|</li>
    3. IFSUB.wrapItemAndSub = <li class="first">|</li>|*|<li>|</li>|*|<li class="last">|</li>
    4. }

  • beo6 beo6
    Padawan
    0 x
    45 Beiträge
    1 Hilfreiche Beiträge
    07. 12. 2011, 13:07

    Vielen Dank.

    Aber leider bekommen so die Items in den Menüs in denen mehrere Menü-Items vorhanden sind dann alle

    1. <li class="first last">

    Wenn ich das richtig verstehe würde das doch auch nur funktionieren wenn die Menüitems dann auch wieder jeweils Subpages haben. Und noch eine weitere Navigations-Ebene wollte ich eigentlich nicht.

    Oder verstehe ich das falsch?

    Vielleicht ist das auch abhängig davon das ich für das HMENU

    1. special = directory

    und
    1. special.value.data = leveluid:2
    2. entryLevel = 2

    gesetzt habe?

    Kann ich nicht "einfach" irgendwie die subpages zählen und dann mit einer conditional abfrage wrapItemAndSub überschreiben wenn es nur 1 item gibt?

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    07. 12. 2011, 13:30

    Ach natürlich, entschuldige, Denkfehler. Hast recht, das klappt natürlich nicht.

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    07. 12. 2011, 13:37

    Ich glaube mit data=register:count_menuItems kannst Du dynamisch auslesen, wieviele Menüpunkte es insgesamt im aktuellen Menü gibt. Vielleicht kannst Du das für eine if-Abfrage verwenden.

  • herrhamann herrhaman...
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    07. 12. 2011, 15:30

    Und so funktioniert es mit register:count_menuitems und der if-Abfrage. Allerdings wird hierbei die CSS-Klasse im a-Tag gesetzt.

    1. lib.content.subnav.10.1.NO {
    2.  
    3. wrapItemAndSub = <li>|</li>
    4. ATagParams.cObject = COA
    5. ATagParams.cObject {
    6. # Es ist nur ein Menupunkt vorhanden
    7. 10 = TEXT
    8. 10.value = class="single"
    9. 10.if.value.data = register:count_menuItems
    10. 10.if.equals = 1
    11.  
    12. # Es sind mindestens zwei Menupunkt vorhanden
    13. 20 = TEXT
    14. 20.value = class="first" |*| |*| class="last"
    15. 20.if.value.data = register:count_menuItems
    16. 20.if.equals = 1
    17. 20.if.negate = 1
    18. }
    19.  
    20. }

  • herrhamann herrhaman...
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    07. 12. 2011, 17:08

    Hier nochmal die Variante mit den CSS-Klassen im Listen-Element

    1. lib.content.subnav.10.1.NO {
    2.  
    3. allWrap.cObject = COA
    4. allWrap.cObject {
    5. # Es ist nur ein Menupunkt vorhanden
    6. 10 = TEXT
    7. 10.value = <li class="single">|</li>
    8. 10.if.value.data = register:count_menuItems
    9. 10.if.equals = 1
    10.  
    11. # Es sind mindestens zwei Menupunkt vorhanden
    12. 20 = TEXT
    13. 20.value = <li class="first">|</li> |*| |*|<li class="last">|</li>
    14. 20.if.value.data = register:count_menuItems
    15. 20.if.equals = 1
    16. 20.if.negate = 1
    17. }
    18. }

  • cephei cephei
    Padawan
    0 x
    40 Beiträge
    1 Hilfreiche Beiträge
    18. 01. 2013, 05:24

    [quote="herrhamann"]
    Hier nochmal die Variante mit den CSS-Klassen im Listen-Element

    1. lib.content.subnav.10.1.NO {
    2.  
    3. allWrap.cObject = COA
    4. allWrap.cObject {
    5. # Es ist nur ein Menupunkt vorhanden
    6. 10 = TEXT
    7. 10.value = <li class="single">|</li>
    8. 10.if.value.data = register:count_menuItems
    9. 10.if.equals = 1
    10.  
    11. # Es sind mindestens zwei Menupunkt vorhanden
    12. 20 = TEXT
    13. 20.value = <li class="first">|</li> |*| |*|<li class="last">|</li>
    14. 20.if.value.data = register:count_menuItems
    15. 20.if.equals = 1
    16. 20.if.negate = 1
    17. }
    18. }

    [/quote]

    Danke herrhamann

    Den value bei mehreren Menüeinträgen müsste noch angepasst werden, dann stimmts:

    1. 20.value = <li class="first">|</li> |*| <li>|</li> |*|<li class="last">|</li>

    Sonst werden die mittleren Menüeinträge nicht mit <li> gewrapt.

    Diese Signatur ist in Ihrem Land leider nicht verfügbar.

  • 1