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

[TASK] Refactoring View, outsourcing some code into functions. Content gets now saved

parent 7854d218
No related branches found
No related tags found
1 merge request!1Feature sg mail
......@@ -58,11 +58,7 @@ class MailController extends ActionController {
$firstEntry = key(MailTemplateService::getRegisterArray());
$secondLevelFirstEntry = key(MailTemplateService::getRegisterArray()[$firstEntry]);
$templatePath = MailTemplateService::getRegisterArray()
[$firstEntry][$secondLevelFirstEntry]['templatePath'];
if (isset($selectedTemplate)) {
$templatePath = $registerArray[$selectedExtension][$selectedTemplate]['templatePath'];
}
$templatePath = $this->getTemplatePath($selectedExtension, $selectedTemplate);
$activatedLanguages = $this->languageRepository->findSelected();
$languages = ['en'];
......@@ -124,22 +120,68 @@ class MailController extends ActionController {
}
/**
* creates a language File for this Template
*
* @param \TYPO3\CMS\Lang\Domain\Model\Language $language
* @param string $path
*/
private function writeLanguageFile(\TYPO3\CMS\Lang\Domain\Model\Language $language, $path) {
$currentLangFile = $path . $language->getLocale() . '.sg_mail.locallang.html';
if (!file_exists($currentLangFile)) {
$currentLangFile = fopen($currentLangFile, 'w');
$langFileContent = 'TEST: ' . $language->getLocale();
fwrite($currentLangFile, $langFileContent);
file_put_contents($currentLangFile, $langFileContent);
}
}
public function saveAction() {
$args = $this->request->getArguments();
/**
* Save content (left & right)
* if left & right is the same language, the right content will apply
*
* @param string $contentLeft
* @param string $contentRight
* @param string $selectedExtension
* @param string $selectedTemplate
* @param string $extensionKey
* @param string $selectedLanguageLeft
* @param string $selectedLanguageRight
*/
public function saveAction(
$contentLeft = NULL, $contentRight = NULL, $selectedExtension = NULL, $selectedTemplate = NULL,
$extensionKey = NULL, $selectedLanguageLeft = NULL, $selectedLanguageRight = NULL
) {
$arguments = $this->request->getArguments();
$templatePath = $this->getTemplatePath($selectedExtension, $selectedTemplate);
$this->redirect('index');
$filename = $templatePath . $selectedLanguageLeft . '.sg_mail.locallang.html';
file_put_contents($filename, $contentLeft);
$filename = $templatePath . $selectedLanguageRight . '.sg_mail.locallang.html';
file_put_contents($filename, $contentRight);
$this->redirect('index', NULL, NULL, $arguments);
}
/**
* Returns the Path for this Template
*
* @param string $selectedExtension
* @param string $selectedTemplate
* @return string $templatePath
*/
private function getTemplatePath($selectedExtension, $selectedTemplate) {
$registerArray = MailTemplateService::getRegisterArray();
reset(MailTemplateService::getRegisterArray());
$firstEntry = key(MailTemplateService::getRegisterArray());
$secondLevelFirstEntry = key(MailTemplateService::getRegisterArray()[$firstEntry]);
$templatePath = MailTemplateService::getRegisterArray()
[$firstEntry][$secondLevelFirstEntry]['templatePath'];
if (isset($selectedTemplate)) {
$templatePath = $registerArray[$selectedExtension][$selectedTemplate]['templatePath'];
}
return $templatePath;
}
}
......@@ -55,9 +55,8 @@ class MailTemplateService {
$defaultLangFile = $templatePath . 'en.sg_mail.locallang.html';
if (!file_exists($defaultLangFile)) {
$defaultLangFile = fopen($templatePath . 'en.sg_mail.locallang.html', 'w');
$langFileContent = 'TEST';
fwrite($defaultLangFile, $langFileContent);
file_put_contents($defaultLangFile, $langFileContent);
}
}
......
......@@ -24,63 +24,67 @@
</tr>
</f:for>
</table>
<div class="col-md-6">
Sprache auswählen
<f:be.menus.actionMenu>
<f:for each="{languages}" as="language">
<sgm:extendedIf condition="{language} == {selectedLanguageLeft}">
<f:then>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: language, selectedLanguageRight: selectedLanguageRight, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}"
additionalAttributes="{selected: 'selected'}" />
</f:then>
<f:else>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: language, selectedLanguageRight: selectedLanguageRight, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}" />
</f:else>
</sgm:extendedIf>
</f:for>
</f:be.menus.actionMenu>
<f:form method="post" controller="Mail" action="save">
<div class="col-md-6">
Sprache auswählen
<f:be.menus.actionMenu>
<f:for each="{languages}" as="language">
<sgm:extendedIf condition="{language} == {selectedLanguageLeft}">
<f:then>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: language, selectedLanguageRight: selectedLanguageRight, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}"
additionalAttributes="{selected: 'selected'}" />
</f:then>
<f:else>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: language, selectedLanguageRight: selectedLanguageRight, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}" />
</f:else>
</sgm:extendedIf>
</f:for>
</f:be.menus.actionMenu>
<f:form method="post" controller="Mail" action="save">
<br />
<f:form.textarea class="col-md-12" rows="25" value="{contentLeft}"></f:form.textarea>
<f:form.textarea class="col-md-12" rows="25" name="contentLeft" value="{contentLeft}"></f:form.textarea>
<f:form.hidden name="selectedLanguageLeft" value="{selectedLanguageLeft}"></f:form.hidden>
<f:form.hidden name="selectedLanguageRight" value="{selectedLanguageRight}"></f:form.hidden>
<f:form.hidden name="selectedTemplate" value="{selectedTemplateKey}"></f:form.hidden>
<f:form.hidden name="selectedExtensionKey" value="{selectedTemplate.extension}"></f:form.hidden>
<f:form.hidden name="selectedExtension" value="{selectedTemplate.extension}"></f:form.hidden>
<f:form.hidden name="selectedTemplateKey" value="{selectedTemplateKey}"></f:form.hidden>
<br />
<f:form.submit class="btn-default col-md-1" value="Save" />
</f:form>
</div>
</div>
<div class="col-md-6">
Sprache auswählen
<f:be.menus.actionMenu>
<f:for each="{languages}" as="language">
<sgm:extendedIf condition="{language} == {selectedLanguageRight}">
<f:then>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: selectedLanguageLeft, selectedLanguageRight: language, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}"
additionalAttributes="{selected: 'selected'}" />
</f:then>
<f:else>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: selectedLanguageLeft, selectedLanguageRight: language, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}" />
</f:else>
</sgm:extendedIf>
</f:for>
</f:be.menus.actionMenu>
<div class="col-md-6">
Sprache auswählen
<f:be.menus.actionMenu>
<f:for each="{languages}" as="language">
<sgm:extendedIf condition="{language} == {selectedLanguageRight}">
<f:then>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: selectedLanguageLeft, selectedLanguageRight: language, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}"
additionalAttributes="{selected: 'selected'}" />
</f:then>
<f:else>
<sgm:be.menus.actionMenuItem label="{language}"
controller="Mail"
action="index"
arguments="{selectedLanguageLeft: selectedLanguageLeft, selectedLanguageRight: language, selectedTemplate: selectedTemplateKey, selectedExtensionKey: selectedTemplate.extension, selectedExtension: selectedTemplate.extension, selectedTemplateKey: selectedTemplateKey}" />
</f:else>
</sgm:extendedIf>
</f:for>
</f:be.menus.actionMenu>
<f:form method="post" controller="Mail" action="save">
<br />
<f:form.textarea class="col-md-12" rows="25" value="{contentRight}"></f:form.textarea>
<f:form.textarea class="col-md-12" rows="25" name="contentRight" value="{contentRight}"></f:form.textarea>
<br />
<f:form.submit class="btn-default col-md-1" value="Save" />
</f:form>
</div>
</div>
<f:form.submit class="btn-default" value="Save" />
</f:form>
</f:section>
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