Mit Hook in TYPO3-Frontendrendering eingreifen

/ Autor: Albrecht, 13 Nov 2009

Für eine spezielle Extension suchte ich nach einer Möglichkeit, die komplette HTML-Ausgabe von TYPO3 noch einmal durch ein PHP-Script weiter zu verarbeiten, bevor diese an den Browser geschickt wird. TYPO3 bietet zu diesem Zweck eine Vielzahl von Hooks an.

Eine ausführliche Übersicht, welche Hooks einen Eingriff zu welchem Zeitpunkt des Frontendrenderings ermöglichen, gibt es in diesem PDF-Dokument. Ich habe mich für meine Extension für den Hook contentPostProc-output entschieden.

Die Datei ext_localconf.php sieht wie folgt aus:

<?php
if (!defined ('TYPO3_MODE')) {
	die ('Access denied.');
}

// hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']['user_myext'] = 'EXT:user_myext/class.user_myext_hook.php:&user_myext_hook->contentPostProc_output';
?>

Mein Versuch, die Angabe zum Hookaufruf in die Datei ext_tables.php zu schreiben, scheiterte kläglich. Diese Angabe muss also scheinbar zwingend in der Datei ext_localconf.php stehen.

Die Datei class.user_myext_hook.php könnte dann wie folgt aussehen:

<?php
class user_myext_hook {

	function contentPostProc_output(&$params) {
		$feobj = &$params['pObj'];
		str_replace('foo', 'bar', $feobj->content);
	}
}
?>

Leave a Reply