diff --git a/Classes/Service/MailTemplateService.php b/Classes/Service/MailTemplateService.php index 7842bd250af2f0fa344b9ce694e0ffac923a6641..0095561832a08121f26b2d9e06ae026d1af23507 100644 --- a/Classes/Service/MailTemplateService.php +++ b/Classes/Service/MailTemplateService.php @@ -296,28 +296,38 @@ class MailTemplateService { $this->loadTemplateValues($template); } - $defaultTemplateContent = NULL; + // get default template content from register array + $defaultTemplateContent = $registerService->getRegisterArray( + )[$this->extensionKey][$this->templateName]['templateContent']; +// var_dump($registerService->getRegisterArray()[$this->extensionKey][$this->templateName]); die(); +// var_dump($defaultTemplateContent); die(); // If there is no template for this language, use the default template if ($template === NULL) { - $templatePath = $registerService->getRegisterArray()[$this->extensionKey][$this->templateName]['templatePath']; - - // only standard template file is considered since version 4.1 - $defaultTemplateFile = $templatePath . 'template.html'; - if (file_exists($defaultTemplateFile)) { - $defaultTemplateContent = file_get_contents($defaultTemplateFile); - } else { - // use configured default html template - /** @var TypoScriptSettingsService $typoScriptSettingsService */ - $typoScriptSettingsService = $this->objectManager->get(TypoScriptSettingsService::class); - $tsSettings = $typoScriptSettingsService->getSettings(0, 'tx_sgmail'); - $defaultTemplateFile = GeneralUtility::getFileAbsFileName($tsSettings['mail']['defaultHtmlTemplate']); + if ($defaultTemplateContent === NULL) { + $templatePath = $registerService->getRegisterArray( + )[$this->extensionKey][$this->templateName]['templatePath']; + // only standard template file is considered since version 4.1 + $defaultTemplateFile = $templatePath . 'template.html'; if (file_exists($defaultTemplateFile)) { $defaultTemplateContent = file_get_contents($defaultTemplateFile); } else { - return FALSE; + // use configured default html template + /** @var TypoScriptSettingsService $typoScriptSettingsService */ + $typoScriptSettingsService = $this->objectManager->get(TypoScriptSettingsService::class); + $tsSettings = $typoScriptSettingsService->getSettings(0, 'tx_sgmail'); + $defaultTemplateFile = GeneralUtility::getFileAbsFileName( + $tsSettings['mail']['defaultHtmlTemplate'] + ); + + if (file_exists($defaultTemplateFile)) { + $defaultTemplateContent = file_get_contents($defaultTemplateFile); + } else { + return FALSE; + } } } + } elseif (filter_var($template->getToAddress(), FILTER_VALIDATE_EMAIL)) { $this->setToAddresses(trim($template->getToAddress())); } diff --git a/Classes/Service/RegisterService.php b/Classes/Service/RegisterService.php index cdc2a6f53e30ea5377e83d6e7c45d076490b5247..d7dd8728aec9833a931c6920f52df124ba1b4eee 100644 --- a/Classes/Service/RegisterService.php +++ b/Classes/Service/RegisterService.php @@ -84,7 +84,6 @@ class RegisterService implements \TYPO3\CMS\Core\SingletonInterface { private function registerExtensions(): array { $this->registerArray = []; - $extensionConfiguration = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['sg_mail'], []); // @TODO remove in version 5.0.0 @@ -195,6 +194,7 @@ class RegisterService implements \TYPO3\CMS\Core\SingletonInterface { $description = $configArray['description']; $subject = $configArray['subject']; $marker = $configArray['markers']; + $templateContent = $configArray['templateContent']; $this->registerArray[$extensionKey][$templateKey] = [ 'templatePath' => $templatePath, @@ -202,7 +202,8 @@ class RegisterService implements \TYPO3\CMS\Core\SingletonInterface { 'marker' => $marker, 'extension' => $extensionKey, 'templateName' => $templateKey, - 'subject' => $subject + 'subject' => $subject, + 'templateContent' => $templateContent ]; }