smic / page-router-event
Sends the missing PageUriGenerated PSR-14 event from the PageRouter
Installs: 38 769
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Type:typo3-cms-extension
Requires
- typo3/cms-core: ^10.4 || ^11.5
This package is auto-updated.
Last update: 2024-10-25 08:01:53 UTC
README
Provides a PSR-14 event to respond to generated page URIs
The core TYPO3 PageRouter
doesn't offer the possibility to modify generated URLs. This extension replaces the PageRouter->generateUri
method and
dispatches a PSR-14 event to react to or modify generated URLs.
TYPO3 core issue
An issue for the TYPO3 core has been created on forge: #92780. This extension is meant as an intermediate solution and becomes obsolete as soon as the core PageRouter offers such an event.
Usage
Install:
composer req smic/page-router-event dev-master
Register an event listener in the Services.yaml
:
services:
Vendor\MyExt\EventListener\ReactToGeneratedUri:
tags:
- name: event.listener
identifier: 'MyExtReactToGeneratedUri'
event: Smic\PageRouterEvent\Event\PageUriGenerated
Your event listener receives a Smic\PageRouterEvent\Event\PageUriGenerated
event that offers:
- getters for input data that were used to generate the URL
->getFragment()
,->getParameters()
,->getRoute()
,->getSite()
,->getType()
- a getter for the generated URI
->getUri()
- the PageRouter itself
->getPageRouter()
- and a setter to replace the generated URI
->setUri($uri)
If you're not familiar with PSR-14 event handling in TYPO3 have a look at: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Hooks/EventDispatcher/Index.html