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

  • 0 x
    19 Beiträge
    0 Hilfreiche Beiträge
    24. 05. 2012, 15:54

    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.

    1. lib.displayThumbnail = RECORDS
    2. lib.displayThumbnail {
    3. source.field = uid
    4. tables = tt_content
    5. dontCheckPid = 1
    6.  
    7. conf.tt_content = IMAGE
    8. conf.tt_content {
    9.  
    10. file.import = uploads/pics/
    11. file.import.field = image
    12. file.import.listNum = 0
    13.  
    14. file.width.field >
    15.  
    16. file.width = 140
    17. file.height = 105c
    18. }
    19. }

    Im ersten Fall sollen die Größenangaben dann

    1. ### Wenn Breite größer als Höhe (horizontal)
    2. file.width = 140
    3. file.height = 105c

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

    Ich hab schon stundenlang mit solchen snippets rumprobiert, aber bekomme es einfach nicht hin

    1. # Beispiel
    2. file.width.if {
    3. value = imagewidth
    4. isGreaterThen = imageheight
    5. override.field = imagewidth
    6. override = 140
    7. override.field = imageheight
    8. override = 105c
    9. }

    Kann mit jemand mit dieser IF Sache Helfen?


  • 1
  • chhe chhe
    R2-D2
    0 x
    108 Beiträge
    0 Hilfreiche Beiträge
    24. 05. 2012, 17:54

    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 [i]zuletzt erzeugten Bildes[/i]. 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.

  • 0 x
    19 Beiträge
    0 Hilfreiche Beiträge
    25. 05. 2012, 17:28

    Danke [b]chhe [/b]für deine Antwort.

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

    [u]Hier habe ich eine kleine Erläuterung zu den Gegebenheiten des Problems:
    [/u]
    Auf einer Webseite benutze ich eine CROP Extension ([url=http://typo3.org/extensions/repository/view/tkcropthumbs]tkcropthumbs[/url]), mit der die Redakteure im Backend Bildausschnitte für Bilder wählen können.

    Auf der Startseite z.B. verwende ich eine Teaser Extension ([url=http://typo3.org/extensions/repository/view/pw_teaser]pwteaser[/url]), 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 [b]{content.image.0}[/b] 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:

    1. <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!

  • chhe chhe
    R2-D2
    0 x
    108 Beiträge
    0 Hilfreiche Beiträge
    25. 05. 2012, 19:47

    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.

  • 1