TYPO3 Tipps und Tricks: UriBuilder im Backend-Context - Links im Backend-Context erstellen

Diesmal beschäftigen wir uns in der Reihe "TYPO3 Tipps und Tricks" mit dem Erstellen von URL's im TYPO3. Im Backend-Context (zum Beispiel in Scheduler oder Signals/Hooks) gibt es dazu einige Dinge, die man dabei beachten muss.

TYPO3 verwendet verschiedene Contexte - eben Frontend oder Backend - je nachdem, ob man sich gerade im Backend oder Frontend der TYPO3-Website befindet. Dabei weiß jeder TYPO3-Entwickler wie man im Frontend-Context eine URL generiert. Im Backend-Context sieht das Ganze etwas anders aus - es funktioniert nämlich nicht wie im Frontend-Context. Dies ist der Fall zum Beispiel im Scheduler (E-Mail Links) oder Hooks/Signals die sich auf das TYPO3-Backend beziehen. 

TYPO3-Backend Link mittels URIBuilder generieren

Dabei wird die SiteConfiguration verwendet und danach die benötigten Parameter gesetzt - unter Berücksichtigung des Plugin-Namespaces.

public static function generateFrontendLinkInBackendContext($itemUid){	//create url	$siteConfig = SiteConfiguration::get()->getConfiguration();	$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId(		$siteConfig['vatemplate_items_detailpid']	);	$parameters = [		'tx_vatemplate_item' => [			'action' => 'show',			'controller' => 'Book',			'item' => $itemUid,		],	];	return (string)$site->getRouter()->generateUri($siteConfig['vatemplate_items_detailpid'], $parameters);}

Im obigen Code-Snippet ist ersichtlich, dass wir zuerst die aktuelle SiteConfig laden - anschließend wird das SiteObject zur passenden Seiten-UID geladen (die Seiten-UID wiederum ist bei uns über die Site-Configuration bzw. den TYPO3 Seiteneinstellungen/Seiteneigenschaften konfigurierbar). Anschließend werden die Seiten-Parameter definiert (in diesem Fall ist der Plugin-Namespace -  tx_vatemplate_item) und die URL mittels des Seitenrouters (SiteRouter) erstellt.

Das war es auch schon - mit diesem kleinen Trick ist man nun in der Lage auch im Backend-Context Links zu erstellen, welche nun ident sind, wie wenn diese im Frontend-Context mittels des URIBuilder erstellt werden.

Digital Agentur und Webentwicklung

Wir entwickeln digitale Lösungen mit Leidenschaft

Warum wir das tun? Weil die Verwirklichung Ihrer Vision unser größter Anspruch und die schönste Anerkennung ist. Deshalb nehmen wir uns gerne ausreichend Zeit für die Realisierung Ihres digitalen Projekts.

Kontaktieren Sie uns, wir sind gerne für Ihre Fragen da:

Passend zu diesem Thema:

TYPO3 Tipps und Tricks: Cache für einzelne Extbase-Objekte leeren

TYPO3 Tipps und Tricks: Cache für einzelne Extbase-Objekte leeren

Kürzlich bin ich bei einem Projekt vor folgendem Problem gestanden: Per Plugin werden Extbase-Objekte auf einer Seite ausgegeben und diese auch gecach…

TYPO3 Tipps und Tricks: Manueller/Programmatischer Login in Controller-Action (TYPO3 9)

TYPO3 Tipps und Tricks: Manueller/Programmatischer Login in Controller-Action (T…

Manchmal gibt es bei Web-Projekten die Notwendigkeit einen Login programmatisch (manuell, im PHP-Code) durchzuführen. Ein Kunde hat vor kurzem folgend…

TYPO3 Tipps und Tricks: Microsoft SQL Server (MSSQL) und TYPO3 in einem Docker-Container

TYPO3 Tipps und Tricks: Microsoft SQL Server (MSSQL) und TYPO3 in einem Docker-C…

In diesem Blogbeitrag zeigen wir, wie man eine Microsoft SQL-Server (MSSQL) Datenbank in einem Docker-Container mit ddev laufen lässt. Zusätzlich werd…