TYPO3 Form: Felder in der Mail nicht anzeigen, angepasste Validator Meldungen und Änderung des HTML Templates

Die Standard Form Extension von TYPO3 ist einfach zu verwenden, funktioniert gut und ist für die meisten Anwendungsfälle geeignet. Etwas kompliziert wird es, wenn man Änderungen machen möchte, die nur über die YAML Konfiguration möglich sind.

TYPO3 Form Captcha Feld nicht in der Mail anzeigen

Möchte man, dass ein bestimmtes Feld, z.B. ein Captcha, nicht in dem Text, der an die Empfängeradresse als Mail versendet wird, angezeigt wird, so muss in der Konfigurationsdatei (YAML Datei) folgendes einfügen – die YAML Datei liegt standardmäßig in fileadmin/form_definitions:

renderables:
  ...
  -
    type: Captcha
    identifier: captcha-1
    label: 'Bitte Zahlen- / Buchstabenkombination abtippen'
    variants:
      -
        identifier: hide-1
        renderingOptions:
          enabled: false
        condition: 'finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'

Link: https://docs.typo3.org/c/typo3/cms-form/main/en-us/I/Concepts/Variants/Index.html

TYPO3 Form Validator Meldung anpassen

Als Beispiel wird ein Bild-Upload Element verwendet mit maximaler Dateigröße von 2MB. Die Fehlermeldung bei Überschreiten der Dateigröße soll angepasst werden:

renderables:
  ...
  -
    properties:
      saveToFileMount: '1:/user_upload/'
      allowedMimeTypes:
        - image/jpeg
      validationErrorMessages:
        -
          code: 1505305753
          message: 'Die Datei darf nicht größer sein als %s.'
    type: ImageUpload
    identifier: imageupload-1
    label: Bildupload
    validators:
      -
        options:
          minimum: 0B
          maximum: 2M
        identifier: FileSize

Link: https://docs.typo3.org/c/typo3/cms-form/13.4/en-us/I/Config/proto/validatorsDefinition/validators/FileSize.html

Layout der HTML Mail in TYPO3 Form anpassen

Die Datei liegt nicht, wie man vermuten könnte in typo3/sysext/form/... sondern hier: typo3/sysext/core/Resources/Private/Layouts/SystemEmail.html.

HInweis: möchte man lediglich das Logo und die Farben anpassen, so ist das über das TYPO3 Backend möglich und zwar in Verwaltungserkzeuge / Einstellungen / Extension Configuration / backend.

Die hier gemachten Anpassungen ändern dann auch die Login Maske. Wichtig ist, dass der Pfad zur eigenen Logodatei mit EXT:mysitepackage/ ... und nicht mit typo3conf/ext/mysitepackage/ ... angegeben wird – andernfalls funktioniert der Mailversand nicht.

Möchte man weitergehende Anpassungen vornehmen, so wird die Datei SystemEmail.html kopiert, im eigenen Sitepackage hinterlegt und angepasst. Nun muss man TYPO3 lediglich noch mitteilen, dass diese verwendet werden soll. Dazu erstellt man in typo3conf/system eine Datei namens additional.php mit folgendem Inhalt:

<?php

$GLOBALS['TYPO3_CONF_VARS']['MAIL']['layoutRootPaths'][100] = 'EXT:mysitepackage/Resources/Private/Layouts/Email';

Links:

https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Mail/Index.html

https://www.wacon.de/typo3-know-how/lsystemmails-layout-aendern.html

https://www.sebkln.de/en/tutorials/translating-forms-in-the-typo3-form-framework/

https://t3forum.net/d/389-ext-form