Eigenes Mail-Template für core form-Extension Typo3 8 tx_form

Dienstag, 19. September 2017

Kurzanleitung zum Verwenden eigener Mail-Templates für die form-Extension unter Typo3 8 LTS.
Möchte man ein eigenes Mail-Template für die schöne Form-Extension von Typo3 anlegen, helfen ein paar Zeilen Typoscript zusammen mit einer eigenen yaml-Konfiguration.

1. Per TS-Setup einen neuen Pfad für das yaml-setup definieren:

plugin.tx_form {
    settings {
        yamlConfigurations {
            100 = fileadmin/templates/extensions/formframework/setup.yaml
        }
    }
}

2. In der Yaml-Datei (setup.yaml) den Pfad zum Template überschreiben:

TYPO3:
  CMS:
    Form:
      mixins:
        finishersEmailMixin:
          options:
            templatePathAndFilename: 'fileadmin/templates/extensions/formframework/Email/{@format}.html'

3. Template-Datei (hier: fileadmin/templates/extensions/formframework/Email/Html.html) anlegen:

{namespace formvh=TYPO3\CMS\Form\ViewHelpers}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <title></title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <meta name="format-detection" content="telephone=no">
</head>
<body>
 
   <table width="600" cellpadding="0" cellspacing="0" border="0">
      <formvh:renderAllFormValues renderable="{form.formDefinition}" as="formValue">
         <tr>
            <td width="600" valign="top" align="left">{formvh:translateElementProperty(element: formValue.element, property: 'label')}</td>
            <td width="600" valign="top" align="left">
               <f:if condition="{formValue.value}">
                  <f:then>
                     <f:if condition="{formValue.isMultiValue}">
                        <f:then>
                           <table cellspacing="0" border="0">
                              <f:for each="{formValue.processedValue}" as="value">
                                 <tr>
                                    <td>{value}</td>
                                 </tr>
                              </f:for>
                           </table>
                        </f:then>
                        <f:else>
                           <table cellspacing="0" border="0">
                              <tr>
                                 <td>{formValue.processedValue}</td>
                              </tr>
                           </table>
                        </f:else>
                     </f:if>
                  </f:then>
                  <f:else>
                     -
                  </f:else>
               </f:if>
            </td>
         </tr>
      </formvh:renderAllFormValues>
   </table>
</body>
</html>