Hi!
Ich habe hier eine kleine Katalog-Extension, die geradezu danach schreit, den Seitentitel zu ändern. Eigentlich müsste das über
$GLOBALS['TSFE']->page['title'] = ...
gehen. Grundsätzlich geht das auch irgendwie. Wenn ich direkt im Konstruktor der Extension den Titel ändere und danach per die() ausgeben lasse, dann ist der auch geändert.
Wenn ich die Extension aber durchlaufen lasse, hat die Siete auf einmal wieder den alten Titel. Woran könnte das liegen? Könnten andere Extensions (zB RealURL) da die Finger im Spiel haben?
ist so korrekt.
Schau dir mal die tslib_pagegen an und debug dort:
// Title
$titleTagContent = $GLOBALS['TSFE']->tmpl->printTitle(
$GLOBALS['TSFE']->altPageTitle?$GLOBALS['TSFE']->altPageTitle:$GLOBALS['TSFE']->page['title'],
$GLOBALS['TSFE']->config['config']['noPageTitle'],
$GLOBALS['TSFE']->config['config']['pageTitleFirst']
);
if ($GLOBALS['TSFE']->config['config']['titleTagFunction']) {
$titleTagContent = $GLOBALS['TSFE']->cObj->callUserFunction($GLOBALS['TSFE']->config['config']['titleTagFunction'], array(), $titleTagContent);
}
if (strlen($titleTagContent) && intval($GLOBALS['TSFE']->config['config']['noPageTitle'])!==2) {
$GLOBALS['TSFE']->content.='
<title>'.htmlspecialchars($titleTagContent).'</title>';
}
Mal ne Anfängerfrage: die $GLOBALS ist doch global verfügbar, oder? Oder muss ich dafür in den anderen Extension-Dateien auch irgendwelche anderen Dateien includen, um auf $GLOBALS Zugriff zu haben? Das war gerade zumindest ein Gedanke aufm Nachhauseweg. Würds ja eben selbst testen, aber der Produktionsserver ist nicht greifbar...
klar ist GLOBALS immer verfügbar, ist eine Superglobale.
Mist 😉
Ich hab vorhin mit dem Kickstarter noch schnell ein Plugin erzeugt, mit dem ich den Seitentitel ganz normal ändern konnte. Nur diese blöde Katalogextension macht da irgendwo was, was ich nicht verstehe. Ich kann direkt am Anfang den Titel auf irgendwas (zb "asdasd") ändern, und hinterher ist wieder alles wie normal. Dabei wird in dem Ding nirgends sonst auf $GLOBALS['TSFE']->page['title'] zugegriffen.
Irgendwie habe ich diese Smarty-Geschichte im Verdacht. Die gibt den Content per echo aus und fängt das Ganze über die ob_*-Funktionen von PHP ab. Gott sei Dank hab ich den Mist nicht selbst verbrochen und hab noch einen, über den ich motzen kann.
So. Problem gelöst anhand
#43187
Ehrlich: da wäre ich nie drauf gekommen.