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 @@
+
- {f:translate(key:'mail.registration.text', htmlEscape:0)}
+