diff --git a/composer.json b/composer.json index 1ac4353..98af53a 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,10 @@ "ezyang/htmlpurifier": "^4.19", "guzzlehttp/guzzle": "^7.10", "meilisearch/meilisearch-php": "^1.16", - "smalot/pdfparser": "^2.12" + "smalot/pdfparser": "^2.12", + "phpoffice/phpword": "^1.4", + "phpoffice/phpspreadsheet": "^5.3", + "phpoffice/phppresentation": "^1.2" }, "autoload": { "psr-4": { diff --git a/src/Resources/contao/dca/tl_search_pdf.php b/src/Resources/contao/dca/tl_search_pdf.php index b7a3123..47c0c88 100644 --- a/src/Resources/contao/dca/tl_search_pdf.php +++ b/src/Resources/contao/dca/tl_search_pdf.php @@ -11,6 +11,7 @@ $GLOBALS['TL_DCA']['tl_search_pdf'] = [ 'checksum' => 'unique', 'page_id' => 'index', 'url' => 'index', + 'type' => 'index', // ⬅️ NEU ], ], ], @@ -25,7 +26,14 @@ $GLOBALS['TL_DCA']['tl_search_pdf'] = [ ], /* - * Absolute oder normalisierte PDF-URL + * Dateityp: pdf | docx | xlsx | pptx + */ + 'type' => [ // ⬅️ NEU + 'sql' => "varchar(16) NOT NULL default 'pdf'", + ], + + /* + * Absolute oder normalisierte Datei-URL * z. B. /files/pdf/foo.pdf */ 'url' => [ @@ -40,7 +48,7 @@ $GLOBALS['TL_DCA']['tl_search_pdf'] = [ ], /* - * Geparster PDF-Text + * Geparster Datei-Text (PDF / Office) */ 'text' => [ 'sql' => "mediumtext NULL", @@ -63,8 +71,8 @@ $GLOBALS['TL_DCA']['tl_search_pdf'] = [ ], /* - * Dateizeitstempel der PDF - * → optional, aber extrem hilfreich + * Dateizeitstempel + * → wichtig für Re-Indexierung */ 'file_mtime' => [ 'sql' => "int(10) unsigned NOT NULL default 0", diff --git a/src/Resources/contao/dca/tl_settings.php b/src/Resources/contao/dca/tl_settings.php index 9612545..04cef75 100644 --- a/src/Resources/contao/dca/tl_settings.php +++ b/src/Resources/contao/dca/tl_settings.php @@ -78,6 +78,13 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_pdfs'] = [ 'sql' => "char(1) NOT NULL default '1'", ]; +$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_office'] = [ + 'label' => &$GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_office'], + 'inputType' => 'checkbox', + 'eval' => ['tl_class' => 'w50'], + 'sql' => "char(1) NOT NULL default '0'", +]; + /** * Palette */ @@ -90,4 +97,5 @@ PaletteManipulator::create() ->addField('meilisearch_fallback_image', 'meilisearch_legend') ->addField('meilisearch_index_past_events', 'meilisearch_legend') ->addField('meilisearch_index_pdfs', 'meilisearch_legend') + ->addField('meilisearch_index_office', '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 da45b92..9ab6b2c 100644 --- a/src/Resources/contao/languages/de/tl_settings.php +++ b/src/Resources/contao/languages/de/tl_settings.php @@ -28,4 +28,7 @@ $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_past_events'][1] $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 +]; + +$GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_office'] + = ['Office-Dateien indexieren', 'DOCX, XLSX und PPTX in die Suche aufnehmen.']; \ No newline at end of file