From c4b1d653d0e74151dc825f87e9779c2cdbe5fe90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Mummert?= Date: Mon, 22 Dec 2025 20:13:20 +0100 Subject: [PATCH] Add Index Listener --- .../MeilisearchPageMarkerListener.php | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/EventListener/MeilisearchPageMarkerListener.php b/src/EventListener/MeilisearchPageMarkerListener.php index b1a45e1..82edffc 100644 --- a/src/EventListener/MeilisearchPageMarkerListener.php +++ b/src/EventListener/MeilisearchPageMarkerListener.php @@ -3,43 +3,52 @@ namespace MummertMedia\ContaoMeilisearchBundle\EventListener; use Contao\PageModel; +use Contao\StringUtil; class MeilisearchPageMarkerListener { public function onOutputFrontendTemplate(string $buffer, string $template): string { - // Nur Frontend-Seiten if (!isset($GLOBALS['objPage']) || !$GLOBALS['objPage'] instanceof PageModel) { return $buffer; } $page = $GLOBALS['objPage']; - // Werte aus tl_page $priority = (int) ($page->priority ?? 0); $keywords = trim((string) ($page->keywords ?? '')); - // Wenn nichts gesetzt ist, nichts tun - if ($priority <= 0 && $keywords === '') { + // 🔹 searchimage (UUID) + $searchImageUuid = null; + if (!empty($page->searchimage)) { + // falls binär → UUID-String + $searchImageUuid = StringUtil::binToUuid($page->searchimage); + } + + if ($priority <= 0 && $keywords === '' && !$searchImageUuid) { return $buffer; } - // Strukturierter Marker (maschinenlesbar) $lines = []; $lines[] = 'MEILISEARCH'; + if ($priority > 0) { $lines[] = 'page.priority=' . $priority; } + if ($keywords !== '') { $lines[] = 'page.keywords=' . $keywords; } + if ($searchImageUuid) { + $lines[] = 'page.searchimage=' . $searchImageUuid; + } + $marker = "\n\n"; - // Marker sicher vor einfügen return str_replace('', $marker . '', $buffer); } } \ No newline at end of file