Verschiedene Maximalbreiten für Bilder in verschiedenen Spalten und Rahmen
| Autor | Nachricht |
|---|---|
|
Verfasst am: 14. 06. 2012 [16:13]
|
|
|
MajPay
Themenersteller
Dabei seit: 27.12.2006
Beiträge: 344
|
Hallo schonwieder, Ich möchte bei meinem aktuellen Typo3 Projekt tt_content so konfigurieren, dass die maximale Bildbreite immer richtig kalkuliert wird. Ich nutze 2 Spalten, left und normal. Dazu habe ich einige Frames angelegt um den Inhalt links oder rechts fließen zu lassen. Es kann also in der Spalte links ein Bild eingestellt werden mit max. 200px Breite und in der Spalte normal mit 749px Breite. Soweit sogut, das habe ich mit etwas Recherche geschafft. In der Spalte normal kann man aber seine Inhaltselemente als "Linke Spalte" oder "Rechte Spalte" oder "Drittel links" etc definieren. Es sollen nun auch nach dieser Auswahl alle Breiten korrekt berechnet werden. Soweit sogut - nun ja, eben nicht ganz. Mein TS: TYPOSCRIPT temp.tt_content.image < tt_content.image tt_content.image = CASE tt_content.image { key.field=colPos 1 < temp.tt_content.image default = CASE default { key.field = section_frame 0 < temp.tt_content.image 30 < temp.tt_content.image 31 < temp.tt_content.image 0.20.maxW = 749 30.20.maxW = 360 31.20.maxW = 360 } 1.20.maxW = 200 } tt_content.textpic.20 < tt_content.image.20 Mein Problem ist nun, dass auf diese Art bei Textpic der Text nicht mehr gerendert wird. Wo habe ich den Denkfehler? |
|
Verfasst am: 15. 06. 2012 [10:17]
|
|
|
Julian.Hofmann
Dabei seit: 18.05.2007
Beiträge: 2073
|
Hallo. Die Erklärung ist eigentlich einfach. Ein Blick in die "CSS styled content": TYPOSCRIPT # ***************** # CType: textpic # ***************** tt_content.textpic = COA tt_content.textpic { 10 = COA 10.if.value = 25 10.if.isLessThan.field = imageorient 10.10 = < lib.stdheader 20 = < tt_content.image.20 20 { text.10 = COA text.10 { if.value = 24 if.isGreaterThan.field = imageorient 10 = < lib.stdheader 10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div> } text.20 = < tt_content.text.20 text.wrap = <div class="csc-textpic-text"> | </div> } } tt_content.image.20 ist eigentlich ein USER-Objekt, wird von Dir jedoch in ein CASE-Objekt umgebaut. Bei textpic wird diesem USER-Objekt noch via text einiges zugewiesen. Dies scheitert bei Dir, weil dann die text-Eigenschaften nicht dem USER-Objekt, sondern Deinem zwischengeschobenen CASE-Objekt zugeordnet werden. Viele Grüße Julian |
|
Verfasst am: 18. 06. 2012 [15:18]
|
|
|
MajPay
Themenersteller
Dabei seit: 27.12.2006
Beiträge: 344
|
Perfekt, ich danke dir! So sieht mein TS nun aus, wenns eine elegantere Lösung hierfür gibt her damit TYPOSCRIPT temp.tt_content.image < tt_content.image tt_content.image = CASE tt_content.image { key.field=colPos 1 < temp.tt_content.image default = CASE default { key.field = section_frame 0 < temp.tt_content.image 30 < temp.tt_content.image 31 < temp.tt_content.image 0.20.maxW = 749 30.20.maxW = 360 31.20.maxW = 360 } 1.20.maxW = 200 } temp.textpictext < tt_content.textpic.20.text tt_content.textpic = CASE tt_content.textpic { key.field=colpos 1 < temp.tt_content.image default = CASE default { key.field = section_frame 0 < temp.tt_content.image 30 < temp.tt_content.image 31 < temp.tt_content.image 0.20.maxW = 749 0.20.text < temp.textpictext 30.20.maxW = 360 30.20.text < temp.textpictext 31.20.maxW = 360 31.20.text < temp.textpictext } 1.20.maxW = 200 1.20.text = temp.textpictext } |
|
Verfasst am: 25. 06. 2012 [16:49]
|
|
|
MajPay
Themenersteller
Dabei seit: 27.12.2006
Beiträge: 344
|
Der Vollständigkeit wegen sollte noch erwähnt sein, dass es Sinn macht die TS Objekte per > Operator zu leeren bevor man sie als CASE Objekt definiert, sonst können mit diesem Lösungsansatz Dinge wie doppelte Headlines das Bild etwas kaputt machen. |



