Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. index:: Events; BeforeRenderableIsRemovedFromFormEvent

.. _BeforeRenderableIsRemovedFromFormEvent:

======================================
BeforeRenderableIsRemovedFromFormEvent
======================================

.. versionadded:: 14.0
The event :php-short:`TYPO3\CMS\Form\Event\BeforeRenderableIsRemovedFromFormEvent`
is an improved replacement for the removed hook
:php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeRemoveFromParentRenderable']`.

The event :php-short:`TYPO3\CMS\Form\Event\BeforeRenderableIsRemovedFromFormEvent`
is dispatched just before a renderable is deleted from a form. It is now
possible to prevent the deletion of a renderable and to add custom logic
based on the deletion.

The event is stoppable. As soon as :php:`$preventRemoval` is set to
:php:`true`, no other listener is called.


.. _BeforeRenderableIsRemovedFromFormEvent-example:

Example
=======

.. literalinclude:: _BeforeRenderableIsRemovedFromFormEvent/_MyEventListener.php
:caption: EXT:my_extension/Classes/EventListener/MyEventListener.php

.. _BeforeRenderableIsRemovedFromFormEvent-api:

API
===

.. include:: /CodeSnippets/Events/Form/BeforeRenderableIsRemovedFromFormEvent.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\EventListener;

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

final readonly class MyEventListener
{
#[AsEventListener(
identifier: 'my-extension/before-renderable-is-removed-from-form-event',
)]
public function __invoke(BeforeRenderableIsRemovedFromFormEvent $event): void
{
$event->preventRemoval = true;
$renderable = $event->renderable;
// Do something with the renderable
}
}
4 changes: 2 additions & 2 deletions Documentation/CodeSnippets/Config/Api/Events/EventsForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
],
[
'action' => 'createPhpClassDocs',
'class' => \TYPO3\CMS\Form\Event\BeforeRenderableIsRenderedEvent::class,
'targetFileName' => 'CodeSnippets/Events/Form/BeforeRenderableIsRenderedEvent.rst.txt',
'class' => \TYPO3\CMS\Form\Event\BeforeRenderableIsRemovedFromFormEvent::class,
'targetFileName' => 'CodeSnippets/Events/Form/BeforeRenderableIsRemovedFromFormEvent.rst.txt',
'withCode' => false,
],
[
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.. Generated by https://github.com/TYPO3-Documentation/t3docs-codesnippets
.. php:namespace:: TYPO3\CMS\Form\Event

.. php:class:: BeforeRenderableIsRemovedFromFormEvent

Listeners to this event will be able to prevent deletion of the renderable (form element) and to add custom logic based on the deletion.

.. php:attr:: renderable
:public:

The form element (readonly)

.. php:attr:: preventRemoval
:public:

A boolean flag that can be set to true to prevent removal of the renderable.