Add conditional Tika URL setting

This commit is contained in:
Jürgen Mummert
2026-01-09 11:53:51 +01:00
parent 8d4af1f61d
commit cd9b918aff
2 changed files with 42 additions and 17 deletions
+37 -16
View File
@@ -2,6 +2,7 @@
use Contao\CoreBundle\DataContainer\PaletteManipulator; use Contao\CoreBundle\DataContainer\PaletteManipulator;
use Contao\System; use Contao\System;
use Contao\Config;
/** /**
* ------------------------------------------------- * -------------------------------------------------
@@ -58,9 +59,9 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_imagesize'] = [
return $options; return $options;
}, },
'eval' => [ 'eval' => [
'tl_class' => 'w50', 'tl_class' => 'w50',
'chosen' => true, 'chosen' => true,
'includeBlankOption' => true, 'includeBlankOption' => true,
], ],
'sql' => "int(10) unsigned NOT NULL default 0", 'sql' => "int(10) unsigned NOT NULL default 0",
]; ];
@@ -83,7 +84,9 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_past_events'] = [
]; ];
/** /**
* -------------------------------------------------
* PDF / Office Indexierung * PDF / Office Indexierung
* -------------------------------------------------
*/ */
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_pdfs'] = [ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_pdfs'] = [
@@ -107,7 +110,29 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_office'] = [
]; ];
/** /**
* Tika URL (nur sichtbar wenn PDFs oder Office aktiv) * -------------------------------------------------
* Virtueller Sammel-Selector (intern)
* -------------------------------------------------
*/
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_documents'] = [
'inputType' => 'checkbox',
'eval' => [
'doNotShow' => true,
],
'load_callback' => [
static function () {
return (Config::get('meilisearch_index_pdfs') || Config::get('meilisearch_index_office'))
? '1'
: '';
},
],
];
/**
* -------------------------------------------------
* Tika URL (GENAU EINMAL!)
* -------------------------------------------------
*/ */
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_tika_url'] = [ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_tika_url'] = [
@@ -121,17 +146,13 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_tika_url'] = [
/** /**
* ------------------------------------------------- * -------------------------------------------------
* Selector / Subpalettes * Selector / Subpalette
* ------------------------------------------------- * -------------------------------------------------
*/ */
$GLOBALS['TL_DCA']['tl_settings']['palettes']['__selector__'][] = 'meilisearch_index_pdfs'; $GLOBALS['TL_DCA']['tl_settings']['palettes']['__selector__'][] = 'meilisearch_index_documents';
$GLOBALS['TL_DCA']['tl_settings']['palettes']['__selector__'][] = 'meilisearch_index_office';
$GLOBALS['TL_DCA']['tl_settings']['subpalettes']['meilisearch_index_pdfs'] $GLOBALS['TL_DCA']['tl_settings']['subpalettes']['meilisearch_index_documents']
= 'meilisearch_tika_url';
$GLOBALS['TL_DCA']['tl_settings']['subpalettes']['meilisearch_index_office']
= 'meilisearch_tika_url'; = 'meilisearch_tika_url';
/** /**
@@ -155,16 +176,16 @@ PaletteManipulator::create()
/** /**
* ------------------------------------------------- * -------------------------------------------------
* Optional: Absicherung beim Speichern * Absicherung beim Speichern
* ------------------------------------------------- * -------------------------------------------------
*/ */
$GLOBALS['TL_DCA']['tl_settings']['config']['onsubmit_callback'][] = static function () { $GLOBALS['TL_DCA']['tl_settings']['config']['onsubmit_callback'][] = static function () {
$indexPdf = (bool) \Contao\Config::get('meilisearch_index_pdfs'); $pdf = (bool) Config::get('meilisearch_index_pdfs');
$indexOffice = (bool) \Contao\Config::get('meilisearch_index_office'); $office = (bool) Config::get('meilisearch_index_office');
$tikaUrl = \Contao\Config::get('meilisearch_tika_url'); $tika = Config::get('meilisearch_tika_url');
if (($indexPdf || $indexOffice) && !$tikaUrl) { if (($pdf || $office) && !$tika) {
throw new \RuntimeException( throw new \RuntimeException(
'Die Tika-URL ist erforderlich, wenn PDF- oder Office-Indexierung aktiviert ist.' 'Die Tika-URL ist erforderlich, wenn PDF- oder Office-Indexierung aktiviert ist.'
); );
@@ -34,4 +34,8 @@ $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_pdfs'] = [
]; ];
$GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_office'] $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_office']
= ['Office-Dateien indexieren', 'DOCX, XLSX und PPTX in die Suche aufnehmen.']; = ['Office-Dateien indexieren', 'DOCX, XLSX und PPTX in die Suche aufnehmen.'];
$GLOBALS['TL_LANG']['tl_settings']['meilisearch_tika_url']
= ['Apache Tika URL', 'URL der Apache Tika Instanz (z. B. https://tika.domain.tld).'];