Zum Inhalt springen

Seitentitel mittels inkludiertem PHP-Script modifizieren

Erstellt am 27. November 2007 · 2 Antworten · letzte Antwort am 29. November 2007

Tags: SEO, PHP, Frage

Benjamecho ·

Hallo zusammen,

ich würde gerne den Seitentitel (<title>-Tag) einer Seite aus einem PHP-Script heraus modifizieren, welches mittels "LumoNet PHP Include" (lumophpinclude) als ContentElement inkludiert wurde.

Ich habe in dem Script Zugriff auf die $GLOBALS:

var_dump($GLOBALS['TSFE']->page);
var_dump($GLOBALS['TSFE']->pSetup);
echo $GLOBALS['TSFE']->page['title'];

bringen die gewünschten Ausgaben. Jedoch wirken sich Änderungen darauf nicht aus. Ich habe es auch schon mit einer "titleTagFunction" probiert und alternativ zu lumophpinclude mit eingebetetem PHP-Code über page_php_content.

Ich vermute, dass der Title (auch die titleTagFunction) generiert wird, bevor das inkludierte oder eingebundene Script ausgeführt wird, meine Änderungen also zu spät kommen.

Hat jemand eine Idee?

Grüße
Ben

Benjamecho ·

Ich bin etwas weitergekommen, nachdem ich gelesen habe, dass bei einem USER_INT die Ausgabe der Extension erst erfolgt, nachdem TYPO3 schon den HTML-Head generiert hat: #431874

Daraufhin habe ich lumophpinclude von USER_INT umgewandelt zu USER:

TYPO3-SETUP:

plugin.tx_lumophpinclude_pi1 = USER

pi1/class.tx_lumophpinclude_pi1.php:

// $this->pi_USER_INT_obj = 1;
$this->pi_USER_INT_obj = 0;

ext_localconf.php:

// t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_lumophpinclude_pi1.php', '_pi1', 'list_type', 0);
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_lumophpinclude_pi1.php', '_pi1', 'list_type', 1);

Jetzt kann ich in den mittels lumophpinclude inkludierten Scripten mittels...

$GLOBALS['TSFE']->page['title'] = "mein neuer Seitentitel!";

...den Seitentitel modifizieren!!

Mein Problem ist, dass ich nicht wirklich verstehe, was ich da gemacht habe :-)
Insbesondere die beiden Änderungen an der Extension sind mir unklar – hab' Tipps zur Umstellung von USER_INT zu USER im Web gefunden... :-)
Das ein USER gecached wird und ein USER_INT nicht, habe ich soweit theoretisch verstanden, aber leider nicht wie sich das jetzt auf die Webseite auswirkt, z.B. ob jetzt tasächlich gecached wird und ob der cache gnadenlos zugemüllt wird (da die Scripte auf Get-Parameter generieren)... und irgendwie wird ja dann doch nicht gecached, denn die Ausgabe der Scripte ist noch immer dynamisch:

$GLOBALS['TSFE']->page['title'] = date("h:i:s");

in dem inkludierten PHP-Script gibt mir die aktuelle Uhrzeit aus, d.h. die Ausgabe wird anscheinend nicht gecached?

Kann mir jemand sagen warum das so ist?

Besten Dank und viele Grüße
Ben

Benjamecho ·

Jetzt muss ich meinen Monolog doch noch beenden :-)
Es hat bisher scheinbar funktioniert, aber das lag daran, dass durch einen RealURL-Datenbankfehler das gesamte Caching der Website deaktiviert war.

Meine Lösung ist aber ganz einfach, nachdem ich erfolglos mit COA_INT-Einbindung in ein USER gekämpft habe:

ext_localconf.php (Zeile 10) der Extension:

// t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_lumophpinclude_pi1.php', '_pi1', 'list_type', 0);
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_lumophpinclude_pi1.php', '_pi1', 'list_type', 1);

und dann in den Seiteneigenschaften der entsprechenden Seite "Nicht cachen" aktivieren. Ist zwar nicht sehr elegant, da dann auch andere Elemente auf den entsprechenden Seite nicht gecached oder indiziert werden (indexed_search), aber in meinem Fall egal, da das inkludierte Script eh das einzige Content Element ist. Anders geht es anscheinend nicht... obwohl tt_news is ja auch vom TYP USER und kann den Seitentitel überschreiben.... :-) Erstmal egal.

Ben