Relativ simpel, wenn man ein sich da ein bisschen reingefuchst hat:
Als erstes erstelle ich ein neues Imagick...-Element, nenn ichs jetzt mal, und lasse davon die Datei auslesen, die als Download-Quelle ausgewählt wurde. Eine kleine Korrektur meinerseits, mit der [0] am Ende wähle ich nur die erste Seite aus, ansonsten erstellt es von allen Seiten einer PDF Bilder.
Code:
$imagick = new Imagick();
$imagick->readImage($this->singleSRC . '[0]');
Danach erstelle ich aus dem Pfad der Quelldatei den Pfad und Namen des Thumbnails, damit man das Bild zuordnen kann. Der erstellte Pfad + Name wird dann von Imagick als Bild abgespeichert.
Code:
$path = substr($this->singleSRC, 0, (strrpos($this->singleSRC,'/') + 1));
$file = substr($this->link, 0, strrpos($this->link, '.')) . '-thumb.jpg';
$filePath = $path . $file;
$imagick->writeImages($filePath, false);
Ich habe die ganze Sache im normalen ce_download.html5 Template eingerichtet und das Imagick kann dabei einfach direkt unter dem block('content') stehen.
Den Code, um das Bild dann mit dem image-template auszugeben habe ich so verstanden (Bitte korrigieren, wenn ich Unsinn schreibe)
Hier füge ich die Daten von meinem Bild in einen Array. Ich habe per dca noch Bildgröße und Alt-Text zum Download-Element hinzugefügt.
Code:
$objImageTemplate = new stdClass();
\Controller::addImageToTemplate($objImageTemplate, [
'singleSRC' => $filePath,
'size' => $this->size,
'alt' => $this->alt,
],
Über die obere Zeile bin ich nicht ganz sicher, ob man die hier braucht, muss ich ganz ehrlich sagen...
In der zweiten Zeile füge ich auf jeden Fall den Array in das image-Template ein, hier bei mir image_download, weil ich das Bild ein bisschen anpassen musste, und gebe damit das Template auch direkt mit aus.
Code:
\Config::get('maxImageWidth'), null, $objHoverFile);
$this->insert('image_download', (array) $objImageTemplate);
Das setzt du einfach dahin, wo dein Bild sein soll.
Mehr gibt es dazu eigentlich nicht zu sagen... Ich bin noch hingegangen und habe dem Downloadelement eine entsprechende Checkbox gegeben, mit dem man das Thumbnail und eine Subpalette mit den Bildeinstellungen öffnen kann, ist aber nicht Pflicht
LG
Florin
Lesezeichen