addLegend('caldav_legend', 'title_legend', PaletteManipulator::POSITION_AFTER) ->addField('caldavSyncEnabled', 'caldav_legend', PaletteManipulator::POSITION_APPEND) ->applyToPalette($paletteName, 'tl_calendar') ; } $GLOBALS['TL_DCA']['tl_calendar']['subpalettes']['caldavSyncEnabled'] = 'caldavUrl,caldavUsername,caldavPassword,caldavAuthorId,caldavTimezone,caldavCalendarHrefs'; $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavSyncEnabled'] = [ 'exclude' => true, 'inputType' => 'checkbox', 'eval' => ['submitOnChange' => true], 'sql' => "char(1) NOT NULL default ''", ]; $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavUrl'] = [ 'exclude' => true, 'inputType' => 'text', 'eval' => ['mandatory' => true, 'maxlength' => 2048, 'rgxp' => 'url', 'decodeEntities' => true, 'tl_class' => 'w50'], 'sql' => "varchar(2048) NOT NULL default ''", ]; $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavUsername'] = [ 'exclude' => true, 'inputType' => 'text', 'eval' => ['mandatory' => true, 'maxlength' => 255, 'tl_class' => 'w50'], 'sql' => "varchar(255) NOT NULL default ''", ]; $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavPassword'] = [ 'exclude' => true, 'inputType' => 'text', 'eval' => ['mandatory' => true, 'maxlength' => 255, 'preserveTags' => true, 'hideInput' => true, 'tl_class' => 'w50'], 'sql' => "varchar(255) NOT NULL default ''", ]; $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavAuthorId'] = [ 'exclude' => true, 'inputType' => 'select', 'foreignKey' => 'tl_user.name', 'eval' => ['mandatory' => true, 'chosen' => true, 'includeBlankOption' => true, 'tl_class' => 'w50'], 'relation' => ['type' => 'hasOne', 'load' => 'lazy', 'table' => 'tl_user'], 'sql' => "int(10) unsigned NOT NULL default 0", ]; $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavTimezone'] = [ 'exclude' => true, 'inputType' => 'text', 'eval' => ['maxlength' => 64, 'placeholder' => 'Europe/Berlin', 'tl_class' => 'w50'], 'sql' => "varchar(64) NOT NULL default ''", ]; $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavCalendarHrefs'] = [ 'exclude' => true, 'inputType' => 'checkboxWizard', 'options_callback' => [CalendarDcaCallbacks::class, 'getAvailableRemoteCalendars'], 'save_callback' => [[CalendarDcaCallbacks::class, 'normalizeSelectedRemoteCalendars']], 'eval' => ['multiple' => true, 'tl_class' => 'clr'], 'sql' => 'blob NULL', ];