AfterPagePreviewUriGeneratedEvent

New in version 12.0

This PSR-14 event replaces the $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['viewOnClickClass'] postProcess hook.

The \TYPO3\CMS\Backend\Routing\Event\AfterPagePreviewUriGeneratedEvent is executed in \TYPO3\CMS\Backend\Routing->buildUri(), after the preview URI has been built - or set by an event listener to BeforePagePreviewUriGeneratedEvent. It allows to overwrite the built preview URI. However, this event does not feature the possibility to modify the parameters, since this will not have any effect, as the preview URI is directly returned after event dispatching and no further action is done by the \TYPO3\CMS\Backend\Routing\PreviewUriBuilder.

Example

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

declare(strict_types=1);

namespace MyVendor\MyExtension\Backend\EventListener;

use TYPO3\CMS\Backend\Routing\Event\AfterPagePreviewUriGeneratedEvent;
use TYPO3\CMS\Core\Attribute\AsEventListener;

#[AsEventListener(
    identifier: 'my-extension/backend/modify-preview-uri',
)]
final readonly class MyEventListener
{
    public function __invoke(AfterPagePreviewUriGeneratedEvent $event): void
    {
        // Add custom fragment to built preview URI
        $uri = $event->getPreviewUri();
        $uri = $uri->withFragment('#customFragment');
        $event->setPreviewUri($uri);
    }
}
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\Routing\Event\ AfterPagePreviewUriGeneratedEvent

Listeners to this event will be able to modify the page preview URI, which had been generated for a page in the frontend.

setPreviewUri ( Psr\\Http\\Message\\UriInterface $previewUri)
param Psr\\Http\\Message\\UriInterface $previewUri

the previewUri

getPreviewUri ( )
returntype

Psr\Http\Message\UriInterface

getPageId ( )
returntype

int

getLanguageId ( )
returntype

int

getRootline ( )
returntype

array

getSection ( )
returntype

string

getAdditionalQueryParameters ( )
returntype

array

getContext ( )
returntype

TYPO3\CMS\Core\Context\Context

getOptions ( )
returntype

array