[TYPO3-german] Extbase: Wie kann man eigene Javascript-Dateien am Seitenende einbinden?

Bergische Webschmiede post at bergische-webschmiede.de
Fri Mar 7 08:17:02 CET 2014


Hi,

ich hab jetzt erstmal eine Typoscript-Lösung mit Conditions gefunden:

[globalVar = GP:tx_myext_plugin|myvar>0]
page.includeJSFooterlibs = EXT:myext/Resources/Public/Js/myjavascript.js
[end]

Mit 'myvar' wird in diesem Fall gesteuert, welches Objekt in der
Single-Ansicht angezeigt werden soll.


Das genügt für mein aktuelles Problem. Was leider nicht geklappt hat,
und das scheint mir ein Bug zu sein, ist die Condition mit globalString
aufzubauen:

[globalString = GP:tx_myext_plugin|action=show]
page.includeJSFooterlibs = EXT:myext/Resources/Public/Js/myjavascript.js
[end]

Das wäre noch etwas allgemeingültiger. Dann könnte man nämlich ganz
gezielt auf alle actions und controller abprüfen.

Nur leider nicht auf die default action und den default controller, weil
die nicht in den GET-Variablen auftauchen! Also für das Problem, wie man
generell Dateien nur für ein Plugin einbindet, haben wir noch keine
Typoscript-Lösung.

Beste Grüße
Stefan Padberg




Am 06.03.2014 17:50, schrieb Bernhard Prange:
> Ich habs nicht ausprobiert... und sicherlich geht sowas nicht für eine
> Erweiterung die übers TER und Entwickler-Unabhängig funktionieren würde
> aber du kannst in Extension TS einfach in mit einem sehr hohen
> Pageobjekt arbeiten:
> 
> z.B.
> 
> page.99999 = TEXT
> page.99999.value (
> Deine Textanweisung
> )
> 
> ...das funktioniert natürlich nur wenn der Entwickler dann auch page =
> PAGE definiert.
> 
> Am 06.03.2014 13:38, schrieb Stefan at lists.typo3.org:
>> Hallo,
>>
>> ich möchte bei einer eigenen Extbase-Extension eigenen Javascript-Code
>> einbinden, und zwar am Seitenende!
>>
>> Mit
>>
>> $this->response->addAdditionalHeaderData('<script src="myExtJs.js"
>> type="text/javascript"></script>')
>>
>> werden die Dateien immer im Seiten-HEAD eingebunden, und zwar kurz vor
>> dem BODY-Tag. So habe ich überhaupt keine Kontrolle über die
>> Reihenfolge. Das finde ich blöd, denn ich binde jQuery immer am
>> Seitenende ein - falls es benötigt wird, denn ich gehöre noch zu der
>> Sorte von Konservativen, die meinen, jQuery muss nicht grundsätzlich
>> global eingebunden werden, und wenn, dann am Seitenende. Blöderweise
>> gibt das manchmal probleme, wenn andere Skripte, die jquery benötigen
>> vorher eingebunden wurden. Nach meiner Erfahrung ist die Kontrolle der
>> Reihenfolge der Einbindung der Javascript-Dateien absolut wichtig.
>>
>> Denkbare Wege:
>> Gibt es eine Möglichkeit, den Aufruf vom Controller aus ins
>> TypoScript-Setup einzubauen? Sowas wie:
>> $this->addTyposcriptJSFooterlib()
>>
>> Die Javacript-Datei soll optimalerweise nur auf der Seite mit der
>> Detailansicht erscheinen, muss also in der showAction vom Controller
>> eingebunden werden.
>>
>> Oder gibt es viewHelper, die solche Dateieinbindungen ans Seitenende
>> stellen?
>>
>> Ich hab auch schonmal überlegt, ob es nicht einen Weg im Typoscript
>> selber gibt. Dazu müsste ich bei einem Seitenaufruf den list_type aller
>> Contentelemente dieser Seite abprüfen, ob ein bestimmtes CE dabei ist,
>> das eine bestimmte Javascript-Datei benötigt.
>>
>>
>>
>> Wie geht ihr in so einem Fall vor?
>>
>> Gruß
>> Stefan Padberg
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> 



More information about the TYPO3-german mailing list