Files
meilisearch-bundle/src/Resources/contao/dca/tl_settings.php
T
Jürgen Mummert 2bd52f77e0 new Twig
2026-01-09 22:04:52 +01:00

136 lines
3.8 KiB
PHP

<?php
use Contao\CoreBundle\DataContainer\PaletteManipulator;
use Contao\System;
/**
* -------------------------------------------------
* Fields
* -------------------------------------------------
*/
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_host'] = [
'inputType' => 'text',
'eval' => [
'mandatory' => true,
'rgxp' => 'url',
'tl_class' => 'w50',
],
];
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index'] = [
'inputType' => 'text',
'eval' => [
'mandatory' => true,
'tl_class' => 'w50',
],
];
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_api_write'] = [
'inputType' => 'text',
'eval' => [
'mandatory' => true,
'tl_class' => 'w50',
'hideInput' => true,
],
];
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_api_search'] = [
'inputType' => 'text',
'eval' => [
'mandatory' => true,
'tl_class' => 'w50',
'hideInput' => true,
],
];
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_imagesize'] = [
'inputType' => 'select',
'options_callback' => static function () {
$db = System::getContainer()->get('database_connection');
$rows = $db->fetchAllAssociative('SELECT id, name FROM tl_image_size ORDER BY name');
$options = ['' => '-'];
foreach ($rows as $row) {
$options[$row['id']] = $row['name'] . ' (ID ' . $row['id'] . ')';
}
return $options;
},
'eval' => [
'tl_class' => 'w50',
'chosen' => true,
'includeBlankOption' => true,
],
'sql' => "int(10) unsigned NOT NULL default 0",
];
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_fallback_image'] = [
'inputType' => 'fileTree',
'eval' => [
'filesOnly' => true,
'fieldType' => 'radio',
'tl_class' => 'w50',
],
'sql' => "varbinary(16) NULL",
];
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_past_events'] = [
'inputType' => 'checkbox',
'eval' => [
'tl_class' => 'w50 clr',
],
];
/**
* -------------------------------------------------
* Datei-Indexierung (Tika)
* -------------------------------------------------
*/
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_index_files'] = [
'inputType' => 'checkbox',
'eval' => [
'tl_class' => 'w50',
'submitOnChange' => true,
],
'sql' => "char(1) NOT NULL default '0'",
];
$GLOBALS['TL_DCA']['tl_settings']['fields']['meilisearch_tika_url'] = [
'inputType' => 'text',
'eval' => [
'rgxp' => 'url',
'mandatory' => true,
'tl_class' => 'w50 clr',
],
];
/**
* -------------------------------------------------
* Selector / Subpalette
* -------------------------------------------------
*/
$GLOBALS['TL_DCA']['tl_settings']['palettes']['__selector__'][] = 'meilisearch_index_files';
$GLOBALS['TL_DCA']['tl_settings']['subpalettes']['meilisearch_index_files']
= 'meilisearch_tika_url';
/**
* -------------------------------------------------
* Palette
* -------------------------------------------------
*/
PaletteManipulator::create()
->addLegend('meilisearch_legend', null, PaletteManipulator::POSITION_AFTER, true)
->addField('meilisearch_host', 'meilisearch_legend')
->addField('meilisearch_index', 'meilisearch_legend')
->addField('meilisearch_api_write', 'meilisearch_legend')
->addField('meilisearch_api_search', 'meilisearch_legend')
->addField('meilisearch_imagesize', 'meilisearch_legend')
->addField('meilisearch_fallback_image', 'meilisearch_legend')
->addField('meilisearch_index_past_events', 'meilisearch_legend')
->addField('meilisearch_index_files', 'meilisearch_legend')
->applyToPalette('default', 'tl_settings');