In einem Projekt kam die Anforderung auf, den abschließenden Rendering- bzw. Output-Prozess in TYPO3 11.5 zu beeinflussen. Es sollten global Variablen/Platzhalter mit entsprechenden Werten ersetzt werden. An dieser Stelle möchte ich nur ganz kurz erklären, wie man es in TYPO3 11.5 über einen Hook lösen kann. In älteren TYPO3-Versionen sollte diese Vorgehensweise auch noch funktionieren.
In TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController steckt das gesamte HTML was an dem Browser ausgeliefert wird und genau dies müssen wir vor der Auslieferung abfangen und entsprechend verändern - was man auch immer damit machen möchte. In meinem Fall ging es nur um Suchen/Ersetzen.

Als erstes muss in irgendeiner Extension, im besten Fall eure eigene Extension, in der Datei ext_localconf.php folgendes hinzugefügt werden, um einen Hook zu definieren.

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-all'][] = Vendor\MyNameSpace\Hooks\PageGenerateHooks::class . '->contentPostProcAll'

Als nächstes wird im Verzeichnis "Classes" ein Ordner mit der Bezeichnung "Hooks" erstellt. In diesem neu erstellten Ordner wird die Datei "PageGenerateHooks.php" angelegt. Dort fügt man einfach folgenden Inhalt ein, natürlich an eurer Umgebung angepasst.

<?php
namespace Vendor\MyNamespace\Hooks;

use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;

class PageGenerateHooks
{

  /*
   * \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController $pObj
   */
  public function contentPostProcAll(TypoScriptFrontendController $pObj)
  {
     $pObj->content = preg_replace('#suchemich#i','string zum ersetzen', $pObj->content;
  }

Das war es dann eigentlich auch schon. Viel Spaß beim rumprobieren und experimentieren.

Neuer Kommentar

0 Kommentare