Zum Inhalt springen

GMENU und optionsplit - letzer Eintrag

Erstellt am 29. April 2005 · 6 Antworten · letzte Antwort am 24. Mai 2005

Tags: Frage

Problemkind ·

Hallo!

Mein GMENU funktioniert bis auf eine Kleinigkeit einwandfrei. So sieht es aus, wenn man sich in "Unterpunkt 1" befindet:

+---------------------+
| Punkt 1             |
+---------------------+-+
  |   Unterpunkt1       |
  |    --> 1. xxx       |
  |    --> 2. xxx       |
  |   Unterpunkt2       |
  +---------------------+

+---------------------+
| Punkt 2             |
+---------------------+

Wenn man aber in "Unterpunkt 2" wechselt, entsteht so ein Gebilde:

+---------------------+
| Punkt 1             |
+---------------------+-+
  |   Unterpunkt1       |
  |   Unterpunkt2       |
  +---------------------+
  |    --> 1. xxx       |
  |    --> 2. xxx       |

+---------------------+
| Punkt 2             |
+---------------------+

Eigentlich gewünscht wäre das hier:

+---------------------+
| Punkt 1             |
+---------------------+-+
  |   Unterpunkt1       |
  |   Unterpunkt2       |
  |    --> 1. xxx       |
  |    --> 2. xxx       |
  +---------------------+

+---------------------+
| Punkt 2             |
+---------------------+

Sehr wahrscheinlich liegt das Problem bei der Art und Weise wie ich mein optionsplit zusammengebaut habe:

#------------------------------------#
# MENU SETUP
#------------------------------------#

temp.menu = HMENU
temp.menu.entryLevel = 0

temp.menu.1 = GMENU
temp.menu.1 {

NO {
wrap = |

XY = 150,39
backColor = white

#Schattenbox
1 = BOX
1.dimensions = 20,12,124,25
1.color = #D0D0D0
#schwarze box
2 = BOX
2.dimensions = 16,8,123,24
2.color = #000000
#weisse box
3 = BOX
3.dimensions = 17,9,121,22
3.color = #FFFFFF

#Text
10 = TEXT
10.text.field = title
10.fontSize = 10
10.fontColor = #000000
10.offset = 0,24
10.align = center
10.niceText = 0
10.fontFile=fileadmin/prototyp/files/VERDANAB.TTF
}

RO < .NO
RO {
1 >
2 >
3 >

#Schwarz Rahmen Hintergrund
1 = BOX
1.dimensions = 19,11,125,28
1.color = #000000

#weiß
2 = BOX
2.dimensions = 20,12,123,27
2.color = #FFFFFF

#Schwarz Rahmen Vordergrund
3 = BOX
3.dimensions = 16,8,123,24
3.color = #000000

#Graubox
4 = BOX
4.dimensions = 17,9,121,22
4.color = #DFDFDF

10 = TEXT
10.fontColor = #000000
}

RO = 1
ACT < .RO
ACT = 1
}

temp.menu.2 = GMENU
temp.menu.2 {

NO {
#optionsplit
allWrap = |*| | |*| | <img
src="fileadmin/prototyp/pics/space.gif" width="13px" height="1px"><img
src="fileadmin/prototyp/pics/linie.png"> |*|

XY = 150,16
1 >
2 >

#linie rechts
2 = BOX
2.dimensions = 143,0,1,18
2.color = #000000

#linie links
3 = BOX
3.dimensions = 19,0,1,18
3.color = #000000

#Text
10 = TEXT
10.text.field = title
10.fontSize = 9
10.fontColor = #000000
10.offset = 28,12
10.align = left
10.niceText = 0
10.fontFile=fileadmin/prototyp/files/VERDANA.TTF
}

RO >
RO < .NO
RO {
#Graubox
4 = BOX
4.dimensions = 20,0,122,18
4.color = #DFDFDF
10.fontColor = #000000
}
RO = 1

ACT < .RO
ACT = 1
}


temp.menu.3 = GMENU
temp.menu.3 {

NO {
wrap = |

XY = 150,16

1 >
2 >

#linie rechts
2 = BOX
2.dimensions = 143,0,1,16
2.color = #000000

#linie links
3 = BOX
3.dimensions = 19,0,1,16
3.color = #000000

5 = IMAGE
5.file = fileadmin/prototyp/pics/pfeil.png
5.offset = 30,5

#Text
10 = TEXT
10.text.field = title
10.fontSize = 9
10.fontColor = #000000
10.offset = 38,12
10.align = left
10.niceText = 0
10.fontFile=fileadmin/prototyp/files/VERDANA.TTF
}

RO >
RO < .NO
RO {
#Graubox
4 = BOX
4.dimensions = 20,0,122,16
4.color = #EFEFEF
10.fontColor = #000000
6 >
6 < .5
}
RO = 1
ACT < .RO
ACT = 1
}

Wer kann mir sagen wo der Fehler steckt?

Dank im voraus.
mfg

nevyn ·

Hallo,
Hinter welchen Punkten soll die linie sein? Bei Allen auser dem letzten dann versuch mal sowas:

allWrap = | |*| | | <img
src="fileadmin/prototyp/pics/space.gif" width="13px" height="1px"><img
src="fileadmin/prototyp/pics/linie.png">  |*| |

optionspilt funktioniert so
Anfang |*| Mitte |*| Ende
Bei dir war ein |*| zuviel.

Lass mich wissen obs geklappt hat.

Grüße
Helmuth

Problemkind ·

Also die Linie soll so sein, dass zunächst das zweite Menü und dessen Unterpunkte erscheint, und nach dem lezten unterpunkt die Linie gezogen wird. Falls die Unterpunkte des zweiten menüs nicht angezeigt werden, dann soll die Linie nach dem letzen Menüpunkt der zweiten Ebene erscheinen. Probiere jetzt mal deinen Lösungsvorschlag und poste gleich wieder... Habe eine ungefähre Vorstellung, was dabei rauskommt und glaube noch net, dass das passt.... egal...

Danke erst mal!

Problemkind ·

Also ich habe jetzt mal deinen Vorschlag probiert, aber außer einem syntaktisch sauberem optiosplit is nix bei raus gekommen. Jetzt steht da also:

allWrap = | |*| | |*| | <img src="fileadmin/prototyp/pics/space.gif" width="13px" height="1px"><img src="fileadmin/prototyp/pics/linie.png">

Nur um noch mal kurz zu beschreiben, wo das Problem liegt. Wenn das dritte Untermenü nicht angezeigt wird, soll nach dem letzten Eintrag des zweiten Menüs die Linie angezeigt werden. Wenn die Dritte Ebene angezeigt wird soll die Linie ausschließlich nach dem letzten Eintrag der dritten Eben auftauchen, nicht jedoch unter dem letzten der zweiten Ebene.

toyde ·

Hi.

Vielleicht suchst du ja die Möglichkeit Menüs unterschiedlich zu gestalten, wenn es Untermenüpunkte gibt oder eben nicht.
Diesen Status kann man per TypoScript einzeln ansprechen. Das Zauberwort lautet "IFSUB".

Schau mal hier: https://www.typo3server.com/dokumentationen.html
die oberste Doku auf Seite 62. Funzt für HMENUS - also für TMENU und GMENU.

Mit ein wenig Aufwand und der Kombination von optionSplit und IFSUB sollte es gelingen.
Wenn ich so recht überlege sollts aber mit optionSplit alleine laufen.

cya

nevyn ·

Hallo,
ich habe mir die Sache nochmal angesehen. Meiner ansicht nach lässt sich dein Problem ohne optionsplit mit einem normalen wrap lösen...

Versuch mal folgendes:

#------------------------------------#
# MENU SETUP
#------------------------------------#

temp.menu = HMENU
temp.menu.entryLevel = 0

temp.menu.1 = GMENU
temp.menu.1 {

NO {
wrap = |

XY = 150,39
backColor = white

#Schattenbox
1 = BOX
1.dimensions = 20,12,124,25
1.color = #D0D0D0
#schwarze box
2 = BOX
2.dimensions = 16,8,123,24
2.color = #000000
#weisse box
3 = BOX
3.dimensions = 17,9,121,22
3.color = #FFFFFF

#Text
10 = TEXT
10.text.field = title
10.fontSize = 10
10.fontColor = #000000
10.offset = 0,24
10.align = center
10.niceText = 0
10.fontFile=fileadmin/prototyp/files/VERDANAB.TTF
}

RO < .NO
RO {
1 >
2 >
3 >

#Schwarz Rahmen Hintergrund
1 = BOX
1.dimensions = 19,11,125,28
1.color = #000000

#weiß
2 = BOX
2.dimensions = 20,12,123,27
2.color = #FFFFFF

#Schwarz Rahmen Vordergrund
3 = BOX
3.dimensions = 16,8,123,24
3.color = #000000

#Graubox
4 = BOX
4.dimensions = 17,9,121,22
4.color = #DFDFDF

10 = TEXT
10.fontColor = #000000
}

RO = 1
ACT < .RO
ACT = 1
}

temp.menu.2 = GMENU
temp.menu.2 {
temp.menu.2.wrap= | <img src="fileadmin/prototyp/pics/space.gif" width="13px" height="1px"><img src="fileadmin/prototyp/pics/linie.png">
NO {
XY = 150,16
1 >
2 >

#linie rechts
2 = BOX
2.dimensions = 143,0,1,18
2.color = #000000

#linie links
3 = BOX
3.dimensions = 19,0,1,18
3.color = #000000

#Text
10 = TEXT
10.text.field = title
10.fontSize = 9
10.fontColor = #000000
10.offset = 28,12
10.align = left
10.niceText = 0
10.fontFile=fileadmin/prototyp/files/VERDANA.TTF
}

RO >
RO < .NO
RO {
#Graubox
4 = BOX
4.dimensions = 20,0,122,18
4.color = #DFDFDF
10.fontColor = #000000
}
RO = 1

ACT < .RO
ACT = 1
}


temp.menu.3 = GMENU
temp.menu.3 {

NO {
wrap = |

XY = 150,16

1 >
2 >

#linie rechts
2 = BOX
2.dimensions = 143,0,1,16
2.color = #000000

#linie links
3 = BOX
3.dimensions = 19,0,1,16
3.color = #000000

5 = IMAGE
5.file = fileadmin/prototyp/pics/pfeil.png
5.offset = 30,5

#Text
10 = TEXT
10.text.field = title
10.fontSize = 9
10.fontColor = #000000
10.offset = 38,12
10.align = left
10.niceText = 0
10.fontFile=fileadmin/prototyp/files/VERDANA.TTF
}

RO >
RO < .NO
RO {
#Graubox
4 = BOX
4.dimensions = 20,0,122,16
4.color = #EFEFEF
10.fontColor = #000000
6 >
6 < .5
}
RO = 1
ACT < .RO
ACT = 1
}

So solltest du nach dem 2. Menu Level immer die Linie haben.

Lass mich bitte wissen obs geklappt hat..

Helmuth

Problemkind ·

Hallo!

Lang ist's her, dass sich hier was bewegt hat, deshalb kommt's jetzt dicke!

Gott sei dank hab ich in meinem Umfeld noch ein paar Menschen, die sich mit typoscript super auskennen. Deshalb is nun auch die Lösung am Start:

#------------------------------------#
# MENU SETUP
#------------------------------------#

temp.menu = HMENU
temp.menu.entryLevel = 0

temp.menu.1 = GMENU
temp.menu.1 {

  NO {
    wrap = |<br>
    XY = 130,39
    backColor = white
     
    #Schattenbox
    1 = BOX
    1.dimensions = 4,12,126,25
    1.color = #D0D0D0
    #schwarze box
    2 = BOX
    2.dimensions = 0,8,125,24
    2.color = #000000
    #weisse box
    3 = BOX
    3.dimensions = 1,9,123,22
    3.color = #FFFFFF

    #Text
    10  = TEXT
    10.text.field = title
    10.fontSize = 11
    10.fontColor = #000000
    10.offset = -4,24
    10.align = center
    10.niceText = 0
    10.fontFile=fileadmin/ccweb/fonts/VERDANAB.TTF
  }

  ACT = 1
  ACT {
    wrap = |<br>
    XY = 130,39
    backColor = white
    #Schwarz Rahmen Hintergrund
    1 = BOX
    1.dimensions = 3,11,127,28
    1.color = #000000

    #weiß
    2 = BOX
    2.dimensions = 4,12,125,27
    2.color = #FFFFFF

    #Schwarz Rahmen Vordergrund
    3 = BOX
    3.dimensions = 0,8,124,24
    3.color = #000000

    #Graubox
    4 = BOX
    4.dimensions = 1,9,122,22
    4.color = #DFDFDF
      
    #Text
    10  = TEXT
    10.text.field = title
    10.fontSize = 11
    10.fontColor = #000000
    10.offset = -3,24
    10.align = center
    10.niceText = 0
    10.fontFile=fileadmin/ccweb/fonts/VERDANAB.TTF
  }
}

temp.menu.2 = GMENU
temp.menu.2 {
	
  wrap = |<img src="fileadmin/ccweb/pics/linie.png"><br>
  NO {
    #optionsplit
    
    allWrap =  |<br> 

    XY = 130,16
    1 >
    2 > 
      
    #linie rechts
    2 = BOX
    2.dimensions = 129,0,1,18
    2.color = #000000

    #linie links
    3 = BOX
    3.dimensions = 3,0,1,18
    3.color = #000000

        
    #Text
    10 = TEXT
    10.text.field = title
    10.fontSize = 11
    10.fontColor = #000000
    10.offset = 12,12
    10.align = left
    10.niceText = 0 
    10.fontFile=fileadmin/ccweb/fonts/VERDANA.TTF
  }
  
  ACT = 1
  ACT {
    XY = 130,16
    allWrap =  |<br> 
    
    #linie rechts
    2 = BOX
    2.dimensions = 129,0,1,18
    2.color = #000000

    #linie links
    3 = BOX
    3.dimensions = 3,0,1,18
    3.color = #000000

    #Graubox
    4 = BOX
    4.dimensions = 4,0,125,18
    4.color = #DFDFDF

    #Text
    10 = TEXT
    10.text.field = title
    10.fontSize = 11
    10.fontColor = #000000
    10.offset = 12,12
    10.align = left
    10.niceText = 0 
    10.fontFile=fileadmin/ccweb/fonts/VERDANA.TTF
  }
}

    
temp.menu.3 = GMENU
temp.menu.3 {
    
  NO { 
    wrap = |<br>
    XY = 130,16
    1 >
    2 >
    
    #linie rechts
    2 = BOX
    2.dimensions = 129,0,1,16
    2.color = #000000

    #linie links
    3 = BOX
    3.dimensions = 3,0,1,16
    3.color = #000000
     
    5 = IMAGE 
    5.file = fileadmin/ccweb/pics/arrow_bgwhite.gif
    5.offset = 12,3

    #Text
    10 = TEXT
    10.text.field = title
    10.fontSize = 11
    10.fontColor = #000000
    10.offset = 22,12
    10.align = left
    10.niceText = 0 
    10.fontFile=fileadmin/ccweb/fonts/VERDANA.TTF
  } 

  ACT = 1
  ACT {
    wrap = |<br>
    XY = 130,16
    1 >
    2 >
    
    #linie rechts
    2 = BOX
    2.dimensions = 129,0,1,16
    2.color = #000000

    #linie links
    3 = BOX
    3.dimensions = 3,0,1,16
    3.color = #000000

    #Graubox
    4 = BOX 
    4.dimensions = 4,0,125,16
    4.color = #EFEFEF
     
    5 = IMAGE 
    5.file = fileadmin/ccweb/pics/arrow_bggrey.gif
    5.offset = 12,3

    #Text
    10 = TEXT
    10.text.field = title
    10.fontSize = 11
    10.fontColor = #000000
    10.offset = 22,12
    10.align = left
    10.niceText = 0 
    10.fontFile=fileadmin/ccweb/fonts/VERDANA.TTF
  }
}

Vielleicht kann ja ein anderer auch was damit anfangen. Also viel Spaß damit. Und danke nochmnal an die potentiellen Helfer!