Add Index Listener

This commit is contained in:
Jürgen Mummert
2025-12-22 17:14:34 +01:00
parent 3d491b5a0f
commit d869f1000d
3 changed files with 14 additions and 35 deletions
+5 -32
View File
@@ -2,44 +2,17 @@
namespace MummertMedia\ContaoMeilisearchBundle\EventListener; namespace MummertMedia\ContaoMeilisearchBundle\EventListener;
use Contao\CoreBundle\ServiceAnnotation\Hook;
use MummertMedia\ContaoMeilisearchBundle\Service\SearchDataProvider;
use Psr\Log\LoggerInterface;
class IndexPageListener class IndexPageListener
{ {
public function __construct(
private readonly SearchDataProvider $dataProvider,
private readonly LoggerInterface $logger
) {}
/** /**
* @Hook("indexPage") * Wird bei jeder Indexierung aufgerufen
*/ */
public function onIndexPage(string $content, array &$data, array &$set): void public function onIndexPage(string $content, array &$data, array &$set): void
{ {
// Log into Symfony / Monolog // absolut eindeutiger Beweis
$this->logger->info('[MEILI] onIndexPage fired', [ error_log('### MEILI TEST LISTENER CALLED ###');
'type' => $set['type'] ?? null,
'set' => $set,
]);
$searchData = $this->dataProvider->getSearchData($set); // optional: Kontext anzeigen
error_log('### MEILI SET: ' . json_encode($set));
$this->logger->info('[MEILI] provider result', [
'result' => $searchData,
]);
if ($searchData === null) {
return;
}
$data['priority'] = (int) $searchData['priority'];
$data['keywords'] = (string) $searchData['keywords'];
$this->logger->info('[MEILI] tl_search updated', [
'priority' => $data['priority'],
'keywords' => $data['keywords'],
]);
} }
} }
+4 -3
View File
@@ -1,5 +1,6 @@
services: services:
MummertMedia\ContaoMeilisearchBundle\Service\SearchDataProvider: ~ MummertMedia\ContaoMeilisearchBundle\:
resource: '../../*'
MummertMedia\ContaoMeilisearchBundle\EventListener\IndexPageListener: autowire: true
autoconfigure: true
public: true public: true
+5
View File
@@ -0,0 +1,5 @@
<?php
use MummertMedia\ContaoMeilisearchBundle\EventListener\IndexPageListener;
$GLOBALS['TL_HOOKS']['indexPage'][] = [IndexPageListener::class, 'onIndexPage'];