Skip to content
Snippets Groups Projects
Commit bb09f2f8 authored by Kevin Ditscheid's avatar Kevin Ditscheid
Browse files

[FEATURE] Enable subject to be localizable

If subject is a string that begins with LLL:, it will be handled
as a locallang reference and translated accordingly
parent 967192b1
No related branches found
No related tags found
No related merge requests found
......@@ -38,6 +38,7 @@ use TYPO3\CMS\Core\Utility\VersionNumberUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
use TYPO3\CMS\Lang\LanguageService;
/**
* Controller for the mail templating service module
......@@ -157,8 +158,18 @@ class MailController extends ActionController {
$templateFromFile = new Template();
$templateFromFile->setLanguage($key);
$templates[$key] = $templateFromFile;
if (\strpos($subject, 'LLL:') === 0) {
/**
* @var $languageService LanguageService
*/
$languageService = GeneralUtility::makeInstance(LanguageService::class);
// initialize the language service with the templates language
$languageService->init($key);
$subject = $languageService->sL($subject);
unset($languageService);
}
$templateFromFile->setSubject($subject);
$subject = $registerArray[$parameters['selectedExtension']][$parameters['selectedTemplate']]['subject'];
if (file_exists($defaultTemplateFile)) {
$templateFromFile->setContent(file_get_contents($defaultTemplateFile));
} else {
......@@ -224,7 +235,7 @@ class MailController extends ActionController {
$this->view->assign('beUserMail', $GLOBALS['BE_USER']->user['email']);
// get the default language label and pass it to the view
$languageService = $GLOBALS['LANG'];
$languageService = $this->getLanguageService();
$pageTsConfig = BackendUtility::getPagesTSconfig($pageUid);
if (VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version) >= 8000000) {
$defaultLanguageLabel = $languageService->sL(
......@@ -358,4 +369,13 @@ class MailController extends ActionController {
$arguments = $this->request->getArguments();
$this->redirect('index', NULL, NULL, $arguments);
}
/**
* Get the LanguageService
*
* @return LanguageService
*/
protected function getLanguageService(): LanguageService {
return $GLOBALS['LANG'];
}
}
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