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
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/