&$GLOBALS['TL_LANG']['tl_module']['editPage'], 'exclude' => true, 'inputType' => 'pageTree', 'eval' => ['fieldType' => 'radio', 'mandatory' => true, 'tl_class' => 'w50'], 'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['listPage'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['listPage'], 'exclude' => true, 'inputType' => 'pageTree', 'eval' => ['fieldType' => 'radio', 'mandatory' => true, 'tl_class' => 'w50'], 'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['logoFolder'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['logoFolder'], 'exclude' => true, 'inputType' => 'fileTree', 'eval' => ['fieldType' => 'radio', 'files' => false, 'mandatory' => true, 'tl_class' => 'w50'], 'sql' => ['type' => 'binary', 'length' => 16, 'notnull' => false], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['eventFolder'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['eventFolder'], 'exclude' => true, 'inputType' => 'fileTree', 'eval' => ['fieldType' => 'radio', 'files' => false, 'mandatory' => true, 'tl_class' => 'w50'], 'sql' => ['type' => 'binary', 'length' => 16, 'notnull' => false], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['termsPage'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['termsPage'], 'exclude' => true, 'inputType' => 'pageTree', 'eval' => ['fieldType' => 'radio', 'mandatory' => false, 'tl_class' => 'w50'], 'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['frontendAuthorId'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['frontendAuthorId'], 'exclude' => true, 'inputType' => 'text', 'eval' => ['mandatory' => true, 'rgxp' => 'digit', 'maxlength' => 10, 'tl_class' => 'w50'], 'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['frontendArchiveId'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['frontendArchiveId'], 'exclude' => true, 'inputType' => 'text', 'eval' => ['mandatory' => true, 'rgxp' => 'digit', 'maxlength' => 10, 'tl_class' => 'w50'], 'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['organizationTypeTags'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['organizationTypeTags'], 'exclude' => true, 'inputType' => 'checkbox', 'options_callback' => static function () { $rows = Database::getInstance() ->prepare('SELECT DISTINCT t.id, t.tag FROM tl_tags t LEFT JOIN tl_tags_rel r ON r.tag_id=t.id AND r.ptable=? AND r.field=? ORDER BY t.tag ASC') ->execute('tl_organization', 'tags') ->fetchAllAssoc(); $options = []; foreach ($rows as $row) { $options[(int) $row['id']] = (string) $row['tag']; } return $options; }, 'eval' => ['multiple' => true, 'tl_class' => 'clr'], 'sql' => ['type' => 'blob', 'notnull' => false], 'save_callback' => [ static function ($value): array { return array_values(array_unique(array_map('intval', StringUtil::deserialize($value, true)))); }, ], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['eventTypeTags'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['eventTypeTags'], 'exclude' => true, 'inputType' => 'checkbox', 'options_callback' => static function () { $rows = Database::getInstance() ->prepare('SELECT DISTINCT t.id, t.tag FROM tl_tags t LEFT JOIN tl_tags_rel r ON r.tag_id=t.id AND r.ptable=? AND r.field=? ORDER BY t.tag ASC') ->execute('tl_calendar_events', 'tags') ->fetchAllAssoc(); $options = []; foreach ($rows as $row) { $options[(int) $row['id']] = (string) $row['tag']; } return $options; }, 'eval' => ['multiple' => true, 'tl_class' => 'clr'], 'sql' => ['type' => 'blob', 'notnull' => false], 'save_callback' => [ static function ($value): array { return array_values(array_unique(array_map('intval', StringUtil::deserialize($value, true)))); }, ], ]; $GLOBALS['TL_DCA']['tl_module']['fields']['eventListDomId'] = [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['eventListDomId'], 'exclude' => true, 'inputType' => 'select', 'options_callback' => static function (): array { $rows = Database::getInstance() ->prepare('SELECT id, name, cssID FROM tl_module WHERE type=? ORDER BY name ASC, id ASC') ->execute('eventlist') ->fetchAllAssoc(); $options = []; foreach ($rows as $row) { $moduleId = (int) ($row['id'] ?? 0); if ($moduleId <= 0) { continue; } $cssId = StringUtil::deserialize($row['cssID'] ?? null, true); $domId = trim((string) ($cssId[0] ?? '')); $domId = '' !== $domId ? $domId : sprintf('mod_eventlist_%d', $moduleId); $moduleName = trim((string) ($row['name'] ?? '')); if ('' === $moduleName) { $moduleName = sprintf('Eventliste %d', $moduleId); } $options[$domId] = sprintf('%s [%s]', $moduleName, $domId); } return $options; }, 'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'], 'sql' => ['type' => 'string', 'length' => 128, 'default' => ''], ]; 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_'); if (!isset($options['list_default_organisationen'])) { $options['list_default_organisationen'] = 'list_default_organisationen'; } return $options; }; }