Zum Inhalt springen

TMENU WRAP nur wenn CUR

Erstellt am 14. Juli 2008 · 6 Antworten · letzte Antwort am 15. Juli 2008

Tags: Frage

Crazy-Achmet ·

Hallo,

ich hab mal wieder eine Frage zu meinem TMENU. So sieht es derzeit aus:

  10.1 = TMENU
  10.1 {
    wrap = <div id="menueposition_01"><div id="menue_01">|</div></div>
    expAll = 1
    maxItems = 7
    NO {
      linkWrap = |
    }
    IFSUB < .NO
    IFSUB = 1
    IFSUB.ATagParams = class="link_01"
  }

Jetzt möchte ich allerdings, dass wenn ich mich auf einer Seite der Ebene befinde, in Zeile 3 ein anderer WRAP erfolgt. Ist das Möglich?

Lg,

Flo

Unbekannter Benutzer ·

Wie auf einer Seite... Auf welcher Seite? Auf einer bestimmten Seite soll der Wrap anders sein?

Eventuell wohl mit einer Condition

[globalVar = TSFE:id= ]
...
[global]
Crazy-Achmet ·

Sorry, habe mich ein bisschen schleierhaft ausgedrückt, liegt aber auch daran, wie mein Menü aufgebaut ist.

Hier erstmal der ganze Code von meinem Menü:

 10 = HMENU
  10.special = directory
	10.special.value = 1  
  10.entryLevel = 0
   
  # 1st level
  10.1 = TMENU
  10.1 {
    wrap = <div id="menueposition_01"><div id="menue_01">|</div></div>
    expAll = 1
    maxItems = 7
    NO {
      linkWrap = |
    }
    IFSUB < .NO
    IFSUB = 1
    IFSUB.ATagParams = class="link_01"
  }

  # 2nd level
  20 < .10
  20.1.wrap >
  20.1.NO.doNotShowLink = 1
  20.1.IFSUB.doNotShowLink = 1
  20.2 < .10.1
  20.2.IFSUB.ATagParams = class="link_02"
  20.2.wrap = <div id="menueposition_02"><div class="toggler_02">|</div></div>
  
  30 < .20
  30.2.wrap >
  30.2.NO.doNotShowLink = 1
  30.2.IFSUB.doNotShowLink = 1
  30.3 < .10.1
  30.3.IFSUB.ATagParams = class="link_03"
  30.3.wrap = <div id="menueposition_03"><div class="toggler_03">|</div></div>
  
  40 < .30
  40.3.wrap >
  40.3.NO.doNotShowLink = 1
  40.3.IFSUB.doNotShowLink = 1
  40.4 < .10.1
  40.4.wrap = <div id="menueposition_04"><div class="toggler_04">|</div></div>

Das ganze bewirkt ja folgenden Aufbau:

1. Menüpunkt
2. Menüpunkt
3. Menüpunkt

1.1. Menüpunkt
1.2. Menüpunkt

2.1. Menüpunkt
2.2. Menüpunkt
...

Jede "Ebene" wird immer mit dem <div> gewrapt. Jetzt möchte ich allerdings, dass wenn ich z.B. mich auf der Seite "2.2. Menüpunkt" befinde, das div noch die Klasse "aktiv" bekommt.

Ist das irgendwie Möglich?

Unbekannter Benutzer ·

Ja, mach das doch mit der Condition die ich oben gepostet habe.

Bspw hat die von dir erwähnte Seite die ID 5

Dann also:

[globalVar = TSFE:id = 5]
Hier überschreibst du den Wrap
[global]
Crazy-Achmet ·

Ja,
das wäre ja Möglich, aber mir geht es doch um die Automation. Ich kann dem Kunden/Redakteur ja schlecht sagen, für jede neue Seite, die er anlegt, soll er im TypoScript was ändern.

Unbekannter Benutzer ·

Ok, dann mal zusammengefasst. Du möchtest immer dann, wenn man sich auf einer Seite befindet, also auf der Aktiven Seite, etwas anders formatiert ausgegeben wird.
Dann solltest du den Aufbau deines Menüs mal überdenken. Für sowas sind die Menüzustände gedacht. In diesem Fall CUR und ACT.

Verlagere den nötigen wrap oder die Formatierungen oder Einstellungen die du bei einem aktiven Menüpunkt benötigst einfach in den Menüzustand und nicht außerhalb in die Ebene.
Wenn du Unterpunkt 3 von Oberseite xy anklickst, dann würde sich ja sonst der gesamte Wrap für die Ebene ändern. Oder willst du das. Willst du das beim Anklicken von einem Unterpunkt alle anderen Unterpunkte die Farbe ändern, oder willst du das nur der Eine die Farbe ändert? (Farbe => nur als Beispiel)

Bitte beschreib mal genau was sich da tut. Mit den zwei div-Containern in dem wrap kann hier keiner was anfangen.

Crazy-Achmet ·

Also,

eingesetzt wird das ganze auf dieser Seite: www.flexo-raumsysteme.de

Verkürzt sieht das ganze im HTML so aus

<div id="menueposition_01">
	<div id="menue_01">
		<a class="link_01 btn_active" href="flexonews/">flexonews</a>
		<a class="link_01" href="produkte/">Produkte</a>
		<a href="planungsprogramm/">Planungsprogramm</a>
		<a class="link_01" href="informationen/">Informationen</a>
		<a class="link_01" href="kontakt/">Kontakt</a>
		<a class="link_01" href="flexo/">flexo</a>
		<a class="link_01" href="download/">Download</a>
	</div>
</div>
<div id="menueposition_02">
</div>
</div>
<div id="menueposition_02">
</div>
<div id="menueposition_02">
</div>
<div id="menueposition_03">
</div>
<div id="menueposition_03">
</div>
<div id="menueposition_03">
</div>
<div id="menueposition_04">
</div>
<div id="menueposition_04">
</div>

Das ganze ist ein JavaScript, welches die DIV Elemente mit den Klassen (toggler_02, toggler_03 und toggler_04) automatisch in ausklappbare Elemente umwandelt.
Wenn ich mich jetzt auf dem Menüpunkt Produkte > Wand und Decke > Dekor-Paneele > Easy-Tack befinde, möchte ich, dass die 3 Ebenen (toggler_02, toggler_03 und toggler_04 automatisch wieder aufspringen. Das ganze könnte ich mit JavaScript realisieren, wenn das DIV Element zusätzlich noch die Klasse aktiv bekommt.

Ich hoffe jetzt kommt so langsam Licht ins Dunkle! 🙂 Bin offen für jede Art von Vorschlag, wenn man das vielleicht irgendwie anders realisieren kann.

Lg,

Flo