Feature: #107569 - PSR-14 Event before renderable is rendered 

See forge#107569

Description 

A new PSR-14 event \TYPO3\CMS\Form\Event\BeforeRenderableIsRenderedEvent has been introduced which serves as an replacement for the now removed hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeRendering'] .

The new event is dispatched just right before a renderable is rendered.

The event provides the following public properties:

  • $renderable: The form element
  • $formRuntime: The form runtime

Example 

An example event listener could look like:

use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Form\Event\BeforeRenderableIsRenderedEvent;

class MyEventListener {

    #[AsEventListener(
        identifier: 'my-extension/before-renderable-is-rendered',
    )]
    public function __invoke(BeforeRenderableIsRenderedEvent $event): void
    {
        $renderable = $event->renderable;
        if ($renderable->getType() !== 'Date') {
            return;
        }
        $date = $event->formRuntime[$renderable->getIdentifier()];
        if ($date instanceof \DateTime) {
            $event->formRuntime[$renderable->getIdentifier()] = $date->format('Y-m-d');
        }
    }
}
Copied!

Impact 

With the new PSR-14 BeforeRenderableIsRenderedEvent, it's now possible to modify the renderable before it's rendered or modify the form runtime.