Zum Inhalt springen

Bestimmten Menüpunkt anders formatieren

Erstellt am 19. September 2005 · 22 Antworten · letzte Antwort am 22. Juni 2006 · Seite 2 von 2

Tags: Frage

theo ·

Auch hier gilt wieder die uralte und immergleiche Weisheit, daß Conditions nicht innerhalb geschweifter Klammern funktionieren.

Das sieht man übrigens auch am Codebeispiel von Jenses, der euch ja wirklich exakt vorgegeben hat, welchen Code ihr da einsetzen müßt.

impact ·

Der Code von Jenses ist ja auch einwandfrei. Bringt aber leider nur ein ungewünschtes Ergebnis. Die Links werden nämlich allesamt geändert, natürlich nur in dem Fall wenn man die mit TSFE:id angegebene Seite anzeigt, denn dann ist die Condition ja wahr.

Worum es glaube ich geht (und aktuell auch bei mir) ist, dass bestimmte Menüpunkte IMMER anders dargestellt werden. So möchte ich zb. dass der Menüeintrag in der 3. Ebene mit der UID: 1423 rot im Menü angezeigt wird. und zwar auch dann wenn er gerade nicht aktiv ist, aber dennoch sichtbar.

Die Condition TSFE:id bezieht sich ja nur auf die aktuelle Seite, aber nicht auf die Seite die gerade im Menü erzeugt wird, und genau da liegt das Problem.

Ich versuche gerade das ganze irgendwie mit ner CASE Abfrage hinzubekommen... aber auch das will nicht so ganz....

nach dem Motto::
CASE
key ...

wenn ID = XYZ dann setze fontColor (oder auch eben das BackgroundImage) so und so...
default = normale Anzeige so wie alle anderen...

michelmichel ·

Hallo,

ich habe die Ideen in diesem Thread mal aufgegriffen und versucht, ein Menü aufzubauen, welches pro Level-1-Menüpunkt jeweils eine andere Grafik unterlegt. Dies habe ich versucht, mittels css zu erreichen.
Leider ist es mir nicht gelungen. :-( Das Ergebnis war leider:

<div class="item-1-normal">...</div>
<div class="item-1-active">...</div>
<div class="item-1-normal">...</div>
<div class="item-1-normal">...</div>
<div class="item-1-normal">...</div>

erwartet habe ich jedoch:

<div class="item-1-normal">...</div>
<div class="item-2-active">...</div>
<div class="item-3-normal">...</div>
<div class="item-4-normal">...</div>
<div class="item-5-normal">...</div>

(bei aktiviertem 2.Menüpunkt)
Hat jemand eine Idee, wie das richtig lauten muss?

temp.menue = HMENU
temp.menue.1 = TMENU
temp.menue.1 {
  expAll = 0
[globalVar = TSFE:id = 85]
  NO.allWrap = <div class="item-1-normal"> | </div>
  ACT = 1
  ACT.allWrap = <div class="item-1-active"> | </div>
[global]
[globalVar = TSFE:id = 84]
  NO.allWrap = <div class="item-2-normal"> | </div>
  ACT = 1
  ACT.allWrap = <div class="item-2-active"> | </div>
[global]
[globalVar = TSFE:id = 83]
  NO.allWrap = <div class="item-3-normal"> | </div>
  ACT = 1
  ACT.allWrap = <div class="item-3-active"> | </div>
[global]
[globalVar = TSFE:id = 82]
  NO.allWrap = <div class="item-4-normal"> | </div>
  ACT = 1
  ACT.allWrap = <div class="item-4-active"> | </div>
[global]
[globalVar = TSFE:id = 81]
  NO.allWrap = <div class="item-5-normal"> | </div>
  ACT = 1
  ACT.allWrap = <div class="item-5-active"> | </div>
[global]
[globalVar = TSFE:id = 80]
  NO.allWrap = <div class="item-6-normal"> | </div>
  ACT = 1
  ACT.allWrap = <div class="item-6-active"> | </div>
[global]
}

Danke & Gruß - Michael

theo ·
michelmichel schrieb

...versucht, ein Menü aufzubauen, welches pro Level-1-Menüpunkt jeweils eine andere Grafik unterlegt.

Das macht man mit optionsplit und nicht mit Conditions.

toyde ·
michelmichel schrieb

(bei aktiviertem 2.Menüpunkt)
Hat jemand eine Idee, wie das richtig lauten muss?

temp.menue = HMENU
temp.menue.1 = TMENU
temp.menue.1 {
  expAll = 0
[globalVar = TSFE:id = 85]
  NO.allWrap = <div class="item-1-normal"> | </div>
  ACT = 1
  ACT.allWrap = <div class="item-1-active"> | </div>
[global]
[globalVar = TSFE:id = 84]
..
..

1. Willkommen im Forum!
2. Ich könnte wetten, drei Posts über Dir hat theo beschrieben:

Auch hier gilt wieder die uralte und immergleiche Weisheit, daß Conditions nicht innerhalb geschweifter Klammern funktionieren.

3. optionSplit wie er erwähnt, ist in deinem Fall der Lösungsansatz. https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Index.html such mal in der Doku danach.

michelmichel ·

Hallo!

Ich lese schon eine ganze Weile hier mit und habe bei den zahllosen Postings "nimm optionsplit" nie eine wirkliche Lösung als code gesehen. Deswegen will ich jetzt mal meine Lösung posten, damit andere Einsteiger in das Thema auch was davon haben.

DIV.id.WSMENU = 1
...
temp.menue = HMENU
temp.menue.1 = TMENU
temp.menue.1 {
  expAll = 0
  NO.allWrap = <div class="item-{elementUid}-normal"> | </div>||<div class="item-{elementUid}-normal"> | </div>||<div class="item-{elementUid}-normal"> | </div>||<div class="item-{elementUid}-normal"> | </div>||<div class="item-{elementUid}-normal"> | </div>||<div class="item-{elementUid}-normal"> | </div>
  NO.subst_elementUid = 1
  ACT = 1
  ACT.allWrap = <div class="item-{elementUid}-active"> | </div>||<div class="item-{elementUid}-active"> | </div>||<div class="item-{elementUid}-active"> | </div>||<div class="item-{elementUid}-active"> | </div>||<div class="item-{elementUid}-active"> | </div>||<div class="item-{elementUid}-active"> | </div>
  ACT.subst_elementUid = 1
}
...
  subparts.WSMENU < temp.menue

Der eigentliche clou mit optionsplit ist -und das geht in der Doku etwas unter-, dass t3 sich aus der ACT-Zeile den Punkt heraussucht, der gerade aktiv ist und sich für die restlichen nicht-aktiven Menüpunkte die entsprechend komplementären Elemente aus der NO-Zeile raussucht, so dass dann wirklich so was rauskommt, wie's ursprünglich angedacht war.

Ok, das elementUid hätte nicht unbedingt sein müssen, aber lasst mich doch damit rumschmachten. ;-)
Gruß - Michael

theo ·

@michelmichel:
Ich glaube, Du hast Dich da ein bißchen verlaufen... 😉

Sorry, aber Deine optionsplit-wraps sind beide absolut und komplett sinnfrei...
Und zwar sowohl syntaktisch, als auch inhaltlich.

michelmichel schrieb

Ok, das elementUid hätte nicht unbedingt sein müssen, aber lasst mich doch damit rumschmachten. ;-)

Ganz im (definitiven) Gegenteil... 😉

Ausschließlich dadurch erhältst Du Deine unterschiedlichen Klassen und durch rein gar nichts anderes.

Folgender völlig harmloser "normaler" Code macht exakt dasselbe:

DIV.id.WSMENU = 1
...
temp.menue = HMENU
temp.menue.1 = TMENU
temp.menue.1 {
  expAll = 0
  NO.allWrap = <div class="item-{elementUid}-normal"> | </div>
  NO.subst_elementUid = 1
  ACT = 1
  ACT.allWrap = <div class="item-{elementUid}-active"> | </div>
  ACT.subst_elementUid = 1
}
...
  subparts.WSMENU < temp.menue
thomasweb ·

Auch hier gilt wieder die uralte und immergleiche Weisheit, daß Conditions nicht innerhalb geschweifter Klammern funktionieren.

Das sieht man übrigens auch am Codebeispiel von Jenses, der euch ja wirklich exakt vorgegeben hat, welchen Code ihr da einsetzen müßt.

Sorry, aber mit diesem Kommentar kann ich als Dummy-Anfänger leider nichts anfangen... Welche Klammer an welcher Stelle?

Funktioniert das Skript, wenn ich es aus den Klammern heraus nehme? #paralyzed#

Kann mir jemand konkret sagen, was an meinem Skript oben falsch ist? (eine Korrektur meines Skripts wie man es richtig macht wäre toll).

Ich fände es schade, wenn nach so viel Interesse für dieses Thema nicht eine klare (auch für Anfänger praktikable) Lösung gepostet würde!

😢

Jochen R ·

Hallo

soweit ich das hier verstanden habe geht es darum ein bestimmtes image für eine bestimmte seitenlink zu haben ...

also soweit ich weiß kann man sich das image für beforeimg auch aus der seite selbst ziehen.. leider finde ich gerade die seite nicht mehr auf der ich das gelesen haben .. ich reiche es nach wenn ich es finde ...
ich weiß nur noch soviel, dass man den seitentyp auf erweitert umschalten muß
und dann eine verknüpfung zum feld media machen muß..

ich hoffe das ist der richtige weg bzw. ein ansatz ..

ansonsten wenn es noch spezieller sein soll hilft nur der weg über
HMENU .special - Benutzerdefinziert und dabei ein eigenes PHP Script
schreiben, welches das erstellte MENÜARRAY manipuliert.

http://typo3.org/fileadmin/typo3api-4.0.0/d1/dae/example__itemArrayProcFunc_8php.html

viel erfolg

gruß

Jochen

P.S Bitte berichtigt mich wenn ich Müll schreibe 😃 - bin auch neuling

====================
gross und kleinschreibung nur von 8.00-16.00 uhr

Jochen R ·

Hallo

habs doch noch gefunden

...

beforeImg.import = uploads/media
beforeImg.import.field = media
beforeImg.import.listNum = 0 
#(bzw. 1, 2, 3, ... für die verschiedenen Dateien)

...
ich hoffe das hilft

gruß Jochen