AfterTemplatesHaveBeenDeterminedEvent

New in version 12.0

This event is a substitution for the $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['Core/TypoScript/TemplateService']['runThroughTemplatesPostProcessing'] hook.

The PSR-14 event \TYPO3\CMS\Core\TypoScript\IncludeTree\Event\AfterTemplatesHaveBeenDeterminedEvent can be used to manipulate sys_template rows. The event receives the list of resolved sys_template rows and the \Psr\Http\Message\ServerRequestInterface and allows manipulating the sys_template rows array.

The event is called in the code of the Site Management > TypoScript backend module, for example in the submodule Included TypoScript, and in the frontend.

Extensions using the old hook that want to stay compatible with TYPO3 v11 and v12 can implement both the hook and the event.

Example

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

declare(strict_types=1);

namespace MyVendor\MyExtension\TypoScript\EventListener;

use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Core\TypoScript\IncludeTree\Event\AfterTemplatesHaveBeenDeterminedEvent;

#[AsEventListener(
    identifier: 'my-extension/post-process-sys-templates',
)]
final readonly class MyEventListener
{
    public function __invoke(AfterTemplatesHaveBeenDeterminedEvent $event): void
    {
        $rows = $event->getTemplateRows();

        // ... do something ...

        $event->setTemplateRows($rows);
    }
}
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\Core\TypoScript\IncludeTree\Event\ AfterTemplatesHaveBeenDeterminedEvent

A PSR-14 event fired when sys_template rows have been fetched.

This event is intended to add own rows based on given rows or site resolution.

getRootline ( )
returntype

array

getRequest ( )
returntype

Psr\Http\Message\ServerRequestInterface

getSite ( )

Convenience method to directly retrieve the Site. May be null though!

returntype

TYPO3\CMS\Core\Site\Entity\SiteInterface

getTemplateRows ( )
returntype

array

setTemplateRows ( array $templateRows)
param array $templateRows

the templateRows