From 7e5518888d1f5904a38d89d58150b18e4939a91f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Mummert?= Date: Sat, 27 Dec 2025 15:10:04 +0100 Subject: [PATCH] Bugfix --- .../MeilisearchPageMarkerListener.php | 80 +++---------------- 1 file changed, 10 insertions(+), 70 deletions(-) diff --git a/src/EventListener/MeilisearchPageMarkerListener.php b/src/EventListener/MeilisearchPageMarkerListener.php index 34d3c4c..9c5fdb1 100644 --- a/src/EventListener/MeilisearchPageMarkerListener.php +++ b/src/EventListener/MeilisearchPageMarkerListener.php @@ -17,11 +17,7 @@ class MeilisearchPageMarkerListener return $buffer; } - $data = []; - $debug = []; - - $debug[] = 'Listener gestartet'; - $debug[] = 'Template: ' . $template; + $data = []; /* * ===================== @@ -33,11 +29,6 @@ class MeilisearchPageMarkerListener if (isset($GLOBALS['objPage']) && $GLOBALS['objPage'] instanceof PageModel) { $page = $GLOBALS['objPage']; - $debug[] = 'Page gefunden (ID: ' . $page->id . ')'; - $debug[] = 'Page priority: ' . var_export($page->priority, true); - $debug[] = 'Page keywords: ' . var_export($page->keywords, true); - $debug[] = 'Page searchimage (raw): ' . var_export($page->searchimage, true); - $data['page'] = []; if (!empty($page->priority)) { @@ -48,14 +39,10 @@ class MeilisearchPageMarkerListener $data['page']['keywords'] = trim((string) $page->keywords); } - // tl_page.searchimage ist UUID-String + // tl_page.searchimage ist BINARY → UUID if (!empty($page->searchimage)) { $pageImageUuid = StringUtil::binToUuid($page->searchimage); - $debug[] = 'Page searchimage UUID gesetzt: ' . $pageImageUuid; } - - } else { - $debug[] = 'objPage nicht gesetzt oder falscher Typ'; } /* @@ -69,25 +56,16 @@ class MeilisearchPageMarkerListener $jsonBlocks ); - $debug[] = 'Gefundene JSON-LD Blöcke: ' . count($jsonBlocks[1]); - foreach ($jsonBlocks[1] as $json) { /* * EVENT */ if (preg_match('#"@type"\s*:\s*"Event"#', $json)) { - $debug[] = 'JSON-LD Typ: Event'; - if (preg_match('#\\\/schema\\\/events\\\/(\d+)#', $json, $m)) { - $eventId = (int) $m[1]; - $debug[] = 'Event-ID aus JSON-LD: ' . $eventId; - - $event = CalendarEventsModel::findByPk($eventId); + $event = CalendarEventsModel::findByPk((int) $m[1]); if ($event !== null) { - $debug[] = 'Event geladen'; - $data['event'] = []; if (!empty($event->priority)) { @@ -99,14 +77,8 @@ class MeilisearchPageMarkerListener } if ($event->addImage && !empty($event->singleSRC)) { - $uuid = StringUtil::binToUuid($event->singleSRC); - $data['event']['searchimage'] = $uuid; - $debug[] = 'Event searchimage UUID: ' . $uuid; - } else { - $debug[] = 'Event hat kein Bild'; + $data['event']['searchimage'] = StringUtil::binToUuid($event->singleSRC); } - } else { - $debug[] = 'Event nicht gefunden'; } } } @@ -115,17 +87,10 @@ class MeilisearchPageMarkerListener * NEWS */ if (preg_match('#"@type"\s*:\s*"NewsArticle"#', $json)) { - $debug[] = 'JSON-LD Typ: NewsArticle'; - if (preg_match('#\\\/schema\\\/news\\\/(\d+)#', $json, $m)) { - $newsId = (int) $m[1]; - $debug[] = 'News-ID aus JSON-LD: ' . $newsId; - - $news = NewsModel::findByPk($newsId); + $news = NewsModel::findByPk((int) $m[1]); if ($news !== null) { - $debug[] = 'News geladen'; - $data['news'] = []; if (!empty($news->priority)) { @@ -137,14 +102,8 @@ class MeilisearchPageMarkerListener } if ($news->addImage && !empty($news->singleSRC)) { - $uuid = StringUtil::binToUuid($news->singleSRC); - $data['news']['searchimage'] = $uuid; - $debug[] = 'News searchimage UUID: ' . $uuid; - } else { - $debug[] = 'News hat kein Bild'; + $data['news']['searchimage'] = StringUtil::binToUuid($news->singleSRC); } - } else { - $debug[] = 'News nicht gefunden'; } } } @@ -160,43 +119,29 @@ class MeilisearchPageMarkerListener // 1. EVENT > NEWS if (!empty($data['event']['searchimage'])) { $finalSearchImageUuid = $data['event']['searchimage']; - $debug[] = 'Searchimage aus Event übernommen'; } elseif (!empty($data['news']['searchimage'])) { $finalSearchImageUuid = $data['news']['searchimage']; - $debug[] = 'Searchimage aus News übernommen'; } // 2. CUSTOM SEARCHIMAGE (Markup) if ( $finalSearchImageUuid === null && preg_match('#data-searchimage-uuid="([a-f0-9\-]{36})"#i', $buffer, $m) + && FilesModel::findByUuid($m[1]) !== null ) { - $debug[] = 'Custom searchimage UUID gefunden: ' . $m[1]; - - if (FilesModel::findByUuid($m[1]) !== null) { - $finalSearchImageUuid = $m[1]; - $debug[] = 'Custom searchimage existiert in tl_files'; - } else { - $debug[] = 'Custom searchimage existiert NICHT in tl_files'; - } - } else { - $debug[] = 'Kein Custom searchimage im Markup'; + $finalSearchImageUuid = $m[1]; } // 3. PAGE SEARCHIMAGE if ($finalSearchImageUuid === null && $pageImageUuid) { $finalSearchImageUuid = $pageImageUuid; - $debug[] = 'Searchimage aus Page übernommen'; } // 4. FALLBACK (tl_settings) if ($finalSearchImageUuid === null) { $fallback = Config::get('meilisearch_fallback_image'); - $debug[] = 'Fallback raw: ' . var_export($fallback, true); - if ($fallback) { $finalSearchImageUuid = StringUtil::binToUuid($fallback); - $debug[] = 'Fallback UUID: ' . $finalSearchImageUuid; } } @@ -204,11 +149,8 @@ class MeilisearchPageMarkerListener $data['page']['searchimage'] = $finalSearchImageUuid; } - $debug[] = 'Finale searchimage UUID: ' . var_export($finalSearchImageUuid, true); - $debug[] = 'Finales Data-Array: ' . json_encode($data); - if ($data === []) { - $debug[] = 'Data leer – trotzdem Marker ausgeben (Debug aktiv)'; + return $buffer; } /* @@ -219,9 +161,7 @@ class MeilisearchPageMarkerListener $marker = "\n\n"; return str_contains($buffer, '')