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
+19 -3
View File
@@ -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,
];
}
+10
View File
@@ -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');
@@ -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.';
= '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.',
];