TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

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?
ProfilWWW
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
Profil
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 icon_smile.gif

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
}
ProfilWWW
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.
ProfilWWW