Zum Inhalt springen

Bedingung je nach Inhalt von TEXT

Erstellt am 31. Januar 2007 · 3 Antworten · letzte Antwort am 31. Januar 2007

Tags: Frage

owisworld ·

Hi,
bin TypoScript-Newbie und benötige einen Tipp:

In einem GMENU_LAYERS lasse ich einen grafischen Button ausgeben. Der String, welcher in der Gafik plaziert wird, könnte u.U. zweizeilig sein. Dabei trenne ich den String mit "_".
Nun ist aber der 'offset' davon abhängig, ob nun der Text ein- oder zweizeilig ist. Mit einer Bedingung könnte ich das bewerkstelligen, aber wie (mit TypoScript)?

Hier mal mein "Grundgerüst":

10 = TEXT
10.text.field = title
10.fontSize=10
10.fontWeight=bold
10.fontColor=#092282

#erste 'Zeile'
10.text.listNum = 0
10.text.listNum.splitChar = _

#zweite 'Zeile'
20 < 10.
20.text.listNum = 1
20.text.listNum.splitChar = _

## nun käme meine Bedigung:
# wenn 20.text nicht leer, dann
# 10.offset = 100,20 und 20.offset = 100,40
# ansonsten
# 10.offset = 100,30

Wer gibt mir einen Rat, wie ich das mit TypoScript aufbauen?

Danke im voraus
Owisworld

Unbekannter Benutzer ·

In deinem Fall würde ich das mit folgendem Trick machen:

Wenn 20 leer ist, ist auch die Höhe 0, wenn 20 nicht leer ist, ist die Höhe logischerweise 10, weil das die Schriftgröße ist.

Also gibst du den offset für 10 an mit:

10.offset = 100,30-[20.h]

Hab es nicht getestet, sollte aber funktionieren...

Grüße

Christian

owisworld ·
Kitsunet schrieb

In deinem Fall würde ich das mit folgendem Trick machen:

Wenn 20 leer ist, ist auch die Höhe 0, wenn 20 nicht leer ist, ist die Höhe logischerweise 10, weil das die Schriftgröße ist.

Also gibst du den offset für 10 an mit:

10.offset = 100,30-[20.h]

Hab es nicht getestet, sollte aber funktionieren...

Guter Einfall. Aber was ist, wenn die offsets anders lauten? z.B.
10.offset = 100,24 und 20.offset = 100,40
bzw.
10.offset = 100,32

Wie könnte ich hier 'ifEmpty' verwenden?

Danke vorab
Owisworld

Unbekannter Benutzer ·

Tja, offset unterstützt keinen stdWrap, insofern wird da wohl nichts gehen mit ifEmpty. Vielleicht könnte man dann das ganze Objekt leeren und dafür ein weiteres Objekt anzeigen lassen, das wird aber auch umständlich.

Ich würde dann eher die Offsets entsprechend multiplizieren/dividieren.

Also

10.offset = 100,30-([20.h]*0.6)

Oder sowas.

Grüße

Christian