Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 48 additions & 48 deletions Classes/Controller/AddressController.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class AddressController extends ActionController
* addressRepository
*
* @var \AFM\Registeraddress\Domain\Repository\AddressRepository
* @inject
* @TYPO3\CMS\Extbase\Annotation\Inject
*/
protected $addressRepository;

Expand Down Expand Up @@ -114,18 +114,21 @@ 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)
->setReplyTo($replyTo)
->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();
Expand Down Expand Up @@ -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)) {
Expand Down Expand Up @@ -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',
Expand All @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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();
}

Expand All @@ -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) {
Expand Down Expand Up @@ -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
Expand All @@ -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);
Expand Down Expand Up @@ -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 )
Expand Down Expand Up @@ -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]);
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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;
}
}
3 changes: 2 additions & 1 deletion Classes/Domain/Model/Address.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
45 changes: 45 additions & 0 deletions Configuration/Extbase/Persistence/Classes.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?php

declare(strict_types=1);

return [
\AFM\Registeraddress\Domain\Model\Address::class => [
'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'
],
],
],
];
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion Resources/Private/Templates/Address/Approve.html
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<f:then>
<f:if condition="{doApprove}">
<f:then>
<p><f:translate key="form.approve.approvetext" htmlEscape="false" arguments="{0: address.firstName, 1:address.lastName, 2:address.email}" /></p>
<p><f:format.raw><f:translate key="form.approve.approvetext" arguments="{0: address.firstName, 1:address.lastName, 2:address.email}" /></f:format.raw></p>
</f:then>
<f:else>
<f:form action="approve" arguments="{hash: hash}">
Expand Down
4 changes: 2 additions & 2 deletions Resources/Private/Templates/Address/Create.html
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
<f:then>
<f:if condition="{alreadyExists}">
<f:then>
<p><f:translate key="form.create.alreadyexists" htmlEscape="false" /><br />
<p><f:format.raw><f:translate key="form.create.alreadyexists" /></f:format.raw><br />
<f:link.action action="information" arguments="{email: oldAddress.email, uid: oldAddress}" pageUid="{settings.pagewithform}"><f:translate key="form.create.alreadyexistsLinktext" /></f:link.action></p>
</f:then>
<f:else>
<p><f:translate key="form.create.approvetext" htmlEscape="false" arguments="{0: address.email}" /></p>
<p><f:format.raw><f:translate key="form.create.approvetext" arguments="{0: address.email}" /></f:format.raw></p>
</f:else>
</f:if>
</f:then>
Expand Down
2 changes: 1 addition & 1 deletion Resources/Private/Templates/Address/Delete.html
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<f:then>
<f:if condition="{doDelete}">
<f:then>
<p><f:translate key="form.delete.text" htmlEscape="false" arguments="{0: address.firstName, 1:address.lastName, 2:address.email}" /></p>
<p><f:format.raw><f:translate key="form.delete.text" arguments="{0: address.firstName, 1:address.lastName, 2:address.email}" /></f:format.raw></p>
</f:then>
<f:else>
<f:form action="delete" arguments="{hash: hash}">
Expand Down
2 changes: 1 addition & 1 deletion Resources/Private/Templates/Address/Information.html
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<p><f:translate key="form.info.text" /></p>
</f:then>
<f:else>
<p><f:translate key="form.info.error" htmlEscape="false" /></p>
<p><f:format.raw><f:translate key="form.info.error" /></f:format.raw></p>
</f:else>
</f:if>

Expand Down
4 changes: 3 additions & 1 deletion Resources/Private/Templates/Address/MailNewsletterRegistration.html
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
{f:translate(key:'mail.registration.greet')} {f:translate(key:'mail.gender.{address.gender}')} {address.firstName} {address.lastName}
</p>
<p>
{f:translate(key:'mail.registration.text', htmlEscape:0)}
<f:format.raw>
{f:translate(key:'mail.registration.text')}
</f:format.raw>
</p>
<div>
{f:translate(key:'mail.registration.consentText')}
Expand Down
2 changes: 1 addition & 1 deletion Resources/Private/Templates/Address/MailNewsletterRegistration.txt
100644 → 100755
Original file line number Diff line number Diff line change
@@ -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()}
Expand Down
9 changes: 7 additions & 2 deletions composer.json
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -18,5 +18,10 @@
"psr-4": {
"AFM\\Registeraddress\\": "Classes/"
}
},
"extra": {
"typo3/cms": {
"extension-key": "registeraddress"
}
}
}
4 changes: 2 additions & 2 deletions ext_emconf.php
Original file line number Diff line number Diff line change
Expand Up @@ -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(
),
Expand Down
Loading