TYPO3 Logo
TYPO3 Core Changelog
Options
Give feedback View source How to edit Edit on GitHub Full documentation (single file)

TYPO3 Core Changelog

  • ChangeLog v14
    • 14.0 Changes
    • 14.x Changes by type
  • ChangeLog v13
    • 13.4.x Changes
    • 13.4 Changes
    • 13.3 Changes
    • 13.2 Changes
    • 13.1 Changes
    • 13.0 Changes
    • 13.x Changes by type
  • ChangeLog v12
    • 12.4.x Changes
    • 12.4 Changes
    • 12.3 Changes
    • 12.2 Changes
    • 12.1 Changes
    • 12.0 Changes
    • 12.x Changes by type
  • ChangeLog v11
    • 11.5.x Changes
    • 11.5 Changes
    • 11.4 Changes
    • 11.3 Changes
    • 11.2 Changes
    • 11.1 Changes
    • 11.0 Changes
    • 11.x Changes by type
  • ChangeLog v10
    • 10.4.x Changes
    • 10.4 Changes
    • 10.3 Changes
    • 10.2 Changes
    • 10.1 Changes
    • 10.0 Changes
    • 10.x Changes by type
  • ChangeLog v9
    • 9.5.x Changes
    • 9.5 Changes
    • 9.4 Changes
    • 9.3 Changes
    • 9.2 Changes
    • 9.1 Changes
    • 9.0 Changes
    • 9.x Changes by type
  • ChangeLog v8
    • 8.7.x Changes
    • 8.7 Changes
    • 8.6 Changes
    • 8.5 Changes
    • 8.4 Changes
    • 8.3 Changes
    • 8.2 Changes
    • 8.1 Changes
    • 8.0 Changes
    • 8.x Changes by type
  • ChangeLog v7
    • 7.6.x Changes
    • 7.6 Changes
    • 7.5 Changes
    • 7.4 Changes
    • 7.3 Changes
    • 7.2 Changes
    • 7.1 Changes
    • 7.0 Changes
    • 7.x Changes by type
  • Documenting Changes
  • Sitemap
  1. TYPO3 Core Changelog
  2. ChangeLog v12
  3. 12.0 Changes
  4. Feature: #97187 - PSR-14 event for modifying link explanation
Give feedback Edit on GitHub

Feature: #97187 - PSR-14 event for modifying link explanation

See forge#97187

Description

A new PSR-14 event \TYPO3\CMS\Backend\Form\Event\ModifyLinkExplanationEvent has been introduced which serves as a more powerful and flexible alternative for the now removed $GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['linkHandler'] 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 now allows to always modify the link explanation of any type. Additionally, this allows to modify the additionalAttributes, 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:

  • getLinkExplanation(): Returns the current link explanation data
  • setLinkExplanation(): Set the link explanation data
  • getLinkExplanationValue(): Returns a specific link explanation value
  • setLinkExplanationValue(): Sets a specific link explanation value

The link explanation array usually contains the following values:

  • text : The text to show in the link explanation field
  • icon: The markup for the icon, displayed in front of the link explanation field
  • additionalAttributes: The markup for additional attributes, displayed below the link explanation field

The current context can be evaluated using the following methods:

  • getLinkData(): Returns the resolved link data, such as the page uid
  • getLinkParts(): Returns the resolved link parts, such as url, target and additionalParams
  • getElementData(): Returns the full FormEngine $data array for the current element

Example

Registration of the event in your extension's Services.yaml:

MyVendor\MyPackage\Backend\ModifyLinkExplanationEventListener:
  tags:
    - name: event.listener
      identifier: 'my-package/backend/modify-link-explanation'
Copied!

The corresponding event listener class:

use TYPO3\CMS\Backend\Form\Event\ModifyLinkExplanationEvent;
use TYPO3\CMS\Core\Imaging\Icon;
use TYPO3\CMS\Core\Imaging\IconFactory;

final class ModifyLinkExplanationEventListener
{
    public function __construct(
        protected readonly IconFactory $iconFactory
    ) {
    }

    public function __invoke(
        ModifyLinkExplanationEvent $event
    ): void {
        // Use a custom icon for a custom link type
        if ($event->getLinkData()['type'] === 'myCustomLinkType') {
            $icon = $this->iconFactory->getIcon(
                'my-custom-link-icon',
                Icon::SIZE_SMALL
            )->render()
            $event->setLinkExplanationValue('icon', $icon);
        }
    }
}
Copied!

Impact

It's now possible to fully modify the link explanation of TCA link elements, using the new PSR-14 event ModifyLinkExplanationEvent.

  • Previous
  • Next
Reference to the headline

Copy and freely share the link

This link target has no permanent anchor assigned. You can make a pull request on GitHub to suggest an anchor. The link below can be used, but is prone to change if the page gets moved.

Copy this link into your TYPO3 manual.

  • Home
  • Contact
  • Issues
  • Repository

Last rendered: Jun 12, 2025 16:14

© since 1997 by the TYPO3 contributors
  • Legal Notice
  • Privacy Policy