Hallo zusammen,
ich kämpfe gerade mit dem Problem, mehrere Bilder in einem Template in meinem DCA auszugeben.
Dazu würde ich gerne das Image Studio von Contao verwenden (im Controller funktioniert alles wunderbar):
PHP-Code:
protected function addParamsToTemplate(Template $template, ContentModel $model, Request $request): void
{
// Add an image
if (!empty($model->singleSRC)) {
$objModel = FilesModel::findByUuid($model->singleSRC);
if (null !== $objModel && is_file(System::getContainer()->getParameter('kernel.project_dir').'/'.$objModel->path)) {
$figureBuilder = System::getContainer()
->get(Studio::class)
->createFigureBuilder();
$figureBuilder
->fromPath($objModel->path)
->setSize($model->size)
->setOptions(['attr' => ['class' => 'custom-figure']]);
$figure = $figureBuilder->build();
$template->setData($figure->getLegacyTemplateData());
}
}
}
Im Template (.html5) verwende ich das Inserttag, um das erste Bild anzuzeigen (das funktioniert auch problemlos):
HTML-Code:
<?php $this->insert('image', $this->arrData); ?>
Meine Frage ist, wie ich den Controller-Code anpassen muss, um ein zweites Bild im Template ausgeben zu können? Denn in der DCA-Palette steht:
PHP-Code:
$GLOBALS['TL_DCA'][$tableName]['fields']['second_img'] = [
'exclude' => true,
'inputType' => 'fileTree',
'eval' => [
'context' => 'file',
'pickerFilter' => null,
'fieldType' => 'radio',
'filesOnly' => true,
'multiple' => false,
'tl_class' => 'clr',
'extensions' => Config::get('validImageTypes'),
],
'sql' => ['type' => 'binary_string', 'length' => 16, 'fixed' => true, 'notnull' => false],
'foreignKey' => 'tl_files.name',
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
];
Danke und viele Grüße
Lesezeichen