diff --git a/src/EventListener/IndexPageListener.php b/src/EventListener/IndexPageListener.php index 672879d..008910e 100644 --- a/src/EventListener/IndexPageListener.php +++ b/src/EventListener/IndexPageListener.php @@ -2,6 +2,7 @@ namespace MummertMedia\ContaoMeilisearchBundle\EventListener; +use Contao\Config; use Contao\System; use MummertMedia\ContaoMeilisearchBundle\Service\PdfIndexService; @@ -11,7 +12,22 @@ class IndexPageListener public function onIndexPage(string $content, array &$data, array &$set): void { - // 🔑 Service einmal pro Crawl initialisieren + Reset ausführen + /* + * ===================================================== + * PDF-Indexierung global deaktiviert? + * → sofort raus, nichts anfassen + * ===================================================== + */ + if (!Config::get('meilisearch_index_pdfs')) { + return; + } + + /* + * ===================================================== + * PDF-Service einmal pro Crawl initialisieren + * + Tabelle initial leeren + * ===================================================== + */ if ($this->pdfIndexService === null) { $this->pdfIndexService = System::getContainer()->get(PdfIndexService::class); $this->pdfIndexService->resetTableOnce(); @@ -127,7 +143,7 @@ class IndexPageListener } /* ===================================================== - * PDF-Links im HTML finden + * PDF-Links + Linktext aus HTML extrahieren * ===================================================== */ private function findPdfLinks(string $content): array { @@ -143,7 +159,7 @@ class IndexPageListener foreach ($matches[1] as $i => $href) { $result[] = [ - 'url' => html_entity_decode($href), + 'url' => html_entity_decode($href), 'linkText' => trim(strip_tags($matches[2][$i])) ?: null, ]; } diff --git a/src/Resources/contao/dca/tl_settings.php b/src/Resources/contao/dca/tl_settings.php index dcd63d6..9612545 100644 --- a/src/Resources/contao/dca/tl_settings.php +++ b/src/Resources/contao/dca/tl_settings.php @@ -69,6 +69,15 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_fallback_image'] = [ 'sql' => "varbinary(16) NULL", ]; +$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_pdfs'] = [ + 'label' => &$GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_pdfs'], + 'inputType' => 'checkbox', + 'eval' => [ + 'tl_class' => 'w50', + ], + 'sql' => "char(1) NOT NULL default '1'", +]; + /** * Palette */ @@ -80,4 +89,5 @@ PaletteManipulator::create() ->addField('meilisearch_imagesize', 'meilisearch_legend') ->addField('meilisearch_fallback_image', 'meilisearch_legend') ->addField('meilisearch_index_past_events', 'meilisearch_legend') + ->addField('meilisearch_index_pdfs', 'meilisearch_legend') ->applyToPalette('default', 'tl_settings'); \ No newline at end of file diff --git a/src/Resources/contao/languages/de/tl_settings.php b/src/Resources/contao/languages/de/tl_settings.php index 0739190..da45b92 100644 --- a/src/Resources/contao/languages/de/tl_settings.php +++ b/src/Resources/contao/languages/de/tl_settings.php @@ -23,4 +23,9 @@ $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_past_events'][0] = 'Abgelaufene Events indexieren'; $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_past_events'][1] - = 'Vergangene Kalender-Events werden ebenfalls in Meilisearch indexiert.'; \ No newline at end of file + = 'Vergangene Kalender-Events werden ebenfalls in Meilisearch indexiert.'; + +$GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_pdfs'] = [ + 'PDFs indexieren', + 'Aktiviert die Indexierung von PDF-Dateien für die Suche.', +]; \ No newline at end of file