Problem gelöst, ein Kollege hat bereits 2018 die search-default.html5 so angepasst, daß auch die Eventvariablen (Datum, Location, Teasertext und Teaserbild) mit ausgegeben werden:
HTML-Code:
<?php
// "saubere" url erzeugen
$url = substr($this->url, (strrpos($this->url, "/") + 1));
// event model holen
$event = \CalendarEventsModel::findOneByAlias($url);
// calendar model holen
$calendar = \CalendarModel::findById($event->pid);
// thumbnail holen
$objFile = FilesModel::findByUuid($event->singleSRC);
if ($objFile->path)
$picture = \Picture::create($objFile->path, 2)->getTemplateData(); // 2 = Contao Bild Preset "Event Teaser"
$picture['alt'] = specialchars($event->alt);
$picture['title'] = specialchars($event->title);
if ($objFile->meta) { // zu dem Bild sind Metadaten eingetragen
$meta = deserialize($objFile->meta);
if (!is_null($meta['de']['title'])) { // es steht etwas im Title-Feld des Bildes
$picture['title'] = specialchars($meta['de']['title']);
}
}
?>
<div class="mod_eventlist">
<div class="event layout_teaser <?= $calendar->title ?>" itemscope itemtype="http://schema.org/Event">
<div class="archivname" style="display:none"><?php echo $calendar->title ?></div>
<?php if ($event->addImage): ?>
<figure class="image_container">
<?php $this->insert('picture_default', $picture); ?>
</figure>
<?php endif; ?>
<div class="header<?= $event->classHeader ?>">
<span class="day"><?php echo $this->parseDate("D", $event->startDate); ?></span>
<span class="date" itemprop="startDate" content="<?php echo $this->parseDate("Y-m-d", $this->startDate); ?><?php if ($event->addTime): ?>T<?php echo $this->parseDate("H:i", $event->startTime); ?><?php endif; ?>"><?php echo $this->parseDate("d.m.y", $event->startDate); ?></span>
<span class="time">
<?php if ($event->addTime): ?>
<?php if ($event->startTime != $event->endTime): ?>
<?php echo $this->parseDate("H:i", $event->startTime); ?>-<?php echo $this->parseDate("H:i", $event->endTime); ?> Uhr
<?php endif; ?>
<?php if ($event->startTime == $event->endTime): ?>
<?php echo $this->parseDate("H:i", $event->startTime); ?> Uhr
<?php endif; ?>
<?php endif; ?>
</span>
<?php if ($event->endDate): ?>
<span class="trenner">-</span>
<span class="end day"><?php echo $this->parseDate("D", $event->endDate); ?></span>
<span class="end date" itemprop="endDate" content="<?php echo $this->parseDate("Y-m-d", $this->endDate); ?>"><?php echo $this->parseDate("d.m.y", $event->endDate); ?></span>
<?php endif; ?>
</div>
<?php if ($this->url): ?>
<h2 itemprop="name"><a href="<?= $this->url; ?>" itemprop="url"><?= $event->title ?></a></h2>
<?php else: ?>
<h2 itemprop="name"><span class="nolink"><?= $event->title ?></span></h2>
<?php endif; ?>
<div class="ce_text block" itemprop="description">
<?php if ($event->location): ?>
<span class="location" itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="name">MUK - <?= $event->location ?></span>
</span>
<?php endif; ?>
<?php echo $event->teaser; ?>
</div>
</div>
</div>
Als Referenzseite im entsprechenden Modul „Suchmaschine“ ist die Event-Detailseite mit dem EventReader eingestellt.
Damit hat es seit 2018 unter Contao 4.4 sehr gut funktioniert.
Seit dem Update von Contao 4.4 auf 4.9 funktioniert diese Eventsuche leider nur noch fehlerhaft - welche Events gefunden werden und welche nicht erscheint nun etwas willkürlich. Hier die Webseite: www.muk.de (Menüpunkt „Programm“)
Auf der Webseite ist eine weitere Suchfunktion mit einem Suchmaschinenmodul eingebunden, das nicht nur die Events sondern auch alle anderen Seiten durchsucht (Keine Referenzseite eingestellt). Das findet auch weiterin alle Events (Im Menü ganz oben unter „Suche“).
Habe den Suchindex mit dem Crawler mehrmals neu aufgebaut, keine Veränderung.
Am den modifizierten Template search_default.html5 dürfte es eigentlich auch nicht liegen, weil dies lediglich die Anzeige der Suchergebnisse beeinflusst, aber nicht die Suchfunktion bzw. die Suchergebnisse selbst.
Jemand ne Idee woran es liegen könnte?
Lesezeichen