
Zitat von
Spooky
$this->singleSRC macht bei dir vermutlich auch keinen Sinn - aber da musst du mehr von deinem Code zeigen, was genau du überhaupt machen willst.
Ich folge deinem Hinweis, die event-ID zu nutzen. Mit {{file::getEventbild.php?var=eventid}} im Formular erzeuge ich über getEventbild.php
Code:
<?php $kgsID = \Contao\Input::get(\Contao\Input::get('var'));
echo '{{kgsevent_bild::'.$kgsID.'}}';
?>
einen eigenen Inserttag wie {{kgsevent_bild::123}}. Die entstehen dann in KgsEigenContaoKgsCalendarBundle.php
Code:
namespace KgsEigen\ContaoKgsCalendarBundle\EventListener;
use Contao\CalendarEventsModel;
use Contao\PageModel;
use Contao\FilesModel;
class ReplaceInsertTagsListener
{
public function __invoke(
string $insertTag,
bool $useCache,
string $cachedValue,
array $flags,
array $tags,
array $cache,
int $_rit,
int $_cnt
) {
// Extract tag.
$elements = \explode('::', \explode('|', $insertTag)[0]);
$key = \strtolower($elements[0]);
// Inserttag for event data by id {{kgsevent_bild::123}}
if ('kgsevent_bild' === $key) {
if (empty($elements[1])) {
return '';
}
if (!($event = CalendarEventsModel::findById($elements[1]))) {
return '';
}
return \sprintf(
$event->singleSRC,
);
}
In $event->singleSRC soll nicht der tatsächliche Wert ("DwY?I? *???ZD") stehen, sondern der umgesetzte (FilesModels) Wert "files/Veranstaltungen/Bild.jpg". Ich habe schon mit "$objFile = \FilesModel::findByPk($this->singleSRC)", aber irgendwie sehe ich den Wald vor Bäumen nicht. Für einen kleinen Code-Schnipsel wäre ich sehr dankbar.