diff --git a/src/EventListener/MeilisearchPageMarkerListener.php b/src/EventListener/MeilisearchPageMarkerListener.php
index 126b934..1e6f7c8 100644
--- a/src/EventListener/MeilisearchPageMarkerListener.php
+++ b/src/EventListener/MeilisearchPageMarkerListener.php
@@ -37,6 +37,21 @@ class MeilisearchPageMarkerListener
}
}
+ /*
+ * =====================
+ * KEYWORDS AUS FRONTEND (Catalog Manager)
+ * =====================
+ */
+ $frontendKeywords = [];
+
+ if (preg_match(
+ '#
]+id=["\']keywords["\'][^>]+meilisearch-keywords=["\']([^"\']+)["\']#i',
+ $buffer,
+ $m
+ )) {
+ $frontendKeywords = preg_split('/\s+/', trim($m[1]));
+ }
+
/*
* =====================
* PAGE (Basisdaten)
@@ -150,6 +165,48 @@ class MeilisearchPageMarkerListener
}
}
+ /*
+ * =====================
+ * KEYWORDS ZUSAMMENFĂHREN
+ * =====================
+ */
+ $allKeywords = [];
+
+ if (!empty($data['page']['keywords'])) {
+ $allKeywords = array_merge(
+ $allKeywords,
+ preg_split('/\s+/', $data['page']['keywords'])
+ );
+ }
+
+ if (!empty($data['event']['keywords'])) {
+ $allKeywords = array_merge(
+ $allKeywords,
+ preg_split('/\s+/', $data['event']['keywords'])
+ );
+ }
+
+ if (!empty($data['news']['keywords'])) {
+ $allKeywords = array_merge(
+ $allKeywords,
+ preg_split('/\s+/', $data['news']['keywords'])
+ );
+ }
+
+ if (!empty($frontendKeywords)) {
+ $allKeywords = array_merge($allKeywords, $frontendKeywords);
+ }
+
+ $allKeywords = array_unique(
+ array_filter(
+ array_map('trim', $allKeywords)
+ )
+ );
+
+ if ($allKeywords !== []) {
+ $data['page']['keywords'] = implode(' ', $allKeywords);
+ }
+
/*
* =====================
* FINALE SEARCHIMAGE-ENTSCHEIDUNG
@@ -157,7 +214,6 @@ class MeilisearchPageMarkerListener
*/
$finalSearchImageUuid = null;
- // đ„ TOP-PRIORITĂT: Content-Bild
if ($contentImageUuid !== null) {
$finalSearchImageUuid = $contentImageUuid;
}
@@ -205,7 +261,6 @@ class MeilisearchPageMarkerListener
if ($contentImageUuid) {
$metaParts[] = 'content_searchimage=' . $contentImageUuid;
}
-
if (!empty($data['event']['startDate'])) {
$metaParts[] = 'event_startDate=' . $data['event']['startDate'];
}