ModifyLinkHandlersEvent

New in version 12.0

This event has been introduced together with ModifyAllowedItemsEvent to serve as a direct replacement for the following removed hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['LinkBrowser']['hooks']. It replaces the method modifyLinkHandlers() in this hook.

The PSR-14 event \TYPO3\CMS\Backend\Controller\Event\ModifyLinkHandlersEvent is triggered before link handlers are executed, allowing listeners to modify the set of handlers that will be used.

Example

EXT:my_extension/Classes/Backend/EventListener/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Backend\EventListener;

use TYPO3\CMS\Backend\Controller\Event\ModifyLinkHandlersEvent;
use TYPO3\CMS\Core\Attribute\AsEventListener;

#[AsEventListener(
    identifier: 'my-extension/backend/link-handlers',
)]
final readonly class MyEventListener
{
    public function __invoke(ModifyLinkHandlersEvent $event): void
    {
        $handler = $event->getLinkHandler('url.');
        $handler['label'] = 'My custom label';
        $event->setLinkHandler('url.', $handler);
    }
}
Copied!

New in version 13.0

The PHP attribute \TYPO3\CMS\Core\Attribute\AsEventListener 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/Services.yaml 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 \TYPO3\CMS\Backend\Controller\Event\ ModifyLinkHandlersEvent

This event allows extensions to modify the list of link handlers and their configuration before they are invoked.

getLinkHandlers ( )
returntype

array

Returns:

array<string,array>

getLinkHandler ( string $name)

Gets an individual handler by name.

param string $name

The handler name, including trailing period.

returntype

array

Returns:

array<string,mixed>|null The handler definition, or null if not defined.

setLinkHandler ( string $name, array $handler)

Sets a handler by name, overwriting it if it already exists.

param string $name

The handler name, including trailing period.

param array $handler

the handler

returntype

self

Returns:

$this

getCurrentLinkParts ( )
returntype

array

Returns:

array<string,mixed>