Zum Inhalt springen

Breite über Bedingung anpassen

Erstellt am 8. April 2004 · 4 Antworten · letzte Antwort am 8. April 2004

Tags: Frage

Proper ·

Hallo zusammen!

Habe folgendes Problem:
In meinem GMENU erzeuge ich über den Gifbuilder folgendes:

10.file = GIFBUILDER
10.file {
XY = [20.w]+[30.w]+[40.w]+8, 20
backColor = #FFFFFF
20 = TEXT
20 {
text.field = title
offset = 5,14
if.isFalse.field = subtitle
fontFile = fileadmin/template/gillkayd.pfb
fontColor = #FF8000
fontSize = 15
niceText = 1
}
30 = TEXT
30 {
text.field = subtitle
offset = 5,14
if.isTrue.field = subtitle
fontFile = fileadmin/template/gillkayd.pfb
fontColor = #FF8000
fontSize = 15
niceText = 1
}
40 = TEXT
40 {
text = >>|*|>>|*|n
if.value = >>|*|>>|*|n
if.equals = >>
offset = 0,14
fontFile = fileadmin/template/gillkayd.pfb
fontColor = #FF8000
fontSize = 15
niceText = 1
align=right
#width=10
}
}

Das Menü (rootline) soll so aussehen (klappt auch ganz gut):
Menüebene1 >> Menüebene2 >> Menüebene 3
Das klappt auch ganz gut, allerdings hätte ich gerne, dass die Breite des Bildes vom letzten Eintrags (hier Menüebene 3) nur so groß ist, wie es wirklich sein muss. Mit meinem Code rechnet Typo3 auch beim letzten Menüeintrag noch die Breite des Textobjektes 40 dazu. Falls übrigens jemand noch eine einfachere Lösung für dieses Menü auf Lager hat, bin ich natürlich auch nicht abgeneigt - sieht mir irgendwie schon ziemlich umständlich aus, meine Lösung ;-)

Vielen Dank für eure Hilfe!

Stoneage ·

text = >>|*|>>|*|n
if.value = >>|*|>>|*|n
if.equals = >>

Statt diesem Optionsplit (hast du da eine vernünftige Anleitung?) Varianten, codier das ">>" per hand. Dann müsste

XY = [20.w]+[30.w]+[40.w]+8, 20

die Breite von [40.w] auch exakt mit 40 = TEXT übereinstimmen. Ich kann mir vorstellen das Optionsplit dazwischen funkt. Oder habe ich Dich falsch verstanden?

T.

Proper ·

Die Frage hast du schon verstanden: Das [40.w] ergibt auch einen Wert, wenn 40 gar nicht angezeigt werden soll. Ich habe inzwischen festegestellt, dass es mit [20.w] und [30.w] genau gleich läuft. Ich muss es irgendwie schaffen, dass [40.w] den Wert 0 erhält, wenn der Text nicht angezeigt werden soll. Bei meinem Menü sollen ggfs. ja die Untertitel der Seiten statt den Titeln angezeigt werden, d.h. je nachdem soll 20 oder 30 als Text verwendet werden. Mein Problem ist, dass hier ebenfalls zur Berechnung der Bildbreite entweder [20.w] oder [30.w] auf 0 zurückgesetzt werden sollten. Kann man das irgendwie schaffen?
Den Optionsplit brauche ich übrigens, da mein Menü wie folgt aussehen soll:
Menüebene1 >> Menüebene2 >>Menüebene3
und nicht:
Menüebene1 >> Menüebene2 >>Menüebene3 >>

Wäre nett, wenn mir jemand weiterhelfen kann

Stoneage ·

Stimmt Optionsplit brauchst du dafür. Aber vielleicht liegt das an dem Offset, dass die Werte nie 0 sind.

hast du mal das versucht, ob die Werte dann 0 sind auch wenn kein Text da ist?

offset = 5,14 => offset = 0,14

T.

Proper ·

Tja, leider hat auch das nichts genutzt:
Das Problem besteht nach wie vor. Vielleicht weiß auch jemand, wie ich so etwas wie
if blabla then
{
}
else {
}

hinbekomme, denn dann könnte ich ja je nachdem bei 20.text.field den Wert auf title oder subtitle ändern.

Das würde mir auch schon viel weiterhelfen