Zum Inhalt springen

Backround für nur einen Menu Link ändern

Erstellt am 3. Mai 2007 · 6 Antworten · letzte Antwort am 24. Mai 2007

Tags: HTML & CSS, Frage

staeubel ·

Hallo zusammen

Hätte da auch mal so eine Menu-Frage.
Und zwar möchte im Menu, welches immer genau die Seitennamen
auflistet, einem einzelnen Button einen anderen Backround geben.

Die Backrounds sind in meinem CSS definiert und gelten eben
jeweils für eine ganze Ebene.

Auch in meinem folgendem TypoScript,
spreche ich jeweils die ganze Ebene an:

[...]

      # Menü links erstellen
         MENU_LINKS = HMENU
         MENU_LINKS.special = directory
         MENU_LINKS.special.value = 1
         
      # Einspringpunkt beim Start
         MENU_LINKS.entryLevel = 0
  
         MENU_LINKS.1 = TMENU
         MENU_LINKS.1 {
            NO.allWrap = <div class="menulinks-level1-no"> | </div>
            ACT = 1
            ACT.allWrap = <div class="menulinks-level1-act"> | </div>
            SPC = 19
         }

         MENU_LINKS.2 = TMENU
         MENU_LINKS.2 {
            NO.allWrap = <div class="menulinks-level2-no"> | </div>
            ACT = 1
            ACT.allWrap = <div class="menulinks-level2-act"> | </div>
         }

         MENU_LINKS.3 = TMENU
         MENU_LINKS.3 {
            NO.allWrap = <div class="menulinks-level3-no"> | </div>
            ACT = 1
            ACT.allWrap = <div class="menulinks-level3-act"> | </div>
         }

[...]

Kann mir jemand einen Tipp geben?

Wäre sehr dankbar.

Viele Grüsse

Stäubel

just2b ·

Hallo,

ich würde zuerst mal raten das ganze per Listenmenü zu machen, aber sonst solltest du dir meine kleine Extension rgmenu anschauen (inkl manual)

georg

staeubel ·

Hallo just2b

Wow, du hast eine eigene Extension geschrieben!
Vielen Dank, werde ich gern mal anschauen.

Schade das dies bedeuten würde, dass ich alles
umbauen müsste. 😢

Aber so ne "Würg" Lösung auf die Schnelle gibt
es wohl eher nicht oder #paralyzed#

Auf jedenfall Danke, hast mir schon viel weitergeholfen.

Grüsse Stäubel

staeubel ·

Hallo zusmmen

Hab da mal noch ein wenig rumgeforscht.
Könnte man es nicht auch irgenwie so lösen?

So würde es funktionieren:

[...]
        MENU_LINKS.1 = TMENU
         MENU_LINKS.1 {
           
            NO.stdWrap2{
            wrap = <div class="menulinksgelb-level1-no"> | </div>
            if.value.field = uid
            if.equals = 18
            }
           
            ACT.stdWrap2{   
            wrap = <div class="menulinksgelb-level1-act"> | </div>
            if.value.field = uid
            if.equals = 18
            }
         }
[...]

Wenn ich jedoch mehrere aneinanderhänge, funktioniert es leider nicht mehr:
Sorry, blicke noch nicht so durch bei TS :o

[...]
        MENU_LINKS.1 = TMENU
         MENU_LINKS.1 {
              
            NO.stdWrap2{
            wrap = <div class="menulinksgelb-level1-no"> | </div>
            if.value.field = uid
            if.equals = 18
            }
                   
            ACT.stdWrap2{   
            wrap = <div class="menulinksgelb-level1-act"> | </div>
            if.value.field = uid
            if.equals = 18
            }
   
            NO.stdWrap2{
            wrap = <div class="menulinksweiss-level1-no"> | </div>
            if.value.field = uid
            if.equals = 19
            }
             
            ACT.stdWrap2{   
            wrap = <div class="menulinksweiss-level1-act"> | </div>
            if.value.field = uid
            if.equals = 19
            }

         }
[...]

Kann mir jemand einen Tipp geben, was falsch ist.
Wäre euch sehr dankbar.

Viele Grüsse

Unbekannter Benutzer ·

Nein, so kannst du es nicht machen, jede Eigenschaft kann nur einen Wert haben... D.h. wenn du

MENU_LINKS.1.NO.stdWrap2.if.equals = 18 definiert hast (Zeile 8-) dann überschreibst du das in Zeile 20 mit 19. Geht also so nicht. Aber wenn es genau nur um eine ID geht, kannst du es vielleicht mit einem override und if lösen, oder mit optionSplit.

Grüße

Christian

staeubel ·

Hallo Kitsunet

Danke vielmals für deine Antwort.

Habe es nun gelöst.
Da man mit der Option optionSplit, leider nur den ersten,
die Mittleren und den letzte Menupunkt unabhängig definieren kann,
habe ich nun das gleiche Menu im Template zweimal übereinander definiert.
MENU_LINKS und MENU_LINKS_UNTEN.

Beim Ersten habe ich einfach mit MENU_LINKS.excludeUidList = 20,65,64
die unteren ausgeblendet und beim Zweiten die oberen Menupunkte mit
MENU_LINKS_UNTEN.excludeUidList = 19,18,17 ausgeblendet.

So konnte ich mehrere Menupunkte separat definieren und mein Problem lösen.

Bestimmt nicht die schönste, aber für mich momentan die Beste Lösung.

Problem ist also mal gelöst.

Danke und viele Grüsse

Stäubel

ArminB ·

moin,

nur mal so als Hinweis, auch wenn das Problem gelöst ist:

Es gibt auch if.isInList, somit kannst du eine Liste auf Übereinstimmung prüfen.

Armin