[TYPO3-german] GMENU Problem
Volker Golbig
typo3 at machwert.de
Wed Jun 6 20:27:25 CEST 2007
Super Lösung - hätte nicht gedacht, dass es allein per TypoScript zu
lösen ist.
Viele Grüße
Volker
JoH asenau schrieb:
>>> Nun, ich weiß leider nicht, wo's bei Dir hakt, denn dieser Code hier:
>>>
>>> [snip]
>>>
>>> Produziert dieses Ergebnis: http://www.4any1.de/index.php?id=287
>>>
>>> Wie Du siehst, ist das alles ziemlich OK und die Breiten verhalten
>>> sich genau wie gewünscht.
>> vorab: 1000 Dank. Hätte ich den entryLevel richtig gesetzt hätte ich
>> mir einiges sparen können.
>> Wie es aber immer ist kommt nach der Lösung des einen das nächste
>> Problem. Wie stelle ich es jetzt an, dass die horizontale Hauptnavi
>> und nur die vertikale Subnavi des aktuellen Hauptnavipunktes sichtbar
>> ist?
>
> Das geht logischerweise nur über CSS, weil die Grafiken ja in jedem Fall
> alle generiert werden müssen, damit die Breiten feststellbar sind. Das Menü
> ist also vollständig im HTML Code zu sehen, wird aber über display:none;
> teilweise ausgeschaltet.
>
> Weil das nur für die zweite Ebene gelten soll, brauchst Du ein Register, das
> nur mit uids der ersten Ebene gefüllt wird. Damit wird im Zustand NO per if
> Abfrage alles ausgeschaltet, das nicht auf der ersten Ebene liegt. Beim
> zustand ACT wird für die Unterpunkte des aktiven punktes das display:none;
> wieder rausgeschmissen.
>
> Du kannst stattdessen selbstverständlich auch eine CSS Klasse verwenden und
> diese z.B. mit Hilfe von JavaScript schon onmouseover verändern. Damit wäre
> sogar ein Layer-Menü denkbar wenn Du die uid in die class mit einbaust.
>
> Hier nochmal komplett
>
> lib.navigation2 = HMENU
> lib.navigation2 {
> 1 = TMENU
> 1 {
> wrap = <table><tr>|</tr></table>
> NO = 1
> NO {
> doNotLinkIt = 1
> stdWrap.cObject = HMENU
> stdWrap.cObject {
> special = list
> special.value.cObject = COA
> special.value.cObject {
> # hier das register
> # für die erste ebene
> 5 = LOAD_REGISTER
> 5.level1Uid.field = uid
> 10 = TEXT
> 10.field = uid
> 20 = HMENU
> 20 {
> special = directory
> special.value.field = uid
> 1 = TMENU
> 1 {
> NO {
> doNotLinkIt = 1
> stdWrap.field = uid
> stdWrap.wrap = ,|
> }
> }
> }
> }
> 1 = GMENU
> 1 {
> wrap = <td valign="top"><table>|</table></td>
> useLargestItemX = 1
> useLargestItemY = 1
> NO {
> allWrap.cObject = COA
> allWrap.cObject {
> 10 = TEXT
> 10 {
> # für alle Seiten
> # der ersten Ebene
> value = <tr><td>|</td></tr>
> if {
> value.data = register:level1Uid
> equals.field = uid
> }
> }
> 20 = TEXT
> 20 {
> # für alle Seiten
> # der zweiten Ebene
> value = <tr style="display:none;"><td>|</td></tr>
> if {
> value.data = register:level1Uid
> equals.field = uid
> negate = 1
> }
> }
> }
> XY = [10.w]+20,30
> backColor = #990000
> 10 = TEXT
> 10 {
> text.field = title
> fontSize = 20
> fontColor = #FFFFFF
> offset = 10,22
> niceText = 1
> }
> }
> }
> }
> }
> ACT < .NO
> ACT {
> stdWrap.cObject.1.NO.allWrap.cObject {
> 10 {
> # Abfrage ausschalten
> # damit wrap für alle Ebenen
> # im aktiven Zweig gleich ist
> if >
> }
> # zweiten wrap deaktivieren
> 20 >
> }
> }
> }
> }
>
> Sollte so klappen.
>
> Joey
>
More information about the TYPO3-german
mailing list