Skip to content
Snippets Groups Projects
Commit 6bb8e718 authored by Torsten Oppermann's avatar Torsten Oppermann
Browse files

[TASK] Refactoring mailservice, subject priority from template

parent a83041ab
No related branches found
No related tags found
No related merge requests found
......@@ -355,10 +355,9 @@ class MailController extends ActionController {
$mailTemplateService->setLanguage($selectedLanguageLeft);
$mailTemplateService->setToAddresses($emailAddress);
$mailTemplateService->setFromAddress($this->settings['mail']['test']['from']);
$mailTemplateService->setSubject($this->settings['mail']['test']['subject']);
$mailTemplateService->setTemplateName($selectedTemplateKey);
$mailTemplateService->setExtensionKey($selectedExtensionKey);
$mailIsSend = $mailTemplateService->sendEmail(TRUE);
$mailIsSend = $mailTemplateService->sendPreviewMail($this->settings['mail']['test']['subject']);
if ($selectedLanguageRight !== $selectedLanguageLeft) {
/** @var \SGalinski\SgMail\Service\MailTemplateService $mailTemplateService */
......@@ -366,10 +365,9 @@ class MailController extends ActionController {
$mailTemplateService->setLanguage($selectedLanguageRight);
$mailTemplateService->setToAddresses($emailAddress);
$mailTemplateService->setFromAddress($this->settings['mail']['test']['from']);
$mailTemplateService->setSubject($this->settings['mail']['test']['subject']);
$mailTemplateService->setTemplateName($selectedTemplateKey);
$mailTemplateService->setExtensionKey($selectedExtensionKey);
$mailIsSend = $mailTemplateService->sendEmail(TRUE);
$mailIsSend = $mailTemplateService->sendPreviewMail($this->settings['mail']['test']['subject']);
}
if ($mailIsSend) {
......
......@@ -79,11 +79,10 @@ class FormhandlerFinisherService extends AbstractFinisher {
$mailTemplateService = $objectManager->get(MailTemplateService::class);
$mailTemplateService->setToAddresses($toAddress);
$mailTemplateService->setFromAddress($fromAddress);
$mailTemplateService->setSubject($subject);
$mailTemplateService->setTemplateName($this->settings['template_key']);
$mailTemplateService->setExtensionKey($this->settings['extension_key']);
$mailTemplateService->setMarkers($this->gp);
$mailTemplateService->sendEmail();
$mailTemplateService->sendEmail($subject);
return $this->gp;
}
......
......@@ -193,10 +193,10 @@ class MailTemplateService {
/**
* Send the Email
*
* @param boolean $isPreview
* @param string $subject
* @return boolean email was sent or added to mail queue successfully?
*/
public function sendEmail($isPreview = FALSE) {
public function sendEmail($subject = '') {
/** @var Template $template */
$template = $this->templateRepository->findTemplate(
......@@ -216,16 +216,6 @@ class MailTemplateService {
}
}
if ($isPreview) {
$previewMarker = [];
$markerArray = self::$registerArray[$this->extensionKey][$this->templateName]['marker'];
foreach ($markerArray as $marker) {
$previewMarker[$marker['marker']] = $marker['value'];
}
$this->setMarkers($previewMarker);
}
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
/** @var StandaloneView $emailView */
$emailView = $objectManager->get(StandaloneView::class);
......@@ -235,7 +225,7 @@ class MailTemplateService {
$this->mailMessage->setSubject($template->getSubject());
} else {
$emailView->setTemplateSource($defaultTemplateContent);
$this->mailMessage->setSubject('');
$this->mailMessage->setSubject($subject);
}
$emailView->assignMultiple($this->markers);
......@@ -255,6 +245,58 @@ class MailTemplateService {
return TRUE;
}
/**
* @param string $subject
* @return boolean
*/
public function sendPreviewMail($subject = '') {
/** @var Template $template */
$template = $this->templateRepository->findTemplate(
$this->extensionKey, $this->templateName, $this->language
)->getFirst();
// If there is no template for this language, use the default template
if ($template === NULL) {
$templatePath = self::$registerArray[$this->extensionKey][$this->templateName]['templatePath'];
$templateFile = $templatePath . $this->language . '.template.html';
if (file_exists($templateFile)) {
$defaultTemplateContent = file_get_contents($templatePath . $this->language . '.template.html');
}
}
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
/** @var StandaloneView $emailView */
$emailView = $objectManager->get(StandaloneView::class);
$previewMarker = [];
$markerArray = self::$registerArray[$this->extensionKey][$this->templateName]['marker'];
foreach ($markerArray as $marker) {
$previewMarker[$marker['marker']] = $marker['value'];
}
$this->setMarkers($previewMarker);
if (!isset($defaultTemplateContent)) {
$emailView->setTemplateSource($template->getContent());
$this->mailMessage->setSubject($template->getSubject());
} else {
$emailView->setTemplateSource($defaultTemplateContent);
$this->mailMessage->setSubject($subject);
}
$emailView->assignMultiple($this->markers);
$emailBody = $emailView->render();
// insert <br /> tags, but replace every instance of three or more successive breaks with just two.
$emailBody = nl2br($emailBody);
$emailBody = preg_replace('/(<br[\s]?[\/]?>[\s]*){3,}/', '<br /><br />', $emailBody);
$this->mailMessage->setBody($emailBody, 'text/html');
$this->mailMessage->send();
return TRUE;
}
/**
* Adds a new mail to the mail queue.
*
......@@ -368,16 +410,6 @@ class MailTemplateService {
return $this;
}
/**
* @param string $subject
* @return MailTemplateService
*/
public function setSubject($subject) {
$this->subject = $subject;
$this->mailMessage->setSubject($subject);
return $this;
}
/**
* @param array $markers
* @return MailTemplateService
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment