Zum Inhalt springen

Zwei geteiltes Menü

Erstellt am 24. August 2006 · 4 Antworten · letzte Antwort am 24. August 2006

Tags: Frage

spider1009 ·

Hallo,

ich sitze jetzt schon eine Weile an einem im Forum doch sehr bekannten Problem. Leider raff ichs nicht. Ich habe ein Menü und möchte es in zwei Teile teilen. Der erste steht oben horizontal nebeneinander und der zweite sollte sich dann vertikal an der rechten Seite aufbauen, wenn im horizontalen Teil ein Element ausgewählt wird. Das funktioniert ja auch schon. Das Problem ist das Unterelemente nicht angezeigt werden und das sobald ich auf der rechten Seite einen Menüpunkt anklicke verschwindet dieses Menü. 🙁
Der TS Code soweit:

temp.upperSecondMenu= HMENU
temp.upperSecondMenu{
    special = directory
    special.value = 27
    entryLevel = 2
    1 = TMENU
    1{
        noBlur = 1
        NO = 1
        NO.linkWrap = <div class="hz_nav_style">|</div>
        NO.ATagParams = class="hz_nav_style" style="color:#ffffff;"
        ACT = 1
        ACT.linkWrap = <div class="hz_nav_style">|</div>
        ACT.ATagParams = class="hz_nav_style" style="color:#ffffff;"
    }
    
    #2 < temp.leftMenu.1

    #3 < temp.leftMenu.2

}

//< temp.upperSecondMenu
temp.leftMenu = HMENU
temp.leftMenu{
    special = directory
    entryLevel = 0
    
    1 = TMENU
    1{
        expAll = 1
        #noBlur = 1
        NO = 1
        NO.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        ACT = 1
        ACT.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        ACTIFSUB = 1
        ACTIFSUB < 1.NO
    }
    
    2 = TMENU
    2{
        #noBlur = 1
        NO = 1
        NO.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        ACT = 1
        ACT.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
    }

}

Die Struktur der Seite sieht gefolgt aus:
+erster Obermenupunkt [oberes Menü]
++erster Unterpunkt [unteres Menü]
+++erster Unterunterpunkt [unteres Menü]
++zweiter Unterpunkt [unteres Menü]
++dritter Unterpunkt [unteres Menü]
+zweiter Obermenupunkt [oberes Menü]

Sollte ja eigentlich alles sehr simpel sein, aber ich krieg es trotzdem nicht hin. #angry#

webdeveloper ·

Morgen,

zwei Fragen zu deinem Code... weil so kanns auch net gehen:

spider1009 schrieb
temp.upperSecondMenu= HMENU
temp.upperSecondMenu{
    special = directory
    special.value = 27
    entryLevel = 2
}

Wieso special = directory??
Und wieso entryLevel = 2 wenns das obere Menü ist?

spider1009 schrieb
temp.leftMenu = HMENU
temp.leftMenu{
    special = directory
    entryLevel = 0
}

Hier ebenfalls... Bzw. es würde ein value fehlen, und in einem SubMenü entryLevel = 0, im Hauptmenü EntryLevel = 2 will net so recht in meinen Kopf rein...

Darf man fragen wie deine Menüstruktur in T3 aussieht?

Grüße
Alexander

einpraegsam.​net ·
temp.menu_1 = HMENU
temp.menu_1.1 = TMENU
temp.menu_1.1 {
	noBlur = 1
	NO.allWrap = | 
	ACT = 1
	ACT.allWrap =  | 
}

temp.menu_2 = HMENU
temp.menu_2.1 = TMENU
temp.menu_2.1 {
  noBlur = 1
  NO.doNotShowLink = 1
  ACTIFSUB = 1
  ACTIFSUB.linkWrap =  | 
}
temp.menu_2.2 = TMENU
temp.menu_2.2 {
  noBlur = 1
  NO.allWrap = |
  ACT = 1
  ACT.allWrap =  | 
}
temp.menu_2.3 = TMENU
temp.menu_2.3 {
  noBlur = 1
  NO.allWrap =  | 
  ACT = 1
  ACT.allWrap =  |
}
spider1009 ·

Also die Strukturen im einzelnen (sehen zwar nicht schön aus, habe ich aber wegen dem Design leider nicht anders machen können, bzw. wusste es nicht besser).

Global Top
+Root
++1. Top Menü (wird nicht angezeigt)(ID 26)
+++1.1 Top Menü (wird oben angezeigt)
+++1.2 unter Top Menü (wird oben angezeigt)
++2 Top Menü (wird nicht angezeigt)(ID 27)
+++2.1 unter Menü (wird oben angezeigt)(ID 32)
++++2.1.1 unter unter Menü (das soll rechts angezeigt werden)(ID 46)
+++++2.1.1.1 unter unter unter Menü (sollte auch rechts angezeigt werden)
++++2.1.2 unter unter Menü (das soll rechts angezeigt werden)
++++2.1.3 unter unter Menü (das soll rechts angezeigt werden)
+++2.2 unter Menü (wird oben angezeigt)
...

Die Teilung in zwei X.X (also z.B. 1.1 und 2.1) Menüs, habe ich deshalb gemacht ,weil das gewünsche Design durch Tabellen getrennt ist. Bei 1.1 und 1.2 könnte ich auch ne List nehmen, da dort nicht erweitert wird. Bei 2.1 und folgenden sieht das anders aus. Dort könnte ein Punkt hinzukommen. Das mit dem Entry Level waren einfach nur Tests ob es angezeigt wird. Noch mal das komplette Typoscript zum Menü (ist ja nicht so viel das es als Spam angesehen wird hoffentlich).

temp.upperFirstMenu = HMENU
temp.upperFirstMenu{
    
      
     special = directory
     special.value = 26
     entryLevel = 0
     1 = TMENU
     1{
        noBlur = 1
        NO = 1
        NO.linkWrap = <div class="hz_nav_style">|</div>
        NO.ATagParams = class="hz_nav_style" style="color:#ffffff;"
        ACT = 1
        ACT.linkWrap = <div class="hz_nav_style">|</div>
        ACT.ATagParams = class="hz_nav_style" style="color:#ffffff;"
     }
}

temp.upperSecondMenu= HMENU
temp.upperSecondMenu{
    special = directory
    special.value = 27
    entryLevel = 2
    1 = TMENU
    1{
        noBlur = 1
        NO = 1
        NO.linkWrap = <div class="hz_nav_style">|</div>
        NO.ATagParams = class="hz_nav_style" style="color:#ffffff;"
        ACT = 1
        ACT.linkWrap = <div class="hz_nav_style">|</div>
        ACT.ATagParams = class="hz_nav_style" style="color:#ffffff;"
    }
    
}

//< temp.upperSecondMenu
temp.leftMenu = HMENU
temp.leftMenu{
    special = directory
    entryLevel = 0
    
    1 = TMENU
    1{
        noBlur = 1
        #NO.doNotShowLink = 1
        NO = 1
        NO.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        ACTIFSUB = 1
        ACTIFSUB.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>

    }
    
    2 = TMENU
    2{
        #noBlur = 1
        NO = 1
        NO.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        ACT = 1
        ACT.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
    }

}

Falls noch Infos fehlen, sagt bitte bescheid. Ich bin wirklich dran interessiert das Problem zu lösen und vor allem auch zu verstehen(hatte erst mit diversen Kopien und verweisen gearbeitet und das Problem rührt bei mir, scheinbar ja von einem Verständnisproblem her. Habe auch schon wie gesagt im Forum und in den Anleitungen (und in meinen Büchern) geschaut bin aber leider nicht drauf gekommen, wie ichs machen könnte. o.O

Freundliche Grüße,

Alexander

spider1009 ·

OK. Ich habe eben noch einmal rumprobiert. Jetzt funktioniert es (auch wenn ich es für unelegant halte 🙁 ). Also ich poste mal den TS Code wie es jetzt funktioniert. Habe glaube ich auch endlich wieder ein bisschen mehr in Typo3 verstanden. Hier der Code:

temp.upperFirstMenu = HMENU
temp.upperFirstMenu{
    
      
     special = directory
     special.value = 26
     entryLevel = 0
     1 = TMENU
     1{
        noBlur = 1
        NO = 1
        NO.linkWrap = <div class="hz_nav_style">|</div>
        NO.ATagParams = class="hz_nav_style" style="color:#ffffff;"
        ACT = 1
        ACT.linkWrap = <div class="hz_nav_style">|</div>
        ACT.ATagParams = class="hz_nav_style" style="color:#ffffff;"
     }
}

temp.upperSecondMenu= HMENU
temp.upperSecondMenu{
    special = directory
    special.value = 27
    entryLevel = 2
    1 = TMENU
    1{
        noBlur = 1
        NO = 1
        NO.linkWrap = <div class="hz_nav_style">|</div>
        NO.ATagParams = class="hz_nav_style" style="color:#ffffff;"
        ACT = 1
        ACT.linkWrap = <div class="hz_nav_style">|</div>
        ACT.ATagParams = class="hz_nav_style" style="color:#ffffff;"
    }
    
    #2 < temp.leftMenu.1

    #3 < temp.leftMenu.2

}

//< temp.upperSecondMenu
temp.leftMenu = HMENU
temp.leftMenu{
    special = directory
    special.value = 27
    entryLevel = 1
    
    1 = TMENU
    1{
        noBlur = 1
        NO.doNotShowLink = 1
        ACT.doNotShowLink = 1
        #NO = 1
        #NO.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        #ACTIFSUB = 1
        #ACTIFSUB.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>

    }
    
    2 = TMENU
    2{
        #noBlur = 1
        NO = 1
        NO.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        ACT = 1
        ACT.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
    }

    3 = TMENU
    3{
        #noBlur = 1
        NO = 1
        NO.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
        ACT = 1
        ACT.linkWrap = <div class="nav_point"><div class="navdot_innmarg"><img src="fileadmin/main_template/grfx/nav_dot.gif" border="0px" alt="dot" />|</div></div>
    }

}

Habe einfach den Text von Wunschtacho mir zu Herzen genommen und die Links einfach ausgeblendet. Nicht schön aber selten. Falls jemand eine noch elegantere Lösung kennt, bitte anfügen (bin immer offen für Verbesserungen).

Freundliche Grüße,

Alexander