From 0575cc2a8c54caa7c93d12c121382aa7e2e32243 Mon Sep 17 00:00:00 2001 From: Torsten Oppermann <torsten@sgalinski.de> Date: Mon, 3 Oct 2016 18:19:51 +0200 Subject: [PATCH] [TASK] Restoring default template fallback --- Classes/Service/MailTemplateService.php | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/Classes/Service/MailTemplateService.php b/Classes/Service/MailTemplateService.php index 6380f4ef..d23500f8 100644 --- a/Classes/Service/MailTemplateService.php +++ b/Classes/Service/MailTemplateService.php @@ -170,9 +170,10 @@ class MailTemplateService { * @param array $markers * @return string */ - public static function registerTemplate($extension, $templateName, $description, array $markers) { + public static function registerTemplate($extension, $templateName, $templatePath, $description, array $markers) { MailTemplateService::$registerArray[$extension][$templateName] = [ + 'templatePath' => $templatePath, 'description' => $description, 'marker' => $markers, 'extension' => $extension, @@ -205,17 +206,24 @@ class MailTemplateService { $this->extensionKey, $this->templateName, $this->language )->getFirst(); - // If there is no template for this language, use the english template - if ($template === NULL && $this->language !== 'en') { - $this->setLanguage('en'); - $this->sendEmail(); + // 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'); + } else { + // no language found and no default template + return FALSE; + } } - if ($template === NULL) { - return FALSE; + if (!isset($defaultTemplateContent)) { + $emailView->setTemplateSource($template->getContent()); + } else { + $emailView->setTemplateSource($defaultTemplateContent); } - $emailView->setTemplateSource($template->getContent()); $emailView->assignMultiple($this->markers); $emailBody = $emailView->render(); -- GitLab