From 31d8a763a7effaf075a6e23cbbf4d2c7ba9d92ed Mon Sep 17 00:00:00 2001 From: Fabio Stegmeyer Date: Wed, 17 Feb 2021 23:08:18 +0100 Subject: [PATCH] [TASK] Render mails as tables, add some styling --- Classes/Service/MailTemplateService.php | 37 +++++++++++++++++++++++++ Classes/Service/RegisterService.php | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Classes/Service/MailTemplateService.php b/Classes/Service/MailTemplateService.php index 4ff4910..4f43254 100644 --- a/Classes/Service/MailTemplateService.php +++ b/Classes/Service/MailTemplateService.php @@ -874,6 +874,7 @@ class MailTemplateService { $emailView->assignMultiple($this->markers); $emailView->assign('all_fields', $this->getAllMarker($this->markers)); + $emailView->assign('all_fields_html', $this->getAllMarkerHTML($this->markers)); //TODO: make this as the lines below the next block $overwrittenEmailBody = $this->getOverwrittenEmailBody(); @@ -989,6 +990,42 @@ class MailTemplateService { return $allMarker; } + /** + * Get a single variable containing a list of all markers in table markup + * + * @param array $markers + * @return string + */ + private function getAllMarkerHTML(array $markers): string { + $allMarker = ''; + $allMarker .= ''; + + foreach ($markers as $key => $value) { + if (\array_key_exists($key, $this->markerLabels) && $this->markerLabels[$key] !== NULL) { + $key = $this->markerLabels[$key]; + } + + if (\is_string($value)) { + $allMarker .= ''; + } elseif (\is_array($value)) { + foreach ($value as $innerKey => $innerValue) { + $allMarker .= ''; + } + } elseif (\is_bool($value)) { + $valueAsString = $value ? 'true' : 'false'; + $allMarker .= ''; + } elseif (\is_object($value)) { + if (\method_exists($value, '__toString')) { + $allMarker .= ''; + } + } + } + + $allMarker .= '
' . $key . ': ' . $value . '
' . $key . '.' . $innerKey . ': ' . $innerValue . '
' . $key . ': ' . $valueAsString . '
' . $key . ': ' . $value->__toString() . '
'; + + return $allMarker; + } + /** * @return string */ diff --git a/Classes/Service/RegisterService.php b/Classes/Service/RegisterService.php index f1bd7b3..541c025 100644 --- a/Classes/Service/RegisterService.php +++ b/Classes/Service/RegisterService.php @@ -257,7 +257,7 @@ class RegisterService implements \TYPO3\CMS\Core\SingletonInterface { 'description' => $description, 'subject' => $subject, 'markers' => [], - 'templateContent' => '{all_fields}' + 'templateContent' => '{all_fields_html}', ]; foreach ($markers as $marker) { -- GitLab