SetDefaultValueEvent 

This Event allows you to set field with default values if needed. This event is dispatched in the EmailFinisher in the processView function.

Attributes 

formRuntime

formRuntime
Type
TYPO3CMSFormDomainRuntimeFormRuntime
Required

true

The send formRuntime.

shortFinisherIdentifier

shortFinisherIdentifier
Type
string
Required

true

The identifier of the called EmailFinisher (EmailToReceiver or EmailToSender).

Subscribe this event 

First create an EventListener class in your Extension. It may look like this.

EXT:my_extension/Classes/EventListener/SetDefaultValueEventListener.php
<?php
declare(strict_types=1);

namespace MY\MyExtension\EventListener;

use LIA\LiaForm\Event\Finisher\SetDefaultValueEvent;

final class SetDefaultValueEventListener {

    /**
    * Fill empty form values with defaults before the email is rendered.
    *
    * @param SetDefaultValueEvent $event
    * @return void
    */
    public function __invoke(SetDefaultValueEvent $event): void
    {
        $formRuntime = $event->getFormRuntime();
        $formState = $formRuntime->getFormState();
        if ($formState === null) {
            return;
        }

        // Compare against null and '' explicitly: empty() would also match a
        // legitimately submitted '0', for example the first salutation option.
        $salutation = $formRuntime->getElementValue('salutation');
        if ($salutation === null || $salutation === '') {
            $formState->setFormValue('salutation', 'Sir or Madam');
        }
    }
}
Copied!

Now register this EventListener in your Services.yaml.

EXT:my_extension/Configuration/Services.yaml
MY\MyExtension\EventListener\SetDefaultValueEventListener:
  tags:
    - name: event.listener
      identifier: 'my-extension/finisher-set-default-values-event'
      event: LIA\LiaForm\Event\Finisher\SetDefaultValueEvent
Copied!