Add Index Listener
This commit is contained in:
@@ -3,34 +3,34 @@
|
||||
namespace MummertMedia\ContaoMeilisearchBundle\EventListener;
|
||||
|
||||
use Contao\CalendarEventsModel;
|
||||
use Contao\Template;
|
||||
|
||||
class MeilisearchEventMarkerListener
|
||||
{
|
||||
public function onParseFrontendTemplate(string $buffer, string $template): string
|
||||
public function onParseTemplate(Template $template): void
|
||||
{
|
||||
if ($template !== 'mod_eventreader') {
|
||||
return $buffer;
|
||||
// Exakter Template-Name – kein Raten
|
||||
if ($template->getName() !== 'mod_eventreader') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
!isset($GLOBALS['objEvent']) ||
|
||||
!$GLOBALS['objEvent'] instanceof CalendarEventsModel
|
||||
) {
|
||||
return $buffer;
|
||||
return;
|
||||
}
|
||||
|
||||
// 🔥 Event vollständig aus DB laden
|
||||
// 🔥 Event vollständig laden (inkl. Custom-Felder)
|
||||
$event = CalendarEventsModel::findByPk($GLOBALS['objEvent']->id);
|
||||
|
||||
if ($event === null) {
|
||||
return $buffer;
|
||||
return;
|
||||
}
|
||||
|
||||
$GLOBALS['MEILISEARCH_MARKERS']['event'] = [
|
||||
'priority' => (int) ($event->priority ?? 0),
|
||||
'keywords' => trim((string) ($event->keywords ?? '')),
|
||||
];
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
}
|
||||
@@ -3,34 +3,34 @@
|
||||
namespace MummertMedia\ContaoMeilisearchBundle\EventListener;
|
||||
|
||||
use Contao\NewsModel;
|
||||
use Contao\Template;
|
||||
|
||||
class MeilisearchNewsMarkerListener
|
||||
{
|
||||
public function onParseFrontendTemplate(string $buffer, string $template): string
|
||||
public function onParseTemplate(Template $template): void
|
||||
{
|
||||
if ($template !== 'mod_newsreader') {
|
||||
return $buffer;
|
||||
// Nur News-Reader
|
||||
if ($template->getName() !== 'mod_newsreader') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
!isset($GLOBALS['objNews']) ||
|
||||
!$GLOBALS['objNews'] instanceof NewsModel
|
||||
!isset($GLOBALS['objArticle']) ||
|
||||
!$GLOBALS['objArticle'] instanceof NewsModel
|
||||
) {
|
||||
return $buffer;
|
||||
return;
|
||||
}
|
||||
|
||||
// News vollständig nachladen (Custom-Felder!)
|
||||
$news = NewsModel::findByPk($GLOBALS['objNews']->id);
|
||||
// 🔥 News vollständig laden (inkl. Custom-Felder)
|
||||
$news = NewsModel::findByPk($GLOBALS['objArticle']->id);
|
||||
|
||||
if ($news === null) {
|
||||
return $buffer;
|
||||
return;
|
||||
}
|
||||
|
||||
$GLOBALS['MEILISEARCH_MARKERS']['news'] = [
|
||||
'priority' => (int) ($news->priority ?? 0),
|
||||
'keywords' => trim((string) ($news->keywords ?? '')),
|
||||
];
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
}
|
||||
@@ -15,14 +15,14 @@ $GLOBALS['TL_HOOKS']['indexPage'][] = [
|
||||
'onIndexPage'
|
||||
];
|
||||
|
||||
$GLOBALS['TL_HOOKS']['parseFrontendTemplate'][] = [
|
||||
$GLOBALS['TL_HOOKS']['parseTemplate'][] = [
|
||||
MeilisearchNewsMarkerListener::class,
|
||||
'onParseFrontendTemplate',
|
||||
'onParseTemplate',
|
||||
];
|
||||
|
||||
$GLOBALS['TL_HOOKS']['parseFrontendTemplate'][] = [
|
||||
$GLOBALS['TL_HOOKS']['parseTemplate'][] = [
|
||||
MeilisearchEventMarkerListener::class,
|
||||
'onParseFrontendTemplate',
|
||||
'onParseTemplate',
|
||||
];
|
||||
|
||||
$GLOBALS['MEILISEARCH_MARKERS'] = [];
|
||||
Reference in New Issue
Block a user