This commit is contained in:
Jürgen Mummert
2025-12-25 22:06:53 +01:00
parent d7b9174f32
commit 854713a461
3 changed files with 35 additions and 4 deletions
+18 -2
View File
@@ -2,6 +2,7 @@
namespace MummertMedia\ContaoMeilisearchBundle\EventListener; namespace MummertMedia\ContaoMeilisearchBundle\EventListener;
use Contao\Config;
use Contao\System; use Contao\System;
use MummertMedia\ContaoMeilisearchBundle\Service\PdfIndexService; use MummertMedia\ContaoMeilisearchBundle\Service\PdfIndexService;
@@ -11,7 +12,22 @@ class IndexPageListener
public function onIndexPage(string $content, array &$data, array &$set): void 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) { if ($this->pdfIndexService === null) {
$this->pdfIndexService = System::getContainer()->get(PdfIndexService::class); $this->pdfIndexService = System::getContainer()->get(PdfIndexService::class);
$this->pdfIndexService->resetTableOnce(); $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 private function findPdfLinks(string $content): array
{ {
+10
View File
@@ -69,6 +69,15 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_fallback_image'] = [
'sql' => "varbinary(16) NULL", '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 * Palette
*/ */
@@ -80,4 +89,5 @@ PaletteManipulator::create()
->addField('meilisearch_imagesize', 'meilisearch_legend') ->addField('meilisearch_imagesize', 'meilisearch_legend')
->addField('meilisearch_fallback_image', 'meilisearch_legend') ->addField('meilisearch_fallback_image', 'meilisearch_legend')
->addField('meilisearch_index_past_events', 'meilisearch_legend') ->addField('meilisearch_index_past_events', 'meilisearch_legend')
->addField('meilisearch_index_pdfs', 'meilisearch_legend')
->applyToPalette('default', 'tl_settings'); ->applyToPalette('default', 'tl_settings');
@@ -24,3 +24,8 @@ $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_past_events'][0]
$GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_past_events'][1] $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_past_events'][1]
= 'Vergangene Kalender-Events werden ebenfalls in Meilisearch indexiert.'; = '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.',
];