From 4cf8a87eff7cd9435ee92cf30f820c859048b2d6 Mon Sep 17 00:00:00 2001 From: Torsten Oppermann <torsten@sgalinski.de> Date: Mon, 12 Sep 2016 08:55:50 +0200 Subject: [PATCH] [TASK] dynamic template/marker reading --- Classes/Controller/MailController.php | 13 +++++++++++ Classes/Service/MailTemplateService.php | 6 +++++ Configuration/Templates/sg_comments/test.html | 3 ++- .../Templates/sg_documentation/demo_mail.html | 1 + Resources/Private/Templates/Mail/Index.html | 1 - .../Private/Templates/Mail/ShowMarker.html | 23 ++++++++++++++++++- .../Private/Templates/Mail/ShowTemplates.html | 2 +- q | 13 +++++++++++ 8 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 q diff --git a/Classes/Controller/MailController.php b/Classes/Controller/MailController.php index 1a282adc..4f624d79 100644 --- a/Classes/Controller/MailController.php +++ b/Classes/Controller/MailController.php @@ -67,6 +67,7 @@ class MailController extends ActionController { ) . 'Configuration/Templates/' . $extensionKey . '/'; $files = glob($extPath . '*.html'); $this->view->assign('templates', array_map('basename', $files)); + $this->view->assign('extensionKey', $extensionKey); } /** @@ -74,7 +75,19 @@ class MailController extends ActionController { * */ public function showMarkerAction() { + $extensionKey = $this->request->getArgument('extensionKey'); + $template = $this->request->getArgument('template'); + $templateContent = file_get_contents( + ExtensionManagementUtility::extPath( + 'sg_mail' + ) . 'Configuration/Templates/' . $extensionKey . '/' . $template + ); + + $marker = preg_match_all('/(?<={)[^}]+(?=})/', $templateContent, $matches) ? $matches[0] : []; + $comments = preg_match_all('/<!--(.|\s)*?-->/', $templateContent, $matches) ? $matches[0] : []; + $this->view->assign('marker', $marker); + $this->view->assign('comments', $comments); } } diff --git a/Classes/Service/MailTemplateService.php b/Classes/Service/MailTemplateService.php index dd15f993..58b09b11 100644 --- a/Classes/Service/MailTemplateService.php +++ b/Classes/Service/MailTemplateService.php @@ -32,6 +32,12 @@ use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; */ class MailTemplateService { + /** + * Holds default values for all Templates and their markers + * @var array + */ + protected $templateConfig = []; + /** * @var array */ diff --git a/Configuration/Templates/sg_comments/test.html b/Configuration/Templates/sg_comments/test.html index 1a849f42..eaa9b21f 100644 --- a/Configuration/Templates/sg_comments/test.html +++ b/Configuration/Templates/sg_comments/test.html @@ -1 +1,2 @@ -<h1>###heading###</h1> +<!--this is the heading of the template--> +<h1>{heading}</h1> diff --git a/Configuration/Templates/sg_documentation/demo_mail.html b/Configuration/Templates/sg_documentation/demo_mail.html index e69de29b..bd89fb88 100644 --- a/Configuration/Templates/sg_documentation/demo_mail.html +++ b/Configuration/Templates/sg_documentation/demo_mail.html @@ -0,0 +1 @@ +<h1>{heading123}</h1> diff --git a/Resources/Private/Templates/Mail/Index.html b/Resources/Private/Templates/Mail/Index.html index e7265227..86ad71f9 100644 --- a/Resources/Private/Templates/Mail/Index.html +++ b/Resources/Private/Templates/Mail/Index.html @@ -4,7 +4,6 @@ </f:section> <f:section name="main"> <f:flashMessages renderMode="div" /> - <f:debug>{extensions}</f:debug> <h3>Registered Extensions</h3> <ul class="list-group"> <f:for each="{extensions}" as="extension"> diff --git a/Resources/Private/Templates/Mail/ShowMarker.html b/Resources/Private/Templates/Mail/ShowMarker.html index 5b4102cf..3d20cb48 100644 --- a/Resources/Private/Templates/Mail/ShowMarker.html +++ b/Resources/Private/Templates/Mail/ShowMarker.html @@ -1 +1,22 @@ -Show Marker Template +<f:layout name="Default" /> +<f:section name="iconButtons"> + +</f:section> +<f:section name="main"> + <f:flashMessages renderMode="div" /> + <ul class="list-group"> + <f:for each="{marker}" as="currentMarker"> + <li class="list-group-item"> + {currentMarker} + </li> + </f:for> + </ul> + + <ul class="list-group"> + <f:for each="{comments}" as="comment"> + <li class="list-group-item"> + {comment} + </li> + </f:for> + </ul> +</f:section> diff --git a/Resources/Private/Templates/Mail/ShowTemplates.html b/Resources/Private/Templates/Mail/ShowTemplates.html index 30eda2d2..3ddc830e 100644 --- a/Resources/Private/Templates/Mail/ShowTemplates.html +++ b/Resources/Private/Templates/Mail/ShowTemplates.html @@ -7,7 +7,7 @@ <ul class="list-group"> <f:for each="{templates}" as="template"> <li class="list-group-item"> - <f:link.action controller="Mail" action="showMarker" arguments="{template:'{template}'}"> + <f:link.action controller="Mail" action="showMarker" arguments="{template:'{template}', extensionKey: '{extensionKey}'}"> {template} </f:link.action> </li> diff --git a/q b/q new file mode 100644 index 00000000..590268e1 --- /dev/null +++ b/q @@ -0,0 +1,13 @@ +Auf Branch feature_sg_mail +Änderungen, die nicht zum Commit vorgemerkt sind: + (benutzen Sie "git add <Datei>...", um die Änderungen zum Commit vorzumerken) + (benutzen Sie "git checkout -- <Datei>...", um die Änderungen im Arbeitsverzeichnis zu verwerfen) + + [31mgeändert: Classes/Controller/MailController.php[m + [31mgeändert: Configuration/Templates/sg_comments/test.html[m + [31mgeändert: Configuration/Templates/sg_documentation/demo_mail.html[m + [31mgeändert: Resources/Private/Templates/Mail/Index.html[m + [31mgeändert: Resources/Private/Templates/Mail/ShowMarker.html[m + [31mgeändert: Resources/Private/Templates/Mail/ShowTemplates.html[m + +keine Änderungen zum Commit vorgemerkt (benutzen Sie "git add" und/oder "git commit -a") -- GitLab