Mark all bundle DCA fields as excludable for group permissions
All editable fields of tl_wk_config, tl_wk_category, tl_wk_booking, tl_wk_inquiry, the W&K fields of tl_calendar_events and the module category filter can now be restricted per user group via "Erlaubte Felder", like core tables. README documents the permission setup. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
c976f47e9c
commit
df38c58954
7 files changed
+93
No files matched your search
@@ -146,6 +146,10 @@ Die Bestätigungsseite wird mit `?booking=<Token>` aufgerufen. Formulare des For
|
||||
|
||||
**Export**: In der Download-Liste erzeugt „Download-Liste für W&K exportieren“ die Datei `JJJJ-MM-TT_website_kontaktanfragen_wk.csv` mit den Spalten `KBNR;KNKDAN;KNKDTITEL;KNKDN2;KNKDN1;KNKDSTR;KNKDPLZ;KNKDORT;KNGEBDAT;KDEMAIL;KDTEL1;KDFREI01;KDFREI02;KDFREI03;KDFREI04;KNUKAT;KNVEG;schoolName;schoolCity`. Kontaktanfragen stehen ohne Kursnummer in der Datei. Die Datensätze werden als „Exportiert“ markiert, die freien Plätze der Veranstaltungen um die Zahl der Anmeldungen reduziert (bis zum nächsten W&K-Import), und die Datei bleibt unter W&K-Tools → Exporte zum erneuten Download.
|
||||
|
||||
## Berechtigungen
|
||||
|
||||
Alle Unterpunkte von „W&K-Tools“ sind normale Contao-Backend-Module und werden je Benutzergruppe unter **Benutzergruppen → Erlaubte Module** freigeschaltet oder ausgeblendet (Gruppe „W&K-Tools“: Import, Posteingang, Anmeldungen, Kontaktanfragen, Exporte, Kategorien, Einstellungen, Protokoll). Was nicht freigeschaltet ist, erscheint nicht in der linken Spalte und ist auch per URL nicht aufrufbar. Alle Felder der Tabellen `tl_wk_config`, `tl_wk_category`, `tl_wk_booking` und `tl_wk_inquiry` sowie die W&K-Felder der Veranstaltungen sind unter **Erlaubte Felder** einzeln freigebbar, wie bei den Tabellen des Contao-Kerns. Eine typische Redaktionsgruppe erhält Posteingang, Anmeldungen, Kontaktanfragen und Exporte plus die Felder von `tl_wk_booking` und `tl_wk_inquiry`; Import, Kategorien und Einstellungen bleiben der Leitung bzw. Administratoren vorbehalten.
|
||||
|
||||
## Eigene Templates
|
||||
|
||||
- Frontend-Module: `frontend_module/wk_booking_form.html.twig` und `frontend_module/wk_booking_status.html.twig` (Blöcke `booking_header`, `booking_status`, `booking_form` bzw. `status`, `inquiry`).
|
||||
|
||||
@@ -34,6 +34,7 @@ foreach (array_keys($dca['palettes']) as $palette) {
|
||||
}
|
||||
|
||||
$text = static fn (int $length, string $class = 'w50', array $eval = []): array => [
|
||||
'exclude' => true,
|
||||
'search' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => $length, 'tl_class' => $class, ...$eval],
|
||||
@@ -41,6 +42,7 @@ $text = static fn (int $length, string $class = 'w50', array $eval = []): array
|
||||
];
|
||||
|
||||
$price = static fn (): array => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'prcnt', 'maxlength' => 10, 'tl_class' => 'w50'],
|
||||
'sql' => "decimal(10,2) NOT NULL default '0.00'",
|
||||
@@ -50,12 +52,14 @@ $fields = [
|
||||
'wkId' => [
|
||||
'search' => true,
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 16, 'readonly' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 16, 'default' => ''],
|
||||
],
|
||||
'wkState' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => WkState::values(),
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_calendar_events']['wkStateRef'],
|
||||
@@ -65,21 +69,25 @@ $fields = [
|
||||
'wkInternalEventNumber' => $text(64),
|
||||
'wkEventType' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'natural', 'maxlength' => 3, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'wkMaxPlaces' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'natural', 'maxlength' => 5, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'wkPlacesLeft' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'natural', 'maxlength' => 5, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'wkImported' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'datim', 'readonly' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
@@ -88,6 +96,7 @@ $fields = [
|
||||
'wkSubTitleAdditional' => $text(255, 'long'),
|
||||
'wkCategories' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'foreignKey' => 'tl_wk_category.title',
|
||||
'eval' => ['multiple' => true, 'tl_class' => 'clr'],
|
||||
@@ -95,6 +104,7 @@ $fields = [
|
||||
],
|
||||
'wkCategoryPrimary' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_wk_category.title',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -106,6 +116,7 @@ $fields = [
|
||||
'wkTags' => $text(255),
|
||||
'wkTopics' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => ['rte' => 'tinyMCE', 'tl_class' => 'clr'],
|
||||
'sql' => ['type' => 'text', 'notnull' => false],
|
||||
@@ -113,6 +124,7 @@ $fields = [
|
||||
'wkAdditionalDates' => $text(512, 'clr long'),
|
||||
'wkInstructor' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_member.CONCAT(lastname," ",firstname)',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -120,6 +132,7 @@ $fields = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'wkSpeakers' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_member.CONCAT(lastname," ",firstname)',
|
||||
'eval' => ['multiple' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -149,11 +162,13 @@ $fields = [
|
||||
'wkOrganizerCountryCode' => $text(16),
|
||||
'wkOrganizerEmail' => $text(255, 'w50', ['decodeEntities' => true]),
|
||||
'wkNotification' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'wkConfirmationPage' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'pageTree',
|
||||
'foreignKey' => 'tl_page.title',
|
||||
'eval' => ['fieldType' => 'radio', 'tl_class' => 'clr'],
|
||||
|
||||
@@ -14,6 +14,7 @@ $dca['palettes'][BookingStatusController::TYPE] = '{title_legend},name,headline,
|
||||
|
||||
// Kategoriefilter für die Kalender-Module des Contao-Kerns
|
||||
$dca['fields']['wkCategories'] = [
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'foreignKey' => 'tl_wk_category.title',
|
||||
'eval' => ['multiple' => true, 'tl_class' => 'clr'],
|
||||
|
||||
@@ -67,6 +67,7 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
'pid' => [
|
||||
'filter' => true,
|
||||
'sorting' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_calendar_events.title',
|
||||
'eval' => ['mandatory' => true, 'includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -80,6 +81,7 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
'filter' => true,
|
||||
'sorting' => true,
|
||||
'flag' => DataContainer::SORT_DAY_DESC,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'datim', 'datepicker' => true, 'doNotCopy' => true, 'tl_class' => 'w50 wizard'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
@@ -90,6 +92,7 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
],
|
||||
'state' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => InboxState::values(),
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['stateRef'],
|
||||
@@ -100,12 +103,14 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'notification' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['readonly' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'gender' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => BookingFields::GENDERS,
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['genderRef'],
|
||||
@@ -114,12 +119,14 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
],
|
||||
'academicTitle' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 64, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 64, 'default' => ''],
|
||||
],
|
||||
'firstname' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['mandatory' => true, 'maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
@@ -127,24 +134,28 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
'lastname' => [
|
||||
'search' => true,
|
||||
'sorting' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['mandatory' => true, 'maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'street' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'postal' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 32, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 32, 'default' => ''],
|
||||
],
|
||||
'city' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
@@ -152,18 +163,21 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
'email' => [
|
||||
'search' => true,
|
||||
'sorting' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['mandatory' => true, 'rgxp' => 'email', 'maxlength' => 255, 'decodeEntities' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 255, 'default' => ''],
|
||||
],
|
||||
'phone' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'phone', 'maxlength' => 64, 'decodeEntities' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 64, 'default' => ''],
|
||||
],
|
||||
'position' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => BookingFields::POSITIONS,
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['positionRef'],
|
||||
@@ -171,12 +185,14 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
'sql' => ['type' => 'string', 'length' => 32, 'default' => ''],
|
||||
],
|
||||
'birthday' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'date', 'maxlength' => 10, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 10, 'default' => ''],
|
||||
],
|
||||
'teacherPosition' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => BookingFields::TEACHER_POSITIONS,
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['teacherPositionRef'],
|
||||
@@ -185,24 +201,28 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
],
|
||||
'schoolName' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'schoolCity' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'vegetarian' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
],
|
||||
'overnightStay' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => BookingFields::OVERNIGHT_STAYS,
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['overnightStayRef'],
|
||||
@@ -211,17 +231,20 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
],
|
||||
'addDifferentInvoiceAddress' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['submitOnChange' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
],
|
||||
'invoiceInstitution' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'invoiceGender' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => BookingFields::GENDERS,
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['genderRef'],
|
||||
@@ -229,58 +252,69 @@ $GLOBALS['TL_DCA']['tl_wk_booking'] = [
|
||||
'sql' => ['type' => 'string', 'length' => 16, 'default' => ''],
|
||||
],
|
||||
'invoiceAcademicTitle' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 64, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 64, 'default' => ''],
|
||||
],
|
||||
'invoiceFirstname' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'invoiceLastname' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'invoiceStreet' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'invoicePostal' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 32, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 32, 'default' => ''],
|
||||
],
|
||||
'invoiceCity' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'addNotes' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['submitOnChange' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
],
|
||||
'notes' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => ['tl_class' => 'clr'],
|
||||
'sql' => ['type' => 'text', 'notnull' => false],
|
||||
],
|
||||
'privacyAccepted' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
],
|
||||
'agbAccepted' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
],
|
||||
'newsletter' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
|
||||
@@ -47,6 +47,7 @@ $GLOBALS['TL_DCA']['tl_wk_category'] = [
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'sorting' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'sorting' => true,
|
||||
'eval' => ['rgxp' => 'natural', 'maxlength' => 5, 'tl_class' => 'w50'],
|
||||
@@ -54,18 +55,21 @@ $GLOBALS['TL_DCA']['tl_wk_category'] = [
|
||||
],
|
||||
'title' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['mandatory' => true, 'basicEntities' => true, 'maxlength' => 255, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 255, 'default' => ''],
|
||||
],
|
||||
'alias' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'alias', 'unique' => true, 'maxlength' => 255, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 255, 'default' => '', 'platformOptions' => ['collation' => 'ascii_bin']],
|
||||
],
|
||||
'kind' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => array_map(static fn (CategoryKind $kind): string => $kind->value, CategoryKind::cases()),
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_category']['kindRef'],
|
||||
@@ -74,6 +78,7 @@ $GLOBALS['TL_DCA']['tl_wk_category'] = [
|
||||
],
|
||||
'wkNames' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => ['style' => 'height:80px', 'decodeEntities' => true, 'tl_class' => 'clr'],
|
||||
'sql' => ['type' => 'text', 'notnull' => false],
|
||||
|
||||
@@ -60,12 +60,14 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
],
|
||||
'title' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['mandatory' => true, 'basicEntities' => true, 'maxlength' => 255, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 255, 'default' => ''],
|
||||
],
|
||||
'calendar' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_calendar.title',
|
||||
'eval' => ['mandatory' => true, 'unique' => true, 'includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -73,6 +75,7 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'bookingForm' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_form.title',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -80,6 +83,7 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'bookingPage' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'pageTree',
|
||||
'foreignKey' => 'tl_page.title',
|
||||
'eval' => ['fieldType' => 'radio', 'tl_class' => 'clr'],
|
||||
@@ -87,6 +91,7 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'confirmationPage' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'pageTree',
|
||||
'foreignKey' => 'tl_page.title',
|
||||
'eval' => ['fieldType' => 'radio', 'tl_class' => 'clr'],
|
||||
@@ -94,6 +99,7 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'inquiryPage' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'pageTree',
|
||||
'foreignKey' => 'tl_page.title',
|
||||
'eval' => ['fieldType' => 'radio', 'tl_class' => 'clr'],
|
||||
@@ -102,23 +108,27 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
],
|
||||
'deadlineDays' => [
|
||||
'default' => 1,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'natural', 'maxlength' => 3, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 1],
|
||||
],
|
||||
'deadlineDisplayDays' => [
|
||||
'default' => 31,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'natural', 'maxlength' => 3, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 31],
|
||||
],
|
||||
'ownVenues' => [
|
||||
'default' => 'TPI Moritzburg',
|
||||
'exclude' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => ['style' => 'height:60px', 'decodeEntities' => true, 'tl_class' => 'clr'],
|
||||
'sql' => ['type' => 'text', 'notnull' => false],
|
||||
],
|
||||
'author' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_user.name',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -126,6 +136,7 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'instructorGroup' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_member_group.name',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50 clr'],
|
||||
@@ -133,6 +144,7 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'speakerGroup' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_member_group.name',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -140,11 +152,13 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'newsletterChannels' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['multiple' => true, 'tl_class' => 'clr'],
|
||||
'sql' => ['type' => 'blob', 'length' => 65535, 'notnull' => false],
|
||||
],
|
||||
'newsletterPage' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'pageTree',
|
||||
'foreignKey' => 'tl_page.title',
|
||||
'eval' => ['fieldType' => 'radio', 'tl_class' => 'clr'],
|
||||
@@ -152,11 +166,13 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'newsletterText' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => ['style' => 'height:120px', 'decodeEntities' => true, 'tl_class' => 'clr'],
|
||||
'sql' => ['type' => 'text', 'notnull' => false],
|
||||
],
|
||||
'notificationDefault' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50 clr'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
@@ -166,6 +182,7 @@ $GLOBALS['TL_DCA']['tl_wk_config'] = [
|
||||
|
||||
foreach (NotificationRouter::CONDITIONS as $condition) {
|
||||
$GLOBALS['TL_DCA']['tl_wk_config']['fields']['notificationExplanation'.$condition] = [
|
||||
'exclude' => true,
|
||||
'inputType' => 'explanation',
|
||||
'eval' => [
|
||||
'class' => 'tl_info',
|
||||
@@ -176,6 +193,7 @@ foreach (NotificationRouter::CONDITIONS as $condition) {
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_wk_config']['fields']['notification'.$condition] = [
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_wk_config']['notificationCondition'],
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50 clr'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
|
||||
@@ -56,12 +56,14 @@ $GLOBALS['TL_DCA']['tl_wk_inquiry'] = [
|
||||
'filter' => true,
|
||||
'sorting' => true,
|
||||
'flag' => DataContainer::SORT_DAY_DESC,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'datim', 'datepicker' => true, 'tl_class' => 'w50 wizard'],
|
||||
'sql' => ['type' => 'integer', 'unsigned' => true, 'default' => 0],
|
||||
],
|
||||
'state' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => InboxState::values(),
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['stateRef'],
|
||||
@@ -73,6 +75,7 @@ $GLOBALS['TL_DCA']['tl_wk_inquiry'] = [
|
||||
],
|
||||
'event' => [
|
||||
'filter' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'foreignKey' => 'tl_calendar_events.title',
|
||||
'eval' => ['includeBlankOption' => true, 'chosen' => true, 'tl_class' => 'w50'],
|
||||
@@ -80,6 +83,7 @@ $GLOBALS['TL_DCA']['tl_wk_inquiry'] = [
|
||||
'relation' => ['type' => 'hasOne', 'load' => 'lazy'],
|
||||
],
|
||||
'gender' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'select',
|
||||
'options' => BookingFields::GENDERS,
|
||||
'reference' => &$GLOBALS['TL_LANG']['tl_wk_booking']['genderRef'],
|
||||
@@ -87,67 +91,79 @@ $GLOBALS['TL_DCA']['tl_wk_inquiry'] = [
|
||||
'sql' => ['type' => 'string', 'length' => 16, 'default' => ''],
|
||||
],
|
||||
'academicTitle' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 64, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 64, 'default' => ''],
|
||||
],
|
||||
'firstname' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'lastname' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'street' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'postal' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 32, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 32, 'default' => ''],
|
||||
],
|
||||
'city' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 128, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 128, 'default' => ''],
|
||||
],
|
||||
'email' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['rgxp' => 'email', 'maxlength' => 255, 'decodeEntities' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 255, 'default' => ''],
|
||||
],
|
||||
'phone' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 64, 'decodeEntities' => true, 'tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'string', 'length' => 64, 'default' => ''],
|
||||
],
|
||||
'subject' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'text',
|
||||
'eval' => ['maxlength' => 255, 'tl_class' => 'clr long'],
|
||||
'sql' => ['type' => 'string', 'length' => 255, 'default' => ''],
|
||||
],
|
||||
'notes' => [
|
||||
'search' => true,
|
||||
'exclude' => true,
|
||||
'inputType' => 'textarea',
|
||||
'eval' => ['tl_class' => 'clr'],
|
||||
'sql' => ['type' => 'text', 'notnull' => false],
|
||||
],
|
||||
'newsletter' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
],
|
||||
'privacy' => [
|
||||
'exclude' => true,
|
||||
'inputType' => 'checkbox',
|
||||
'eval' => ['tl_class' => 'w50'],
|
||||
'sql' => ['type' => 'boolean', 'default' => false],
|
||||
|
||||
Reference in new issue
Block a user