Hallo Forum,
ich habe ein Problem mit dem automatischen Zeilenumbruch im GMENU. Ich habe es nun soweit das der umbruch funktioniert. nun mein problem ein menupunkt der aus 2 zeilen besteht ist natürlich auch 2 zeilen hoch. bei mir sind die menupunkte die nur aus einer zeile bestehen allerdings auch 2 zeilen hoch, wobei die 2 zeile leer ist wie bekomme ich das hin das die menupunkte die nur eine zeile haben auch nur eine hoch sind?
hier mein TS
temp.MENU = HMENU
temp.MENU.special = directory
temp.MENU.special.value = 1
temp.MENU.entryLevel = 1
temp.MENU.1 = GMENU
temp.MENU.1.NO = 1
temp.MENU.1.NO{
wrap = |
XY = 166, [10.h]+10
backColor = #999999
transparentColor = #999999
5 = IMAGE
5.file = fileadmin/templates/menu_images/but_no.jpg
10 = TEXT
10.text.field = title
10.fontColor = #000000
10.fontFile = fileadmin/templates/tahoma.ttf
10.fontSize = 8
10.niceText = 1
10.offset = 55, 9
10.text.listNum = 0
10.text.listNum.splitChar = |
20 < .10
20.text.listNum = 1
20.offset = 52,20
}
vielen dank im voraus
hi nugget,
du musst das offset verändern, und zwar so, dass es dynamisch immer in der mitte zentriert ist
ca. so (bin nicht sicher ob es genau so funktioniert)
temp.MENU.1.NO.10.offset = 55, [50+(h/2)]
oder evtl. so
temp.MENU.1.NO.10.offset = 55, [50+(10.h/2)]
50 steht für die hälfte der höhe des Bildes.
propier es mal aus, und sag mir, ob es funktioniert hat, ok?
gruss theis
ich verstehe nicht was das mit dem offset zu tun hat. bist du dir sicher das du das nicht mit XY verwechselst?
Vielleicht hast du auch nicht richtig mein Problem verstanden. hier nochmal ein screenshot wie es im moment ist (bild1)!
Bild: mark.byteaction.de/bsp.jpg Bild: mark.byteaction.de/bsp2.jpg
aussehen soll es wie auf dem zweiten bild
beim letzten menupunkt (kooperationspartner) wird mit hilfe von listNum.splitChar ein automatische Zeilenumbruch erzeugt. leider werden aber alle anderen menupunkte dann auch 2 zeilen hoch obwohl sie nur eine hoch sein sollten.
MfG
hi,
ah, jetzt verstehe ich probier es mal so:
temp.MENU = HMENU
temp.MENU.special = directory
temp.MENU.special.value = 1
temp.MENU.entryLevel = 1
temp.MENU.1 = GMENU
temp.MENU.1.NO = 1
temp.MENU.1.NO{
wrap = |
XY = 166, [10.h]+[20.h]+10
backColor = #999999
transparentColor = #999999
5 = IMAGE
5.file = fileadmin/templates/menu_images/but_no.jpg
10 = TEXT
10.text.field = title
10.fontColor = #000000
10.fontFile = fileadmin/templates/tahoma.ttf
10.fontSize = 8
10.niceText = 1
10.offset = 55, 9
10.text.listNum = 0
10.text.listNum.splitChar = |
20 < .10
20.text.listNum = 1
20.offset = 52,20
20.if.isTrue=1
}
geändert habe ich
- XY
- und eine neue Zeile eingefügt: (20.if.isTrue= 1)
sag bescheid, wenn es funktioniert.
gruss theis
sieht schon sehr gut aus! auch ohne die zeile:
20.if.isTrue=1
Diese bewirkt irgendwie gar nix!
Es hängt jetzt nur noch an der Zeile
XY = 166, [10.h]+[20.h]+10
ein zweizeiliger Menupunkt ist nun 37px hoch (sollte nur 29px hoch sein)
und ein einzeiliger Menupunkt ist nun 22px hoch (sollte nur 11px hoch sein)
kannst du mir die XY Zeile noch mal genau erklären also was da genau passiert ich raff das net mit den klammern :o . wie sieht man wie hoch ein menu tatsächlich ist?
also, dass mit den eckigen klammern ist so:
[20.h]
schaut bei der generierung des bildes nach, wie hoch das "unterlayer" 20 des bildes ist und zählt diese somit zur gesamtgrösse des ganzen bildes hinzu.
wenn ein einzeiliges bild nur 11px hoch sein soll solltest du es ca so machen:
XY = 166, 11+[20.h]
somit wäre das bild 11px hoch und wenn es noch eine zweite zeile gibt, zählt es zu den 11px noch die höhe des zweiten bildelementes hinzu, was dann einen wert so gegen die 20px ergeben wird, je nachdem, was für eine schriftgösse du gewählt hast.
wenn du nun für ein zweizeiliges bild immer eine grösse von 22px haben möchtest musst du typo3 austricksen indem du ein drittes layer hinzufügst, welches dann eine schrift in der mit den noch benötigten pixel beinhaltet ca. so:
temp.MENU = HMENU
temp.MENU.special = directory
temp.MENU.special.value = 1
temp.MENU.entryLevel = 1
temp.MENU.1 = GMENU
temp.MENU.1.NO = 1
temp.MENU.1.NO{
wrap = |
XY = 166, 11+[20.h]+[30.h]
backColor = #999999
transparentColor = #999999
5 = IMAGE
5.file = fileadmin/templates/menu_images/but_no.jpg
10 = TEXT
10.text.field = title
10.fontColor = #000000
10.fontFile = fileadmin/templates/tahoma.ttf
10.fontSize = 8
10.niceText = 1
10.offset = 55, 9
10.text.listNum = 0
10.text.listNum.splitChar = |
20 < .10
20.text.listNum = 1
20.offset = 52,20
20.if.isTrue=1
30 < .20
20.text.listNum = 1
20.fontSize = 3
20.offset = 500,500
20.if.isTrue=1
}
gruss theis
danke erstmal sieht schon mal sehr gut so aus wie es nun ist. ich hab nur deine XY zeile übernommen jetzt passt es sehr gut.
sieht jetzt so aus:
Bild: mark.byteaction.de/bsp3.jpg
jetzt fehlt nur noch ein abstand zwischen den einzelnen menupunkten damit es so aussieht wie hier:
Bild: mark.byteaction.de/bsp2.jpg
temp.MENU = HMENU
temp.MENU.special = directory
temp.MENU.special.value = 1
temp.MENU.entryLevel = 1
temp.MENU.1 = GMENU
temp.MENU.1.NO = 1
temp.MENU.1.NO{
wrap = |
XY = 166, 11+[20.h]
backColor = #999999
transparentColor = #999999
5 = IMAGE
5.file = fileadmin/templates/menu_images/but_no.jpg
10 = TEXT
10.text.field = title
10.fontColor = #333333
10.fontFile = fileadmin/templates/lte50146.ttf
10.fontSize = 10
10.niceText = 0
10.offset = 55, 10
10.text.listNum = 0
10.text.listNum.splitChar = |
20 < .10
20.text.listNum = 1
20.offset = 54,22
}
Vielen Dank nochmal für deine Hilfe
das würde ich mit css machen so a la
wenn folgendes dein quellcode ist:
<div class="menu">
<a href=""><img src="123" alt="" /></a>
<a href=""><img src="124" alt="" /></a>
<a href=""><img src="125" alt="" /></a>
</div>
dann
div.menu img {
margin-bottom:200px;
}
gruss theis
oohhh man darauf hätte ich auch mal kommen können ich habs die ganze zeit über typoscript versucht und damit ist es wirklich umständlich! #angry#
sehr gut danke schön 😃
Hallo zusammen,
das mit dem Zeilenumbruch klappt ja wunderbar im Menü, wie stelle ich es aber nun an, dass der Pipe "|" nicht in meiner Brotkrumen-Navi und im Seitentitel erscheint?
LG Felix
hi,
hm, ja schwer zu sagen,
ich sehe da 2 möglichkeiten, weiss aber nicht, ob diese funktionieren.
1. Einfach ein wrap anwenden ohne aber hinter dem = ein Zeichen einzufügen.
irgendetwas.wrap =
2. parseFunc
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Parsefunc.html
gruss theis
zu 1:
was meinst du mit dem Wrap, meinst du bei SplitChar einfach nichts angeben, oder wo? Weil bei SplitChar muss ich ja auf jeden Fall was angeben.
zu 2:
die parseFunc habe ich gestern zusammen mit dem short aufgegriffen, aber irgendwie hats nicht hingehauen, ich habe bestimmt was wesentliches vergessen. Ne gute Anleitung was man genau angeben muss, hab ich leider auch nicht gefunden.
Werde es grad nochmal durchwühlen und hoffen.
Danke schonmal für deinen Post.
ich hab mal wieder nur die Hälfte kopiert. So muss es aussehen, dann klappts:
stdWrap.parseFunc.short._ =
Hier ein nettes PDF zum Thema Menüs, auf der letzten Seite steht die Lösung 😃
http://www.oreilly.de/catalog/typo3bas2ger/chapter/ch07.pdf
LG Felix
Super, das es geklappt hat.
Vielen Dank für deinen Endpost mit dem Link, das wird sicher anderen, welche ein ähnliches Problem haben auch weiterhelfen.
Gruss Theis