feat(map): add organization color scheme and improve map controls

This commit is contained in:
Jürgen Mummert
2026-02-25 21:02:33 +01:00
parent 68e991c053
commit 40aaa747d9
8 changed files with 1475 additions and 159 deletions
+78 -1
View File
@@ -9,7 +9,7 @@ use Contao\StringUtil;
$GLOBALS['TL_DCA']['tl_module']['palettes']['member_organizations'] = '{title_legend},name,headline,type;{eventmanager_legend},editPage;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
$GLOBALS['TL_DCA']['tl_module']['palettes']['member_events'] = '{title_legend},name,headline,type;{eventmanager_legend},editPage;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
$GLOBALS['TL_DCA']['tl_module']['palettes']['event_filter'] = '{title_legend},name,headline,type;{eventmanager_legend},cal_calendar,eventListDomId;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
$GLOBALS['TL_DCA']['tl_module']['palettes']['eventmanager_map'] = '{title_legend},name,headline,type;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
$GLOBALS['TL_DCA']['tl_module']['palettes']['eventmanager_map'] = '{title_legend},name,headline,type;{eventmanager_legend},mapShowOrganizations,mapShowExternalOrganizations,mapShowEvents,mapEventColor,mapOrganizationColorScheme,mapCenterMode;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
$GLOBALS['TL_DCA']['tl_module']['palettes']['organization_edit'] = '{title_legend},name,headline,type;{eventmanager_legend},listPage,logoFolder,organizationTypeTags;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
$GLOBALS['TL_DCA']['tl_module']['palettes']['event_edit'] = '{title_legend},name,headline,type;{eventmanager_legend},listPage,eventFolder,termsPage,frontendAuthorId,frontendArchiveId,eventTypeTags;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
@@ -160,6 +160,83 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['eventListDomId'] = [
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
];
$GLOBALS['TL_DCA']['tl_module']['palettes']['__selector__'][] = 'mapCenterMode';
$GLOBALS['TL_DCA']['tl_module']['subpalettes']['mapCenterMode_custom'] = 'mapCenterLat,mapCenterLng,mapCenterZoom';
$GLOBALS['TL_DCA']['tl_module']['fields']['mapShowOrganizations'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapShowOrganizations'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => ['tl_class' => 'w50 m12'],
'sql' => ['type' => 'string', 'length' => 1, 'fixed' => true, 'default' => ''],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapShowExternalOrganizations'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapShowExternalOrganizations'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => ['tl_class' => 'w50 m12'],
'sql' => ['type' => 'string', 'length' => 1, 'fixed' => true, 'default' => ''],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapShowEvents'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapShowEvents'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => ['tl_class' => 'w50 m12'],
'sql' => ['type' => 'string', 'length' => 1, 'fixed' => true, 'default' => ''],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapEventColor'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapEventColor'],
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 7, 'rgxp' => 'hexcolor', 'colorpicker' => true, 'tl_class' => 'w50'],
'sql' => ['type' => 'string', 'length' => 7, 'default' => '#BC5067'],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapOrganizationColorScheme'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapOrganizationColorScheme'],
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 1024, 'tl_class' => 'clr long'],
'sql' => ['type' => 'string', 'length' => 1024, 'default' => ''],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapCenterMode'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapCenterMode'],
'exclude' => true,
'inputType' => 'select',
'options' => ['markers', 'custom'],
'reference' => &$GLOBALS['TL_LANG']['tl_module']['mapCenterMode_options'],
'eval' => ['submitOnChange' => true, 'mandatory' => true, 'tl_class' => 'clr w50', 'includeBlankOption' => false],
'sql' => ['type' => 'string', 'length' => 16, 'default' => 'markers'],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapCenterLat'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapCenterLat'],
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 32, 'tl_class' => 'w50'],
'sql' => ['type' => 'string', 'length' => 32, 'default' => ''],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapCenterLng'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapCenterLng'],
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 32, 'tl_class' => 'w50'],
'sql' => ['type' => 'string', 'length' => 32, 'default' => ''],
];
$GLOBALS['TL_DCA']['tl_module']['fields']['mapCenterZoom'] = [
'label' => &$GLOBALS['TL_LANG']['tl_module']['mapCenterZoom'],
'exclude' => true,
'inputType' => 'text',
'eval' => ['rgxp' => 'digit', 'maxlength' => 2, 'tl_class' => 'w50'],
'sql' => ['type' => 'smallint', 'unsigned' => true, 'default' => 12],
];
if (isset($GLOBALS['TL_DCA']['tl_module']['fields']['list_layout'])) {
$GLOBALS['TL_DCA']['tl_module']['fields']['list_layout']['options_callback'] = static function (): array {
$options = Controller::getTemplateGroup('list_');