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

Jetzt testen!

Schulungen

Hilfe! IF in TypoScript für Bildergröße


Autor Nachricht
Verfasst am: 24. 05. 2012 [15:54]
salvaracer
Themenersteller
Dabei seit: 12.08.2010
Beiträge: 19
Hallo,

ich möchte im folgenden TypoScript abfragen, ob die Breite größer ist als die Höhe, bzw. die Höhe größer ist als die Breite.
TYPOSCRIPT
lib.displayThumbnail = RECORDS
lib.displayThumbnail {
	source.field = uid
	tables = tt_content
	dontCheckPid = 1
 
	conf.tt_content = IMAGE
	conf.tt_content {
 
		file.import = uploads/pics/
		file.import.field = image
		file.import.listNum = 0
 
		file.width.field >
 
		file.width = 140
		file.height = 105c
	}
}


Im ersten Fall sollen die Größenangaben dann
TYPOSCRIPT
### Wenn Breite größer als Höhe (horizontal)
file.width = 140
file.height = 105c

sein und sonst
TYPOSCRIPT
### Wenn Höhe größer als Breite (vertikal)
file.maxW = 140


Ich hab schon stundenlang mit solchen snippets rumprobiert, aber bekomme es einfach nicht hin
TYPOSCRIPT
# Beispiel
file.width.if {
	value = imagewidth
	isGreaterThen = imageheight
	override.field = imagewidth
	override = 140
	override.field = imageheight
	override = 105c
}



Kann mit jemand mit dieser IF Sache Helfen?


[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 24.05.2012 um 16:38.]
Profil
Verfasst am: 24. 05. 2012 [17:54]
chhe
Dabei seit: 02.03.2006
Beiträge: 108
Eine richtig schöne Lösung gibt es für das Problem m.W. nicht, aber mir trocknet hier auch gerade das Hirn ein. Mir fallen dazu 3 Möglichkeiten ein:

- Per userFunction ein PHP-Skript einbinden, welches dann die Erfüllung der Bedingung prüft.

- Das Bild per GIFBUILDER erzeugen lassen. Darin lädst Du das Originalbild und verarbeitest es dann weiter. Auf die Dimensionen des Bildobjekts 10 könntest Du über 10.w und 10.h zugreifen.

- Es gibt TSFE:lastImageInfo|0 und TSFE:lastImageInfo|1. Darin stehen Breite und Höhe des zuletzt erzeugten Bildes. Dummerweise willst Du aber die Maße des gerade in der Bearbeitung befindlichen. Eine Lösung wäre, das Originalbild kurz vorher einmal in ein IMAGE-Objekt einzulesen, dieses aber nicht ausgeben zu lassen. Dann ständen Dir diese Werte zur Verfügung. Nicht schön, aber möglich.

I smell blood and an era of prominent madmen. - W.H. Auden
Profil
Verfasst am: 25. 05. 2012 [17:28]
salvaracer
Themenersteller
Dabei seit: 12.08.2010
Beiträge: 19
Danke chhe für deine Antwort.

Die Idee mit dem PHP-Script per userFunction hört sich gut an!
Werde ich am Dienstag nach dem langem Wochenende probieren.

Hier habe ich eine kleine Erläuterung zu den Gegebenheiten des Problems:

Auf einer Webseite benutze ich eine CROP Extension (tkcropthumbs), mit der die Redakteure im Backend Bildausschnitte für Bilder wählen können.

Auf der Startseite z.B. verwende ich eine Teaser Extension (pwteaser), mit der ich Seiten und deren Inhalte anteasern kann.

Wenn ein Content Element ein gecroptes Bild hat und ich über das Teaser-Template auf der Startseite das Bild via {content.image.0} ausgebe, bekomme ich das Originalbild.
__________________________________________________________________________

Nach langen Suchen und Probieren bekomme ich das gecroppte Bild mit meinem TypoScript. Im FLUID Template rufe ich das TypoScript wie folgt auf:
HTML
<f:cObject typoscriptObjectPath="lib.displayThumbnail" data="{uid:content.uid}" />



Das gecroppte Bild soll jetzt immer in min.140px Breite und min.105px Höhe angezeigt werden aber nicht gestreckt werden, je nach hohem oder breitem Bild sollen eben die beschriebenen Größenangaben greifen, den Rest schneide ich mit einem DIV und overflow hidden ab.


==================================================================

Wenn das mit der Erfüllung der Bedingung mit dem PHP-Script klappt bin ich echt froh.

Danke erstmal!
Profil
Verfasst am: 25. 05. 2012 [19:47]
chhe
Dabei seit: 02.03.2006
Beiträge: 108
Ich weiß nicht recht, ob ich Dich genau verstehe, aber irgendwie scheint mir, als ob man das auch einfacher erledigen könnte. Schau Dir mal genau die Beschreibung des »crop scaling« in der TSref unter imgResource an. Ich hatte auch mal einen Fall, wo ich erst nach dem Originalbild unterscheiden wollte, aber letztlich war das gar nicht notwendig.

I smell blood and an era of prominent madmen. - W.H. Auden
Profil