diff --git a/web/typo3conf/ext/ep_theme/Configuration/TCA/tx_eptheme_domain_model_addresscheck.php b/web/typo3conf/ext/ep_theme/Configuration/TCA/tx_eptheme_domain_model_addresscheck.php new file mode 100644 index 00000000..e746d097 --- /dev/null +++ b/web/typo3conf/ext/ep_theme/Configuration/TCA/tx_eptheme_domain_model_addresscheck.php @@ -0,0 +1,172 @@ + [ + 'label' => 'name', + 'label_alt' => 'email', + 'default_sortby' => 'ORDER BY last_name, first_name', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'prependAtCopy' => 'LLL:EXT:lang/Resources/Private/Language/locallang_general.xlf:LGL.prependAtCopy', + 'delete' => 'deleted', + 'title' => 'Adresscheck', + 'versioningWS' => true, + 'origUid' => 't3_origuid', + 'enablecolumns' => [ + 'disabled' => 'hidden' + ], + 'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg', + 'searchFields' => 'name, first_name, last_name, email', + 'dividers2tabs' => 1, + ], + 'interface' => [ + 'showRecordFieldList' => 'first_name,last_name,address,city,zip,country,email,title' + ], + 'columns' => [ + 'pid' => [ + 'label' => 'pid', + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'crdate' => [ + 'label' => 'crdate', + 'config' => [ + 'type' => 'passthrough', + ] + ], + 'cruser_id' => [ + 'label' => 'cruser_id', + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'tstamp' => [ + 'label' => 'tstamp', + 'config' => [ + 'type' => 'passthrough', + ] + ], + 'hidden' => [ + 'exclude' => 1, + 'label' => 'Versteckt', + 'config' => [ + 'type' => 'check' + ] + ], + 'customer_id' => [ + 'exclude' => 1, + 'label' => 'Kundennummer', + 'config' => [ + 'type' => 'input', + 'size' => '8', + 'eval' => 'trim', + 'max' => '255' + ] + ], + 'title' => [ + 'exclude' => 1, + 'label' => 'Anrede', + 'config' => [ + 'type' => 'input', + 'size' => '8', + 'eval' => 'trim', + 'max' => '255' + ] + ], + 'first_name' => [ + 'exclude' => 0, + 'label' => 'Vorname', + 'config' => [ + 'type' => 'input', + 'size' => '20', + 'eval' => 'trim', + 'max' => '255' + ] + ], + 'last_name' => [ + 'exclude' => 0, + 'label' => 'Name', + 'config' => [ + 'type' => 'input', + 'size' => '20', + 'eval' => 'trim', + 'max' => '255' + ] + ], + 'address' => [ + 'label' => 'Strasse / Nr.', + 'config' => [ + 'type' => 'text', + 'cols' => '20', + 'rows' => '3' + ] + ], + 'email' => [ + 'label' => 'E-Mail', + 'config' => [ + 'type' => 'input', + 'size' => '20', + 'eval' => 'trim', + 'max' => '255', + 'softref' => 'email' + ] + ], + 'city' => [ + 'label' => 'Stadt', + 'config' => [ + 'type' => 'input', + 'size' => '20', + 'eval' => 'trim', + 'max' => '255' + ] + ], + 'zip' => [ + 'label' => 'PLZ', + 'config' => [ + 'type' => 'input', + 'eval' => 'trim', + 'size' => '10', + 'max' => '20' + ] + ], + 'country' => [ + 'exclude' => 1, + 'label' => 'Land', + 'config' => [ + 'type' => 'input', + 'size' => '20', + 'eval' => 'trim', + 'max' => '128' + ] + ], + 'no_postal' => [ + 'exclude' => 1, + 'label' => 'Keine Postalische Werbung', + 'config' => [ + 'type' => 'check' + ] + ], + 'no_email' => [ + 'exclude' => 1, + 'label' => 'Keine E-Mails mehr', + 'config' => [ + 'type' => 'check' + ] + ], + 'address_current' => [ + 'exclude' => 1, + 'label' => 'Adresse ist aktuell', + 'config' => [ + 'type' => 'check' + ] + ], + ], + 'types' => [ + '0' => ['showitem' => + 'hidden, + title,first_name,last_name,address,zip,city,country,email,no_postal,no_email,address_current, + '] + ], +]; diff --git a/web/typo3conf/ext/ep_theme/Resources/Private/Forms/AdresscheckForm.form.yaml b/web/typo3conf/ext/ep_theme/Resources/Private/Forms/AdresscheckForm.form.yaml new file mode 100644 index 00000000..f6dd5192 --- /dev/null +++ b/web/typo3conf/ext/ep_theme/Resources/Private/Forms/AdresscheckForm.form.yaml @@ -0,0 +1,132 @@ + +renderingOptions: + submitButtonLabel: Absenden +type: Form +identifier: adresscheck +label: Adresscheck +prototypeName: standard +finishers: +#- +# options: +# subject: Adresscheck +# recipientAddress: ' pascal.heim@ep-reisen.de' +# recipientName: 'Pascal Heim' +# senderAddress: smtprelay@ep-reisen.de +# senderName: 'E&P Reisen' +# replyToAddress: '' +# carbonCopyAddress: '' +# blindCarbonCopyAddress: '' +# format: html +# attachUploads: false +# translation: +# language: '' +# identifier: EmailToReceiver +- + identifier: SaveToDatabase + options: + table: 'tx_eptheme_domain_model_addresscheck' + mode: insert + databaseColumnMappings: + pid: + value: 1 + elements: + customer-id: + mapOnDatabaseColumn: 'customer_id' + title: + mapOnDatabaseColumn: 'title' + first-name: + mapOnDatabaseColumn: 'first_name' + last-name: + mapOnDatabaseColumn: 'last_name' + address: + mapOnDatabaseColumn: 'address' + zip: + mapOnDatabaseColumn: 'zip' + city: + mapOnDatabaseColumn: 'city' + country: + mapOnDatabaseColumn: 'country' + email: + mapOnDatabaseColumn: 'email' + no-postal: + mapOnDatabaseColumn: 'no_postal' + no-email: + mapOnDatabaseColumn: 'no_email' + address-is-current-postal: + mapOnDatabaseColumn: 'address_current' +renderables: +- + renderingOptions: + previousButtonLabel: '' + nextButtonLabel: '' + type: Page + identifier: page-1 + label: '' + renderables: + - + defaultValue: '' + type: Hidden + identifier: customer-id + label: KundenID + - + defaultValue: '' + type: Text + identifier: title + label: Anrede + - + defaultValue: '' + type: Text + identifier: first-name + label: Vorname + - + defaultValue: '' + type: Text + identifier: last-name + label: Name + - + defaultValue: '' + type: Text + identifier: address + label: 'Straße & Hausnummer' + properties: + elementDescription: '' + - + defaultValue: '' + type: Text + identifier: zip + label: PLZ + - + defaultValue: '' + type: Text + identifier: city + label: Stadt + - + defaultValue: '' + type: Text + identifier: country + label: Land + - + defaultValue: '' + type: Text + identifier: email + label: E-Mail + properties: + fluidAdditionalAttributes: + required: required + validators: + - + identifier: NotEmpty + - + identifier: EmailAddress + - + type: Checkbox + identifier: no-postal + label: 'Postalische Werbung abbestellen' + - + type: Checkbox + identifier: no-email + label: 'Ich möchte keine Mails mehr erhalten.' + - + type: Checkbox + identifier: address-is-current + label: 'Meine Adresse ist aktuell.' diff --git a/web/typo3conf/ext/ep_theme/ext_tables.php b/web/typo3conf/ext/ep_theme/ext_tables.php index d37e8537..60a1ed7a 100644 --- a/web/typo3conf/ext/ep_theme/ext_tables.php +++ b/web/typo3conf/ext/ep_theme/ext_tables.php @@ -7,6 +7,7 @@ call_user_func(function () { \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_eptheme_domain_model_slide'); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_eptheme_domain_model_lineup'); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_eptheme_domain_model_badge'); + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_eptheme_domain_model_addresscheck'); if (TYPO3_MODE === 'BE') { $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class); diff --git a/web/typo3conf/ext/ep_theme/ext_tables.sql b/web/typo3conf/ext/ep_theme/ext_tables.sql index 2e53ebca..d5442825 100644 --- a/web/typo3conf/ext/ep_theme/ext_tables.sql +++ b/web/typo3conf/ext/ep_theme/ext_tables.sql @@ -128,3 +128,42 @@ CREATE TABLE tt_content ( tx_eptheme_contact int(11) unsigned DEFAULT '0', button varchar(255) DEFAULT '' NOT NULL ); + +CREATE TABLE tx_eptheme_domain_model_addresscheck ( + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + tstamp int(11) DEFAULT '0' NOT NULL, + crdate int(11) DEFAULT '0' NOT NULL, + cruser_id int(11) DEFAULT '0' NOT NULL, + deleted tinyint(3) DEFAULT '0', + hidden tinyint(4) DEFAULT '0' NOT NULL, + + name tinytext, + first_name tinytext, + last_name tinytext, + title varchar(255) DEFAULT '' NOT NULL, + email varchar(255) DEFAULT '' NOT NULL, + address tinytext, + city varchar(255) DEFAULT '' NOT NULL, + zip varchar(20) DEFAULT '' NOT NULL, + country varchar(128) DEFAULT '' NOT NULL, + + no_postal tinyint(4) DEFAULT '0' NOT NULL, + no_email tinyint(4) DEFAULT '0' NOT NULL, + address_current tinyint(4) DEFAULT '0' NOT NULL, + + t3ver_oid int(11) DEFAULT '0' NOT NULL, + t3ver_id int(11) DEFAULT '0' NOT NULL, + t3ver_wsid int(11) DEFAULT '0' NOT NULL, + t3ver_label varchar(30) DEFAULT '' NOT NULL, + t3ver_state tinyint(4) DEFAULT '0' NOT NULL, + t3ver_stage tinyint(4) DEFAULT '0' NOT NULL, + t3ver_count int(11) DEFAULT '0' NOT NULL, + t3ver_tstamp int(11) DEFAULT '0' NOT NULL, + t3ver_move_id int(11) DEFAULT '0' NOT NULL, + t3_origuid int(11) DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid), + KEY pid (pid,email) +);