BeforeRenderableIsValidatedEvent
New in version 14.0
The event
Before
is a replacement for the removed hook
$GLOBALS.
The event
Before
is dispatched just before a renderable is validated. This event allows a renderable
to add custom logic before it is validated.
Example
EXT:my_extension/Classes/EventListener/MyEventListener.php
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\EventListener;
use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Form\Event\BeforeRenderableIsValidatedEvent;
final readonly class MyEventListener
{
#[AsEventListener(
identifier: 'my-extension/before-renderable-is-validate',
)]
public function __invoke(BeforeRenderableIsValidatedEvent $event): void
{
$renderable = $event->renderable;
if ($renderable->getType() !== 'AdvancedPassword') {
return;
}
$elementValue = $event->value;
if ($elementValue['password'] !== $elementValue['confirmation']) {
$processingRule = $renderable->getRootForm()->getProcessingRule($renderable->getIdentifier());
$processingRule->getProcessingMessages()->addError(
GeneralUtility::makeInstance(
Error::class,
GeneralUtility::makeInstance(TranslationService::class)->translate('validation.error.1556283177', null, 'EXT:form/Resources/Private/Language/locallang.xlf'),
1556283177,
),
);
}
$event->value = $elementValue['password'];
}
}