Zum Inhalt springen

Typoscript mit Gifbuilder in einem DCE (Update auf 6.2 / FAL)

Erstellt am 18. September 2014 · 2 Antworten · letzte Antwort am 18. September 2014

Tags: Dateien & FAL, DCE, Frage

chrisi51 ·

Hallo, ich hatte lange Zeit ein Typoscript zusammen mit DCE im Einsatz, welches ein gegebenes Bild auf exakt die Maße 255x255 bringt, ohne dabei zu schneiden - also es darf nur skaliert und zentriert werden.

mein Typoscript war bis dato:

lib.productdetailpic = COA
lib.productdetailpic {
  10 = IMAGE
  10 {
    file = GIFBUILDER
    file {
      format = png
      quality = 100
      transparentBackground = 1
      XY = 255,255
      10 = IMAGE
      10 {
        offset = 255-[10.w]/2,255-[10.h]/2
        file {
          format = png
          quality = 100
          import =
          import.current = 1
          import.listNum = 0
          width  =
          height =
          maxW = 255
          maxH = 255
        }
      }
    }
  }
}

Das Template des DCE sieht folgendermaßen aus:

<f:section name="main">	
	<div class="bild"><f:cObject typoscriptObjectPath="lib.productdetailpic" data="fileadmin/{field.imageurl.0.identifier}"  currentValueKey="myurl" /></div>
</f:section>

Das Ganze funktioniert derzeit zwar noch, aber basiert noch auf Dateipfade statt der neuen FAL-Referenzen. Ich möchte es gerade entsprechend umstellen und habe mir ein neues DCE erstellt, welches die Bilder nun per FAL referenziert. Allerdings bekomme ich nicht raus, wie ich im Gifbuilder nun die Referenz korrekt reinlade (oder umkonvertiere?!).

das Template des neuen DCE sieht folgendermaßen aus:

{namespace dce=Tx_Dce_ViewHelpers}
<f:layout name="Default" />

<f:section name="main">
	<f:for each="{dce:fal(field:'thisVariableName', contentObject:contentObject)}" as="fileReference">
	<f:image src="{fileReference.uid}" alt="{field.imagealt}" treatIdAsReference="1" width="60" />
	<div class="bild"><f:cObject typoscriptObjectPath="lib.productdetailpic2" data="{fileReference.uid}" currentValueKey="myurl" /></div>	
</f:for>
</f:section>

Im Prinzip hat das ganze letztlich auch nur den Sinn, das Bild gescheit in den Rahmen einzupassen. Wenn es eine FLUID-Variante gibt, mit der ich Bilder genauso anpassen kann, könnte ich mir das Typoscript natürlich auch sparen, aber soweit ich mich erinnere, ging es leider nicht ohne.

Hat wer eine schlaue Idee? 🙂

Grüße
Chris

chrisi51 ·

Mittlerweile weiß ich, wie ich die Daten bis zum Gifbuilder durchschleife ... allerdings nur dann, wenn ich die Referenz manuell im Typoscript setze: (das Leerzeichen vor publicUrl dient nur zur korrekten Darstellung hier im Forum und muss entfernt werden)

lib.productdetailpic2 = FILES
lib.productdetailpic2 {
  references = 245
  renderObj = COA 
  renderObj { 
    1 = LOAD_REGISTER
    1.publicUrl.cObject = TEXT
    1.publicUrl.cObject.data = file:current: publicUrl

    10 = IMAGE
    10.file = GIFBUILDER
    10.file {
      format = png
      quality = 100
      transparentBackground = 1
      XY = 255,255
      10 = IMAGE
      10 {
        offset = 255-[10.w]/2,255-[10.h]/2
        file {
          format = png
          quality = 100
          import.data = REGISTER: publicUrl
          width  =
          height =
          maxW = 255
          maxH = 255
        }
      }
    }
  }
}

Nun fehlt also noch das Abgreifen der Referenz aus dem DCE

chrisi51 ·

Jetzt ist mir natürlich was ultraschlaues eingefallen xD

ich habe einfach im DCE statt fileReference.uid direkt fileReference.publicUrl ausgegeben wodurch wieder das alte typoscript gültig wird. Da der Gifbuilder ja sowieso ein neues Bild anlegt ist das wohl der deutlich einfachere Weg.

Wie das neue Typoscript aussehen müsste, würde mich dennoch interessieren 🙂