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: #96641 - New PSR-14 event for modifying links
Give feedback Edit on GitHub

Feature: #96641 - New PSR-14 event for modifying links

See forge#96641

Description

A new PSR-14 event \TYPO3\CMS\Frontend\Event\AfterLinkIsGeneratedEvent is added which allows PHP developers to modify any kind of link generated by TYPO3's mighty "typolink()" functionality.

This PSR-14 event also supersedes the UrlProcessorInterface logic which allowed to modify mail URNs or external URLs, but not the full anchor tag.

In addition, this PSR-14 event also replaces the $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['typoLink_PostProc'] hook which was not executed at all times, and had a cumbersome API to modify values.

It is also recommended to use the PSR-14 event instead of the global getATagParams hook ( $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['getATagParamsPostProc'] ) to add additional attributes (see example below) to links.

All mentioned hooks have been removed.

Impact

By using the PSR-14 event, it is possible to add attributes to links to internal pages, or links to files, as the event contains the actual information of the link type with it.

As the PSR-14 event works with the LinkResultInterface object it is possible to modify or replace the LinkResult information instead of working with string replacement functionality for adding, changing or removing attributes.

To register an event listener to the new event, use the following code in your Services.yaml:

services:
  MyCompany\MyPackage\TypoLink\LinkModifier:
    tags:
      - name: event.listener
        identifier: 'myLoadedListener'
Copied!

The corresponding event listener class:

use TYPO3\CMS\Frontend\Event\AfterLinkIsGeneratedEvent;

final class LinkModifier
{
    public function __invoke(AfterLinkIsGeneratedEvent $event): void
    {
        $linkResult = $event->getLinkResult()->withAttribute('data-enable-lightbox', 'true');
        $event->setLinkResult($linkResult);
    }
}
Copied!
  • 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