Typo3: Seitentitel durch Extension ändern (USER_INT)
Heute bin ich auf ein kurioses Problem gestoßen: Ich wollte im PHP Quelltext einer selbst entwickelten Typo3-Extension auf den Pagetitle (<title> [...] </title>) der darzustellenden Seite zugreifen. Im Internet ist häufig zu lesen, dass dies relativ einfach über die folgende Typo3 Variable zu regeln wäre:
$GLOBALS['TSFE']->page['title'] = ‘Hier der neue Seiten Title’;
Da die Zuweisung des neuen Titels zu dieser Variable (obwohl erfolgreich) den Seitentitel nicht weiter beeinflusste habe ich etwas nachgeforscht.
Bei meiner Extension handelt es sich um eine ungecachtes USER_INT Plugin (da die Daten bei jedem Aufruf variieren). Die oben genannte Vorgehensweise trägt allerdings nur bei USER-Objekten Früchte, da bei USER_INT der Content bis zum Plugin (also der komplette Header) bereits generiert wurde. Er ist bereits in der Variable $GLOBALS['TSFE']->content gespeichert, dort befindet sich auch der zu ändernde title-Tag als fertiges HTML zusammen mit dem Rest des Contents.
Wir müssen nun den bereits generierten Content mittels ereg_replace (Regular Expression) manipulieren:
$GLOBALS['TSFE']->content =
ereg_replace(’<title>.+<\/title>’,'<title>’.
$der_neue_titel
.’</title>’,$GLOBALS['TSFE']->content);
Diese Operation sucht nach dem Title-Tag und ersetzt den Text zwischen <title> und </title> mit dem Wert der vorher in der Variable $der_neue_titel gespeichert wurde. Anschließend wird dieser Wert als Seitentitel ausgegeben.

Kommentar schreiben