Extending Field Type Lists in the FormNormalizer (Form Framework)
This extension provides a FormNormalizer for the TYPO3 Form Framework that helps with processing submitted form data. It allows specific field types to be ignored or verified during validation.
If you are using custom form field types, you need to register them via the event
\Denkwerk\
to ensure proper validation behavior.
See also
Note
ModifyFormFieldTypeListsEvent
This event is triggered when the FormNormalizer is instantiated.
You can use this event to:
getIgnoredFieldTypes() / setIgnoredFieldTypes()
-
- Type
- array of strings
Add field types to the ignore list
getVerifiableFieldTypes() / setVerifiableFieldTypes()
-
- Type
- array of strings
Add field types to the verifiable list
Adding your own Event Listener
To register your own field types for the FormNormalizer, follow these steps:
- In your custom provider extension, create a new PHP file at:
Classes/
Event Listener/ Modify Form Field Types For Form Listener. php - Add the following implementation.This example adds custom field types to both the ignored and verifiable lists:EXT:site_package/Classes/EventListener/ModifyFormFieldTypesForFormListener.php
namespace Vendor\MyExtension\EventListener; use Denkwerk\MosparoForm\Event\ModifyFormFieldTypeListsEvent; final class ModifyFormFieldTypesForFormListener { public function __invoke(ModifyFormFieldTypeListsEvent $event): void { // Add custom field types to the ignore list $ignored = $event->getIgnoredFieldTypes(); $ignored[] = 'customFormElementToIgnore'; $event->setIgnoredFieldTypes($ignored); // Add custom field types to the verifiable list $verifiable = $event->getVerifiableFieldTypes(); $verifiable[] = 'customFormInputElement'; $event->setVerifiableFieldTypes($verifiable); } }
Copied! -
Register the listener in your custom provider extension Services.yaml:
EXT:site_package/Configuration/service.yaml... services: Vendor\MyExtension\EventListener\ModifyFormFieldTypesForFormListener: tags: - name: event.listener event: Denkwerk\MosparoForm\Event\ModifyFormFieldTypeListsEvent
Copied!