Wenn man ein Model hat und hier mit Image-Objekten arbeitet, dann kann man bereits im Fluid-Template komplette Bilder ausgeben.
Wenn man aber in einer Flexform auf sys_file_references setzt, dann kommt man in Fluid nicht direkt an das Bildobjekt. Man muss sich diese Daten erst zuvor auf PHP-Ebene holen und im Template verfügbar machen.
Dazu findet ihr unten eine kleine Methode um die benötigten Dateien direkt aus dem fileRepository zu holen.
Methode
protected function getFileReferences($tt_content) { $uid = $tt_content; // content element uid $fileRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\FileRepository'); $fileObjects = $fileRepository->findByRelation('tt_content', 'image', $uid); // get Imageobject information $files = array(); //print_r($fileObjects); foreach ($fileObjects as $key => $value) { $files[$key]['reference'] = $value->getReferenceProperties(); $files[$key]['original'] = $value->getOriginalFile()->getProperties(); } return $files; }
Benutzung
Nach dem man über assign das Images-Array an den View übergeben hat, kann man in Fluid über {images} auf alle gefunden Bilder zugreifen.
$this->contentObj = $this->configurationManager->getContentObject(); $images=$this->getFileReferences($this->contentObj->data['uid']); $this->view->assign('images', $images);
Fluid
<f:for each="{images}" as="image" iteration="itemIteration"> <f:image src="{image.reference.uid}" width="{settings.image.width}c" height="settings.image.height}c" treatIdAsReference="1" /> </f:for>