[TYPO3-german] Menü (TMENU): Wie Items vor und nach dem ACT-Item unterschiedlich rendern?
JoH asenau
info at cybercraft.de
Thu Jun 21 00:49:56 CEST 2007
>> Ich habe gerade keine Zeit das auszuprobieren, aber es könnte mit
>> LOAD_REGISTER im ACT TMENUITEM gehen: dort eine Flag-Variable setzen
>> und diese in NO usw. abfragen mit z.B.:
>
> der Ansatz klingt gut, scheitert aber bei mir noch in der Praxis. Der
> Fehler liegt wohl im Bereich LOAD_REGISTER bzw. im Condition Zugriff
> auf meine selbst eingeführte Variable "menu_item". Im ACT bin ich mir
> nicht sicher, ob ich LOAD_REGISTER richtig lade. Da ich je nach
> Cond.-Ergebnis 2 varianten von NO.allWrap setzen muss, war mir die
> if-Variante nicht schlüssig.
>
> Auch
>
> [globalVar = register:menu_item_current = 1]
> lib.main_menu.20.1.NO.allWrap = ....
> [global]
>
> scheitert. Ich bekomme nie ein
>
> <li><span class="after"> | </span></li>
>
> gesetzt.
>
> Mein Menü TS:
Hab ich mal entfernt, weil das so nie funktionieren kann.
ACT = LOAD_REGISTER geht gar nicht und die condition hilft hier auch nicht
weiter, weil Du das mit einer if Abfrage oder besser noch in einem CASE
machen solltest.
Das <ul> gehört in einen wrap, das <span> ist überflüssig etc. pp.
Also nochmal von vorn ;-)
lib.main_menu = COA
lib.main_menu {
10 = HMENU
10 {
1 = TMENU
1 {
wrap = <ul>|</ul>
NO {
allWrap.cObject = CASE
allWrap.cObject {
# der Name des Registers
# ist frei wählbar
key.data = register:activeIsSet
# Wenn nicht 1
# dann nimm den
default = TEXT
default.value = <li class="before">|</li>
# Wenn 1,
# dann nimm den
1 = TEXT
1.value = <li class="after">|</li>
}
stdWrap.htmlSpecialChars = 1
}
ACT = 1
ACT {
allWrap = <li id="current">|</li>
stdWrap.htmlSpecialChars = 1
#Hier wird das Register
# auf 1 gesetzt
after.cObject = LOAD_REGISTER
after.cObject {
activeIsSet = 1
}
}
}
}
}
So finden alle NO, die nach einem ACT kommen, die 1 im Register und bekommen
deswegen über die Abfrage in einem CASE einen anderen allWrap.
Ich muß allerdings zugeben, daß das alles andere als Basic TypoScript ist
:-)
HTH
Joey
--
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
openBC/Xing: http://www.cybercraft.de
T3 cookbook: http://www.typo3experts.com
More information about the TYPO3-german
mailing list