diff --git a/Classes/Controller/AddressController.php b/Classes/Controller/AddressController.php old mode 100644 new mode 100755 index 05289f7..7773ed9 --- a/Classes/Controller/AddressController.php +++ b/Classes/Controller/AddressController.php @@ -54,7 +54,7 @@ class AddressController extends ActionController * addressRepository * * @var \AFM\Registeraddress\Domain\Repository\AddressRepository - * @inject + * @TYPO3\CMS\Extbase\Annotation\Inject */ protected $addressRepository; @@ -114,7 +114,10 @@ protected function sendEmail(array $recipient, array $from, $subject, $bodyHTML if ($replyTo == NULL) { $replyTo = $from; } + + /** @var MailMessage $mail */ $mail = GeneralUtility::makeInstance(MailMessage::class); + $mail ->setTo($recipient) ->setFrom($from) @@ -122,10 +125,10 @@ protected function sendEmail(array $recipient, array $from, $subject, $bodyHTML ->setSubject($subject); if ($bodyHTML !== '' && $bodyHTML !== NULL ) { - $mail->addPart($bodyHTML, 'text/html'); + $mail->html($bodyHTML, 'text/html'); } if ($bodyPlain !== '' && $bodyPlain !== NULL ) { - $mail->addPart($bodyPlain, 'text/plain'); + $mail->html($bodyPlain, 'text/plain'); } return $mail->send(); @@ -180,6 +183,8 @@ protected function sendResponseMail( $recipientmails = '', $templateName, array if (isset($mailTextView)) { $mailTextView->assignMultiple($data); +// debug($mailTextView);die; + $mailText = $mailTextView->render(); } if (isset($mailHtmlView)) { @@ -222,7 +227,10 @@ private function checkIfAddressExists($address) */ protected function errorAction() { + $this->clearCacheOnError(); + $this->addErrorFlashMessage(); $this->forwardToReferringRequest(); + return $this->getFlattenedValidationErrorMessage(); $errorMessage = LocalizationUtility::translate( 'mail.registration.errorAction', @@ -235,7 +243,7 @@ protected function errorAction() * action form only * * @param Address $newAddress - * @dontvalidate $newAddress + * @TYPO3\CMS\Extbase\Annotation\IgnoreValidation $newAddress * @return void */ public function formOnlyAction(Address $newAddress = NULL) @@ -247,7 +255,7 @@ public function formOnlyAction(Address $newAddress = NULL) * action new * * @param Address $newAddress - * @dontvalidate $newAddress + * @TYPO3\CMS\Extbase\Annotation\IgnoreValidation $newAddress * @return void */ public function newAction(Address $newAddress = NULL) @@ -297,7 +305,8 @@ public function createAction(Address $newAddress) LocalizationUtility::translate('mail.registration.subjectsuffix', 'registeraddress') ); - $persistenceManager = $this->objectManager->get(PersistenceManager::class); + /** @var PersistenceManager $persistenceManager */ + $persistenceManager = GeneralUtility::makeInstance(PersistenceManager::class); $persistenceManager->persistAll(); } @@ -315,6 +324,7 @@ public function createAction(Address $newAddress) */ public function informationAction($email, $uid) { + /** @var \AFM\Registeraddress\Domain\Model\Address $address */ $address = $this->addressRepository->findOneByEmailIgnoreHidden($email); if ($address && $address->getUid() == $uid) { @@ -381,7 +391,7 @@ public function unsubscribeFormAction( $email = NULL ) * action approve * * @param string $hash - * @validate $hash NotEmpty + * @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty", param="hash") * @param boolean $doApprove * @return void * @throws \InvalidArgumentException @@ -393,15 +403,41 @@ public function unsubscribeFormAction( $email = NULL ) */ public function approveAction($hash = NULL, $doApprove = false) { + + /** @var \AFM\Registeraddress\Domain\Model\Address $address */ $address = $this->addressRepository->findOneByRegisteraddresshashIgnoreHidden($hash); $this->view->assign('hash', $hash); - if ($address && $doApprove) { + if ($address /*&& $doApprove*/) { $address->setHidden(false); $address->setModuleSysDmailHtml(true); - $eigeneAnrede = $this->generateEigeneAnrede($address); + // create anrede + if ( $address->getLastName() ) { + if ($address->getGender() == 'm') { + $eigeneAnrede = LocalizationUtility::translate( + 'salutationgeneration.lastname.m', + 'registeraddress' + ).$address->getLastName(); + + } elseif ($address->getGender() == 'f') { + $eigeneAnrede = LocalizationUtility::translate( + 'salutationgeneration.lastname.f', + 'registeraddress' + ).$address->getLastName(); + } + } elseif ( $address->getFirstName() ) { + $eigeneAnrede = LocalizationUtility::translate( + 'salutationgeneration.onlyfirstname', + 'registeraddress' + ).$address->getFirstName(); + } else { + $eigeneAnrede = LocalizationUtility::translate( + 'salutationgeneration.other', + 'registeraddress' + ); + } $address->setEigeneAnrede($eigeneAnrede); $this->addressRepository->update($address); @@ -452,7 +488,7 @@ public function approveAction($hash = NULL, $doApprove = false) * action edit * * @param \string $hash - * @validate $hash NotEmpty + * @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty", param="hash") * @return void */ public function editAction( $hash = NULL ) @@ -486,8 +522,7 @@ public function updateAction(Address $address) $addressOld = $this->addressRepository->findOneByRegisteraddresshashIgnoreHidden($hash); $address->setEmail($addressOld->getEmail()); - $eigeneAnrede = $this->generateEigeneAnrede($address); - $address->setEigeneAnrede($eigeneAnrede); + $signalSlotDispatcher = GeneralUtility::makeInstance(Dispatcher::class); $signalSlotDispatcher->dispatch(__CLASS__, 'updateBeforePersist', [$address]); @@ -529,7 +564,7 @@ public function updateAction(Address $address) * action delete * * @param \string $hash - * @validate $hash NotEmpty + * @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty", param="hash") * @param boolean $doDelete * @return void * @throws \InvalidArgumentException @@ -582,39 +617,4 @@ public function deleteAction($hash = NULL, $doDelete = false) $this->view->assign('address', $address); $this->view->assign('doDelete', $doDelete); } - - /** - * Generates content for field eigene_anrede - * - * @param Address $address - * @return string|null - */ - protected function generateEigeneAnrede($address) - { - if ($address->getLastName()) { - if ($address->getGender() === 'm') { - $eigeneAnrede = LocalizationUtility::translate( - 'salutationgeneration.lastname.m', - 'registeraddress' - ) . $address->getLastName(); - - } elseif ($address->getGender() === 'f') { - $eigeneAnrede = LocalizationUtility::translate( - 'salutationgeneration.lastname.f', - 'registeraddress' - ) . $address->getLastName(); - } - } elseif ($address->getFirstName()) { - $eigeneAnrede = LocalizationUtility::translate( - 'salutationgeneration.onlyfirstname', - 'registeraddress' - ) . $address->getFirstName(); - } else { - $eigeneAnrede = LocalizationUtility::translate( - 'salutationgeneration.other', - 'registeraddress' - ); - } - return $eigeneAnrede; - } } diff --git a/Classes/Domain/Model/Address.php b/Classes/Domain/Model/Address.php old mode 100644 new mode 100755 index 6946dc7..88594dd --- a/Classes/Domain/Model/Address.php +++ b/Classes/Domain/Model/Address.php @@ -77,7 +77,8 @@ class Address extends AbstractEntity * email * * @var string - * @validate NotEmpty,EmailAddress + * @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty") + * @TYPO3\CMS\Extbase\Annotation\Validate("EmailAddress") */ protected $email; diff --git a/Configuration/Extbase/Persistence/Classes.php b/Configuration/Extbase/Persistence/Classes.php new file mode 100644 index 0000000..dd83fb4 --- /dev/null +++ b/Configuration/Extbase/Persistence/Classes.php @@ -0,0 +1,45 @@ + [ + 'tableName' => 'tt_address', + 'recordType' => \AFM\Registeraddress\Domain\Model\Address::class, + 'properties' => [ + 'name' => [ + 'fieldName' => 'name' + ], + 'gender' => [ + 'fieldName' => 'gender' + ], + 'firstName' => [ + 'fieldName' => 'first_name' + ], + 'middleName' => [ + 'fieldName' => 'middle_name' + ], + 'lastName' => [ + 'fieldName' => 'last_name' + ], + 'email' => [ + 'fieldName' => 'email' + ], + 'registeraddresshash' => [ + 'fieldName' => 'registeraddresshash' + ], + 'hidden' => [ + 'fieldName' => 'hidden' + ], + 'moduleSysDmailHtml' => [ + 'fieldName' => 'module_sys_dmail_html' + ], + 'eigeneAnrede' => [ + 'fieldName' => 'eigene_anrede' + ], + 'txDirectmailsubscriptionLocalgender' => [ + 'fieldName' => 'tx_directmailsubscription_localgender' + ], + ], + ], +]; \ No newline at end of file diff --git a/Configuration/TCA/Overrides/tx_registeraddress_domain_model_address.php b/Configuration/TCA/Overrides/tx_registeraddress_domain_model_address.php index 5e2fa55..e433aec 100644 --- a/Configuration/TCA/Overrides/tx_registeraddress_domain_model_address.php +++ b/Configuration/TCA/Overrides/tx_registeraddress_domain_model_address.php @@ -21,6 +21,15 @@ 'eval' => 'trim' ), ), + 'registeraddresshash' => array( + 'exclude' => 0, + 'label' => 'registeraddresshash', + 'config' => array( + 'type' => 'text', + 'size' => 30, + 'eval' => 'trim' + ), + ), ); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_address', $fields, TRUE); diff --git a/Resources/Private/Templates/Address/Approve.html b/Resources/Private/Templates/Address/Approve.html old mode 100644 new mode 100755 index 632a82f..24dfe5d --- a/Resources/Private/Templates/Address/Approve.html +++ b/Resources/Private/Templates/Address/Approve.html @@ -17,7 +17,7 @@ -

+

diff --git a/Resources/Private/Templates/Address/Create.html b/Resources/Private/Templates/Address/Create.html old mode 100644 new mode 100755 index 67e0659..ce10e30 --- a/Resources/Private/Templates/Address/Create.html +++ b/Resources/Private/Templates/Address/Create.html @@ -15,11 +15,11 @@ -


+


-

+

diff --git a/Resources/Private/Templates/Address/Delete.html b/Resources/Private/Templates/Address/Delete.html old mode 100644 new mode 100755 index 3984f6a..9d4ba39 --- a/Resources/Private/Templates/Address/Delete.html +++ b/Resources/Private/Templates/Address/Delete.html @@ -17,7 +17,7 @@ -

+

diff --git a/Resources/Private/Templates/Address/Information.html b/Resources/Private/Templates/Address/Information.html old mode 100644 new mode 100755 index e8f0b14..2958311 --- a/Resources/Private/Templates/Address/Information.html +++ b/Resources/Private/Templates/Address/Information.html @@ -18,7 +18,7 @@

-

+

diff --git a/Resources/Private/Templates/Address/MailNewsletterRegistration.html b/Resources/Private/Templates/Address/MailNewsletterRegistration.html old mode 100644 new mode 100755 index 67a8387..03905ff --- a/Resources/Private/Templates/Address/MailNewsletterRegistration.html +++ b/Resources/Private/Templates/Address/MailNewsletterRegistration.html @@ -2,7 +2,9 @@ {f:translate(key:'mail.registration.greet')} {f:translate(key:'mail.gender.{address.gender}')} {address.firstName} {address.lastName}

- {f:translate(key:'mail.registration.text', htmlEscape:0)} + + {f:translate(key:'mail.registration.text')} +

{f:translate(key:'mail.registration.consentText')} diff --git a/Resources/Private/Templates/Address/MailNewsletterRegistration.txt b/Resources/Private/Templates/Address/MailNewsletterRegistration.txt old mode 100644 new mode 100755 index 9d62f80..15fd9ee --- a/Resources/Private/Templates/Address/MailNewsletterRegistration.txt +++ b/Resources/Private/Templates/Address/MailNewsletterRegistration.txt @@ -1,6 +1,6 @@ {f:translate(key:'mail.registration.greet')} {f:translate(key:'mail.gender.{address.gender}')} {address.firstName} {address.lastName} -{f:translate(key:'mail.registration.text', htmlEscape:0)} +{f:translate(key:'mail.registration.text')} {f:translate(key:'mail.registration.consentText')} {address.consent -> f:format.html(parseFuncTSPath:"plugin.tx_registeraddress.lib.parseFunc_PLAIN") -> f:format.stripTags()} diff --git a/composer.json b/composer.json old mode 100644 new mode 100755 index 4b17ed7..57593a0 --- a/composer.json +++ b/composer.json @@ -7,8 +7,8 @@ "issues": "https://github.com/lsascha/registeraddress/issues" }, "require": { - "typo3/cms-core": ">=6.2.0 <8.99.99", - "friendsoftypo3/tt-address": ">=3.1.0 <3.2.99" + "typo3/cms-core": ">=6.2.0 <=10.99.99", + "friendsoftypo3/tt-address": ">=3.1.0 <5.2.99" }, "replace": { "registeraddress": "self.version", @@ -18,5 +18,10 @@ "psr-4": { "AFM\\Registeraddress\\": "Classes/" } + }, + "extra": { + "typo3/cms": { + "extension-key": "registeraddress" + } } } diff --git a/ext_emconf.php b/ext_emconf.php index 3ec5632..96b05a8 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -30,8 +30,8 @@ 'version' => '2.0.1', 'constraints' => array( 'depends' => array( - 'typo3' => '6.2.0-8.7.99', - 'tt_address' => '3.1.0-3.3.99', + 'typo3' => '6.2.0-10.9.99', + 'tt_address' => '3.1.0-5.3.99', ), 'conflicts' => array( ), diff --git a/ext_localconf.php b/ext_localconf.php old mode 100644 new mode 100755 index 1bf49ff..94a0a67 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -7,37 +7,37 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \AFM\Registeraddress\Hook\DataHandlerHook::class; \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( - 'AFM.' . $_EXTKEY, + 'AFM.registeraddress', 'Registerform', array( 'Address' => 'new, create, approve, edit, update, delete, information', - + ), // non-cacheable actions array( 'Address' => 'new, create, approve, edit, update, delete, information', - + ) ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( - 'AFM.' . $_EXTKEY, - 'RegisterformRedirect', + 'AFM.registeraddress', + 'RegisterformRedirect', array( 'Address' => 'new', - + ), // non-cacheable actions array( 'Address' => 'new', - + ) ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( - 'AFM.' . $_EXTKEY, - 'RegisterformUnsubscribe', + 'AFM.registeraddress', + 'RegisterformUnsubscribe', array( 'Address' => 'unsubscribeForm', diff --git a/ext_tables.php b/ext_tables.php old mode 100644 new mode 100755 index 84c7aa1..cb76aa2 --- a/ext_tables.php +++ b/ext_tables.php @@ -2,27 +2,26 @@ if (!defined('TYPO3_MODE')) { die ('Access denied.'); } - \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - $_EXTKEY, + 'registeraddress', 'Registerform', 'Registration Form' ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - $_EXTKEY, + 'registeraddress', 'RegisterformRedirect', 'Registration Form (only redirects)' ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - $_EXTKEY, + 'registeraddress', 'RegisterformUnsubscribe', 'Registration Form to unsubscribe' ); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'registerttaddress'); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('registeraddress', 'Configuration/TypoScript', 'registerttaddress'); //\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr('tt_address', 'EXT:registeraddress/Resources/Private/Language/locallang_csh_tt_address.xlf'); diff --git a/ext_typoscript_setup.txt b/ext_typoscript_setup.txt deleted file mode 100644 index 946cfbf..0000000 --- a/ext_typoscript_setup.txt +++ /dev/null @@ -1,27 +0,0 @@ -config.tx_extbase{ - persistence{ - classes{ - - AFM\Registeraddress\Domain\Model\Address { - mapping { - tableName = tt_address - recordType = Tx_Registeraddress_Address - columns { - name.mapOnProperty = name - gender.mapOnProperty = gender - first_name.mapOnProperty = firstName - middle_name.mapOnProperty = middleName - last_name.mapOnProperty = lastName - email.mapOnProperty = email - registeraddresshash.mapOnProperty = registeraddresshash - hidden.mapOnProperty = hidden - module_sys_dmail_html.mapOnProperty = moduleSysDmailHtml - eigene_anrede.mapOnProperty = eigeneAnrede - tx_directmailsubscription_localgender.mapOnProperty = txDirectmailsubscriptionLocalgender - } - } - } - - } - } -} \ No newline at end of file