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
+34 -13
View File
@@ -2,6 +2,7 @@
use Contao\CoreBundle\DataContainer\PaletteManipulator;
use Contao\System;
use Contao\Config;
/**
* -------------------------------------------------
@@ -83,7 +84,9 @@ $GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_past_events'] = [
];
/**
* -------------------------------------------------
* PDF / Office Indexierung
* -------------------------------------------------
*/
$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'] = [
@@ -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_office';
$GLOBALS['TL_DCA']['tl_settings']['palettes']['__selector__'][] = 'meilisearch_index_documents';
$GLOBALS['TL_DCA']['tl_settings']['subpalettes']['meilisearch_index_pdfs']
= 'meilisearch_tika_url';
$GLOBALS['TL_DCA']['tl_settings']['subpalettes']['meilisearch_index_office']
$GLOBALS['TL_DCA']['tl_settings']['subpalettes']['meilisearch_index_documents']
= '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 () {
$indexPdf = (bool) \Contao\Config::get('meilisearch_index_pdfs');
$indexOffice = (bool) \Contao\Config::get('meilisearch_index_office');
$tikaUrl = \Contao\Config::get('meilisearch_tika_url');
$pdf = (bool) Config::get('meilisearch_index_pdfs');
$office = (bool) Config::get('meilisearch_index_office');
$tika = Config::get('meilisearch_tika_url');
if (($indexPdf || $indexOffice) && !$tikaUrl) {
if (($pdf || $office) && !$tika) {
throw new \RuntimeException(
'Die Tika-URL ist erforderlich, wenn PDF- oder Office-Indexierung aktiviert ist.'
);
@@ -35,3 +35,7 @@ $GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_pdfs'] = [
$GLOBALS['TL_LANG']['tl_settings']['meilisearch_index_office']
= ['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).'];