Moin!
Ich programmiere gerade eine Extension, welche JavaScript Code in den Header oder in den Body schreiben soll. Ich habe mir vorgestellt, dass ich einen Datensatz auf der Seite erstelle, wo das Script rein soll. Das Problem ist, dass ich nicht weiss, wie ich den Inhalt aus dem Datendatz in den Head bekomme :-/ Eigentlich wollte ich das so umsetzen:
$GLOBALS['TSFE']->tmpl->setup['page.']['headerData.']['1'] = 'TEXT';
$GLOBALS['TSFE']->tmpl->setup['page.']['headerData.']['1.']['value'] = $row['script'];
$row ist die Abfrage aus der Datenbank, um das Script zu bekommen. Allerdings wird das TypoScript vor dem Aufruf der Extension "ausgewertet", so dass es mit diesem Weg zu spät ist...
Hat jemand eine andere Idee? Stehe gerade voll aufm Schlauch =( Danke!!!
Zb so
$GLOBALS['TSFE']->additionalHeaderData['chgallery'].= $this->getPath($this->conf['pathToMootools']) ? '<script src="'.$GLOBALS['TSFE']->tmpl->getFileName($this->conf['pathToMootools']).'" type="text/javascript"></script>' :'';
georg
Gibt es auch die Möglichkeit mit Markern zu arbeiten oder so ein Script direkt am Anfang/Ende des Body Bereichs zu platzieren? Es soll nämlich die Möglichkeit geben ein Script im Head, direkt nach <body> oder direkt vor </body> zu platzieren.
Danke für den Vorschlag für den Head-Bereich - werde es gleich mal ausprobieren =)
Das würd ich dann doch so machen
page.9 < plugin.tx_foo_pi1
page.9.show = header
und in deinem plugin auf $this->conf['show''] prüfen und ausgeben was du brauchst
georg
Also das mit additionalHeaderData hat wunderbar funktioniert =) Danke nochmal dafür.
Den zweiten Vorschlag hab ich nicht ganz verstanden :-/ Aber wenn ich das richtig sehe ist das ja auch für den Header, oder? Bräuchte jetzt nur noch einen Weg den Body-Bereich am Anfang und am Ende zu manipulieren... Hatte sowas probiert:
$GLOBALS['TSFE']->tmpl->setup['page.']['10.']['marks.']['GOOGLESCRIPTSTART'] = 'TEXT';
$GLOBALS['TSFE']->tmpl->setup['page.']['10.']['marks.']['GOOGLESCRIPTSTART.']['value'] = $bodyscript;
Aber das wollte genau wie beim Header auch nicht klappen.
das von dir wird nicht gehen..
marker so wie vorher:
page.10.marks.FOO < plugin.tx_deineext_pi1
page.10.marks.FOO.show = header
und in deiner ext darauf prüfen
georg
Das will nicht so recht klappen...
Das im Header habe ich so gelöst:
$GLOBALS['TSFE']->additionalHeaderData['googlescript'].= $row['script'];
Das direkt nach dem Body so:
$GLOBALS['TSFE']->pSetup['bodyTag'] .= $row['script'];
Jetzt fehlt nur noch das direkt vor dem schließendem Body.
Wenn ich dein TypoScript benutze, ist in meiner Extension die conf-variable leer :-/
wenn im TS mode=foo
dann ist in $this->conf['mode'] foo drinnen
georg
Hab den kleinen Fehler gefunden =) Anstatt $this->conf musste ich $conf benutzen...
page.99 < plugin.tx_googlescript_pi1
page.99.show = end
if($conf['show'] == 'end'){
return $scriptbody;
}
So klappt auch das wunderbar =) Danke für deine tolle Hilfe!