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.
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
### Wenn Breite größer als Höhe (horizontal)
file.width = 140
file.height = 105c
sein und sonst
### 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
# 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?
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.
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:
<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!
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.