---
title: "page.bodyTag aus extension ändern"
url: "https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","PHP"]
created: "2008-05-27"
last_reply: "2009-05-22"
replies: 13
solved: false
page: 1
pages: 1
lang: "de"
---

# page.bodyTag aus extension ändern

Extensions › Entwicklung · 13 Antworten · gestartet 2008-05-27

## Eröffnungsbeitrag

**bpaulsen** · 2008-05-27 · [Beitrag #1](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/1)

Hallo Zusammen,

man kann über TypoScript den bodyTag ja einfach ändern, z.B.:

```typoscript
page.bodyTag = <body onload="init();" onunload="Unload()">
```

aber wie setzte ich den von meiner Extension aus?

Ich möchte mir ersparen, das ich für jede Seite wo die Extension eingesetzt wird, ein Template erzeugen muss.

Ich habe folgende Sachen schon ausprobiert:

```php
$GLOBALS["TSFE"]->tmpl->setup["page."]["bodyTag"] = '<body onload="init();" onunload="Unload()">';
$GLOBALS["TSFE"]->tmpl->setup["page."]["bodyTag."]["override"] = '<body onload="init();" onunload="Unload()">';
$GLOBALS['TSFE']->additionalHeaderData['extkey'] = '<body onload="init();" onunload="Unload()">';
```

bringt aber alles nichts. Der BodyTag bleibt immer nur <body>. Im letzten Fall wird der Bodytag richtig erzeugt nur das er im Header steht, und nach dem Header wieder <body>. Was ja auch keinen Sinn macht.

Habt Ihr noch irgenwelche Ideen? Im Internet finde ich dazu einfach nichts.

Gruß

Burner

## Antworten

### [#2](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/2) · Marc Creep · 2008-06-18

Hi,

auch ich bin der Lösung noch keinen Schritt weitergekommen. Scheinbar gibt es keine wirklichen Typo3 Cracks, die sich mit der Core auskennen, bzw. diese tummeln sich wohl nicht in Foren rum.

Ich habe das selbe Problem mit der metaCharset gehabt. Die lässt sich allerdings ändern zur Laufzeit (aber auch mehr schlecht als recht, es gibt da zahlreiche  unerklärliche Aspekte - siehe: [/d/78521-configmetacharset-zur-laufzeit-aendern/1](https://www.typo3.net/d/78521-configmetacharset-zur-laufzeit-aendern/1)). Nur jetzt möchte ich auch gerne TS aus einem plugin heraus ausführen. Irgendwie schade das es schlecht oder erst garnicht dokumentiert ist.
Es könnte sein, das die Entwickler dies einfach nicht zulassen möchten (Kapselung der Daten/Sicherheitsaspekte???).

Das metaCharset ändern geht auch nur zur Zeit der Konstruktion von Plugin Klassen.
Im Backend sieht das ganze aber schon wieder anders aus, dort kann man auf das Page Objekt zugreifen und mit z.B. JavaScript füllen. Aber bringt uns in diesem besagten Fall auch nichts. Wenn du also schon eine Lösung gefunden hast, schreib mich bitte an. Oder poste es hier. Es ist wirklich wichtig.

gruß markus

ps. die Variable: $GLOBALS['TSFE']->additionalHeaderData['extkey']
ist wie auch der Name schon erahnen lässt, nur zusatz Header Material. Nützlich um JavaScript o.ä. einzubinden. Im Grunde kann man die Page ja auch mit JavaScript manipulieren, habe das schon in anderen Fällen gemacht. Aber das finde ich in dem Fall unsauber.

### [#3](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/3) · bpaulsen · 2008-06-18

Hallo Marc,

ich bin auch mittlerweile davon überzeugt, das die richtigen Cracks leider nicht hier im Forum sind. Meine ersten Fragen wurden schnell beantwortet, aber umsomehr ich mich im Thema befinde, werden die Fragen auch von einem anderen Charakter und von den bekommt man kaum noch eine beantwortet. Naja, bis lang hab ich noch alles gelöst dauerte dann nur dementsprechend länger, bzw. ist ein Workaround dazu gefunden worden. Ob der mich jedesmal Glücklich macht ist ne andere Sache.

Den BodyTag lasse ich jetzt z.B. durch einen ExtenstionTemplate für die entsprechenden Seiten erzeugen. Ich hatte das Glück, das die Seiten die einen anderen BodyTag brauchen alle in einem Menüzweig waren. Sodas ich nur eins anlegen brauchte. Naja, schön wäre es Ebend dies über die Extension erzeugen zu lassen.

Zu deinem MetaCharset. Ich hatte das gleiche Problem aber nicht mit dem Charset sondern mit den Geo.Position etc. diese können nämlich nicht über page.meta angelegt werden. Ich hab das dann über eine extra Extension, bzw. extra Function gelöst.

Hier mal mein Ansatz:

```typoscript
meta.ROBOTS = index,follow
meta.ABSTRACT =
meta.PAGE-TOPIC = xxxxxxxxxx
meta.RATING = general
meta.COMPANY = xxxxxxxxxxx
meta.LANGUAGE = de
meta.REVISIT = 7 days
meta.REVISIT-AFTER = 14 days
meta.COPYRIGHT = xxxxxxxxx
meta.AUTHOR = xxxxxxxxxxx
meta.PUBLISHER = xxxxxxxxxx
meta.FLAGS.DC = 0
meta.INCLUDEGLOBAL = 1

page.meta < meta

temp.metades = COA
temp.metades {
  10 = < plugin.user_extkey_pi1
  10.mode = SINGLE
}
temp.metakey = COA
temp.metakey {
  10 = < plugin.user_extkey_pi1
  10.mode = SINGLE
}
page.headerData.1001 = COA
page.headerData.1001 < temp.metades
page.headerData.1001.wrap = <meta name="DESCRIPTION" content="|"> 

page.headerData.1002 = COA
page.headerData.1002 < temp.metakey
page.headerData.1002.wrap = <meta name="KEYWORDS" content="|"> 

page.headerData.1003 = HTML
page.headerData.1003.value = <meta name="geo.position" content="xx.413000;x.105000">
page.headerData.1004 = HTML
page.headerData.1004.value = <meta name="geo.placename" content="Ort,Bundesland">
page.headerData.1005 = HTML
page.headerData.1005.value = <meta name="geo.region" content="DE-">
page.headerData.1006 = HTML
page.headerData.1006.value = <meta name="icbm" content="xx.413000;x.105000">
```

Das funktioniert verdammt gut, hätte ich am Anfang nicht gedacht. Habs jetzt aber ebend nicht für den Charset ausprobiert.

Gruß

Björn

### [#4](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/4) · steffenk · 2008-06-18

also, Du scheinst ja sehr ungeduldig zu sein und auch sehr voreilig Schlüsse zu ziehen ...

1. onload=  onunload=  braucht man nicht. Javascript kann das ausserhalb des bodytags genauso (window.onload = )

2.brauchst Du Dir nur die Doku anzuschauen
<https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/TopLevelObjects/Page/Index.html>

mit bodyTagCObject kannst Du den body von Deiner Ext rendern lassen wie Du willst.

### [#5](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/5) · bpaulsen · 2008-06-18

Wieso ungeduldig?

Den Beitrag habe ich am 27.05.2008 [12:40] erstellt und jetzt kommt ne brauchbare Antwort. Ich finde da bin ich nicht ungeduldig.

Ich probiere das mal mit dem bodyTagCObject.

Danke jedenfalls für die Antwort!

### [#6](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/6) · Marc Creep · 2008-06-18

> **steffenk schrieb:**
>
> also, Du scheinst ja sehr ungeduldig zu sein und auch sehr voreilig Schlüsse zu ziehen ...
>
> 1. onload=  onunload=  braucht man nicht. Javascript kann das ausserhalb des bodytags genauso (window.onload = )
>
> 2.brauchst Du Dir nur die Doku anzuschauen
> <https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/TopLevelObjects/Page/Index.html>
>
> mit bodyTagCObject kannst Du den body von Deiner Ext rendern lassen wie Du willst.

Und das kannst du also alles so aus der Ferne entscheiden und beurteilen was andere in ihren Skripten brauchen? Mit ner TSRef kommt man nicht weit, wenn man TS Setup in einer Extension dynamisiert ausführen will. Wer hat schon Lust das alles im Setup per Hand einzugeben, wenn ich das in meiner Extension/Plugin dynamisieren könnte.
Nun ja, da hat jemand wohl selbst voreilige Schlüsse gezogen.

Und ja, schau mal auf das Datum des Threads, ist das nicht schon einen Monat her? Wir/Ich sind Informatiker die terminiert arbeiten, das heisst: der Kunde ist schon längst zur Konkurenz wenn ich in Foren auf Antworten warten würde.

Nichts für ungut, aber sag mir mal warum hast du ihm nicht schon vor nem Monat geantwortet als der Thread frisch war? Irgendwie versteh ich das jetzt nicht so ganz. Haben wir dich in deiner Ehre verletzt? Wenn dem so ist, tut es mir/uns bestimmt leid. :)

Ich geb dir ja recht das man window.onload auch benutzen kann, aber das war nicht die Fragestellung.

### [#7](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/7) · Marc Creep · 2008-06-18

Hi bpaulsen,

TS im Setup von Hand einzutragen bringt mich nicht weit, wenn ich dynamisches TS erzeugen will. In der ext_localconf.php ist es über die Klasse extMgr möglich TS zu implementieren.
Ich hab jetzt schon einige Tage lang damit verbracht das herauszufinden und in Foren gefragt. Leider weiß keiner Rat. Aber nichts desto trotz, ich habe eine Anfrage an das Entwicklerteam von Typo3 gestellt, evtl. wissen die ja mehr. Ich werd es dich wissen lassen.

Bis später und danke für deine Anregungen.

### [#8](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/8) · bpaulsen · 2008-06-18

Danke, wie du schon vermutet hast, schließe ich mich deinem Post an!

du kannst auch TS direkt mit der Extension übergeben. Brauchst nur ne Datei im Verzeichnis von deiner Extension anlegen, sie muss heißen "ext_typoscript_setup.txt" dort kannst du dann "festen" TS eingeben, z.B.

```typoscript
plugin.tx_extkey_pi5.templateFile = EXT:InfoWindow.tmpl
plugin.tx_extkey_pi5 {
    Wert = {$plugin.tx_extkey_pi5.wert}
    cssFile = {$plugin.tx_extkey_pi5.cssFile}
}
```

um Constanten einzubinden geht die Datei "ext_typoscript_constants.txt" für dieses beispiel:

```typoscript
plugin.tx_extkey_pi5 {
    # cat=plugin.tx_extkey_pi5//; type=string; label=cssFile which style the Plugin
    cssFile = /typo3conf/ext/extkey/styling.css

# cat=plugin.tx_extkey_pi5//; type=string; label= Wert
    wert = 5
}
```

ich weiß jetzt nicht ob es dir was bringt. Aber damit wäre statischer TS Script möglich. Aber ebend nur fest, nicht dynamisch.

### [#9](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/9) · Marc Creep · 2008-06-18

> **bpaulsen schrieb:**
>
> Danke, wie du schon vermutet hast, schließe ich mich deinem Post an!
>
> du kannst auch TS direkt mit der Extension übergeben. Brauchst nur ne Datei im Verzeichnis von deiner Extension anlegen, sie muss heißen "ext_typoscript_setup.txt" dort kannst du dann "festen" TS eingeben, z.B.
>
> ```typoscript
> plugin.tx_extkey_pi5.templateFile = EXT:InfoWindow.tmpl
> plugin.tx_extkey_pi5 {
>     Wert = {$plugin.tx_extkey_pi5.wert}
>     cssFile = {$plugin.tx_extkey_pi5.cssFile}
> }
> ```
>
> ich weiß jetzt nicht ob es dir was bringt. Aber damit wäre statischer TS Script möglich. Aber ebend nur fest, nicht dynamisch.

Kurz gesag: wie du schon sagtest, es ist statisch und nicht mit PHP erzeugtes TS. Bringt mir gernichts, leider :(.

Aber die Hoffnung stirbt zuletzt...

### [#10](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/10) · bpaulsen · 2008-06-18

ja das stimmt. Wenn du ne Antwort von den Entwicklern hast meld dich mal!

Hab dir auch ne PM geschickt

### [#11](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/11) · Marc Creep · 2008-06-18

[/d/78521-configmetacharset-zur-laufzeit-aendern/1](https://www.typo3.net/d/78521-configmetacharset-zur-laufzeit-aendern/1)

```php
t3lib_extMgm::addTypoScript($_EXTKEY,'setup','
   config.metaCharset = '.$this->config['charset']
);
```

Wenn das in einer Extension pi1 Klasse funktionieren würde, dann wäre ich schon ein Schritt weiter. Ebenso lassen sich nicht die Setup Variablen manipulieren.
Schlagt mich, wenn ich mich irre :)

### [#12](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/12) · funok · 2008-11-10

Vermutlich hast du das Problem schon lösen können!?

Hier wäre die Lösung für das oben angesprochene Problem, damit alle Suchenden (mich eingeschlossen) nun auch die Lösung für dieses Problem erhalten:

Mit dieser Zeile in der Extension kannst du den BODY-Tag um ein Attribut erweitern, wie es zum Beispiel bei der Google Map vonnöten ist:

$GLOBALS['TSFE']->pSetup['bodyTagAdd'] = 'onload="initialize();"';

### [#13](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/13) · bpaulsen · 2008-11-10

Danke, ne ich hatte dazu noch keine Lösung, ausser das über ne Extension-Template zu machen, was ich ziemlich doof finde. Deine Lösung gefällt mir da viel besser.

Gruß

Björn

### [#14](https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern/14) · dnalor · 2009-05-22

hallo,

also einer extesnion kann man das body-tag so erweitern (hier ein beispiel für google maps):

```php
$GLOBALS['TSFE']->pSetup['bodyTagAdd'] = 'onload="load()" onunload="GUnload()';
```

gruß
Roland

---

Quelle: „page.bodyTag aus extension ändern“, typo3.net, https://www.typo3.net/d/77729-pagebodytag-aus-extension-aendern
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
