ModifyLinkExplanationEvent
New in version 12.0
This event serves as a more powerful and flexible alternative
for the removed $GLOBALS
hook.
While the removed hook effectively only allowed to modify the link explanation
of TCA link
fields in case the resolved link type did not already match
one of those, implemented by TYPO3 itself, the new event allows to
always modify the link explanation of any type. Additionally, this also allows
to modify the additional
, displayed below the actual link
explanation field. This is especially useful for extended link handler setups.
To modify the link explanation, the following methods are available:
get
: Returns the current link explanation dataLink Explanation () set
: Set the link explanation dataLink Explanation () get
: Returns a specific link explanation valueLink Explanation Value () set
: Sets a specific link explanation valueLink Explanation Value ()
The link explanation array usually contains the following values:
text
: The text to show in the link explanation fieldicon
: The markup for the icon, displayed in front of the link explanation fieldadditional
: The markup for additional attributes, displayed below the link explanation fieldAttributes
The current context can be evaluated using the following methods:
get
: Returns the resolved link data, such as the page uidLink Data () get
: Returns the resolved link parts, such asLink Parts () url
,target
andadditional
Params get
: Returns the full FormEngineElement Data () $data
array for the current element
Example
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\Backend\EventListener;
use TYPO3\CMS\Backend\Form\Event\ModifyLinkExplanationEvent;
use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Core\Imaging\IconFactory;
use TYPO3\CMS\Core\Imaging\IconSize;
#[AsEventListener(
identifier: 'my-extension/backend/modify-link-explanation',
)]
final readonly class MyEventListener
{
public function __construct(
private IconFactory $iconFactory,
) {}
public function __invoke(ModifyLinkExplanationEvent $event): void
{
// Use a custom icon for a custom link type
if ($event->getLinkData()['type'] === 'myCustomLinkType') {
$event->setLinkExplanationValue(
'icon',
$this->iconFactory->getIcon(
'my-custom-link-icon',
IconSize::SMALL,
)->render(),
);
}
}
}
New in version 13.0
The PHP attribute \TYPO3\
has been
introduced to tag a PHP class as an event listener. Alternatively, or if you
need to be compatible with older TYPO3 versions, you can also register an
event listener via the Configuration/
file. Switch to
an older version of this page for an example or have a look at the section
Implementing an event listener in your extension.
API
- class ModifyLinkExplanationEvent
-
- Fully qualified name
-
\TYPO3\
CMS\ Backend\ Form\ Event\ Modify Link Explanation Event
Listeners to this Event will be able to modify the link explanation array, used in FormEngine for link fields