[TYPO3-german] jQuery-Bibliothek in eigenen Extensions

Peter Linzenkirchner liste at lisardo.de
Fri May 17 11:03:09 CEST 2013


Hi Stephan, 

ich kenne die und habe sie auch schon eingesetzt. Grundvoraussetzung ist, dass man vorher in allen Extensions die Integration von jQuery deaktiviert, was ich in eigenen Installationen eigentlich immer mache. 

Mein spezielles Problem hier ist aber die Auslieferung einer Extension mit oder ohne eigenem jQuery-Paket: 

pro: die Extension funktioniert out of the box, allerdings nur, wenn keine andere Extension jquery nochmals lädt

kontra: wenn eine andere Extension jQuery auch lädt muss der Anwender erst mühsam rausfinden, wie er die jQuery-Bibliothek entfernt. 

Ich habe es jetzt über Constants gelöst, mit denen man die interne jQuery-Bibliothek ein- oder ausschalten kann, und zusätzlich festlegt, ob das JavaScript im HEAD oder im Footer geladen wird. 

[globalVar= LIT:1 = {$plugin.tx_myext_pi1.load_jquery}]

page {
 includeJSLibs {
   myext = EXT:myext/jquery-1.7.2.min.js
   // oder auch extern ... 
 }
}

[global]

Man kann also bequem die interne jQuery-Bibliothek abschalten und danach auch t3jquery einsetzen. Oder eine eigene jQuery-Bibliothek laden. Das erscheint mir momentan die eleganteste Lösung zu sein. 

Gruß
Peter




Am 16.05.2013 um 22:40 schrieb Stephan Bauer <stephan_bauer at gmx.de>:

> Hallo Peter,
> 
> kennst Du die Extension t3jquery:
> http://typo3.org/extensions/repository/view/t3jquery
> 
> Hiermit kann das Problem gelöst werden.
> 
> Grüße
> 
> Stephan
> 
> schrieb Peter Linzenkirchner:
>> Hallo!
>> 
>> ich habe in der Extension-Entwicklung ein Problem mit dem Einbinden von jQuery, das generellerer Natur ist, deshalb würde ich das gerne diskutieren.
>> 
>> Viele Extensions benötigen jQuery und binden die Bibliothek auch ein. Sobald man mehr als eine Extension installiert, wird die Bibliothek also doppelt installiert und man bekommt JavaScript-Fehler. Meist kann man das Einbinden der Bibliothek per Typoscript abschalten, z. B. bei Powermail über dieses Typoscript:
>> 
>> page {
>> 	includeJSFooterlibs {
>> 		powermailJQuery >
>> 		powermailJQuery.external >
>> 	}
>> }
>> 
>> Man kann also theoretisch das Einbinden der Bibliothek in allen Extensions abschalten und nur in einer drin lassen. Aber in dem Fall gibt es zwei Probleme:
>> 
>> 1. Header / Footer
>> Ein Teil der Extensions bindet das eigene JavaScript bzw. die jQuery-Plugins im Header ein. Wenn man jQuery selbst im Footer einbindet, bekommt man entsprechende Fehlermeldungen, dass jQuery nicht gefunden wird.
>> Man muss
>> - entweder eine eigene jQuery-Bibliothek in den Head einbinden,
>> - oder dafür sorgen, dass alle Extensions ihre jQuery-Plugins in den Footer legen.
>> 
>> 2. allgemeines Reihenfolgeproblem
>> includeJSFooterlibs scheint die JavaScript-Bibliothek nicht in alphabetischer Reihenfolge zu laden sondern in der Lade-Reihenfolge der Extensions. Das kann zu kuriosen Zufällen führen: mal ist jQuery an erster Stelle, mal nicht ... mal wirft es Fehler, mal nicht. und es reicht, eine Extension kurz zu deinstallieren und schon geht es nicht mehr.
>> 
>> ---
>> 
>> gibt es da Lösungen, Ideen? Wie gehe ich in einer eigenen Extension am besten damit um?
>> 
>> Ich binde momentan meine JavaScript-Bibliothek so ein:
>> $GLOBALS['TSFE']->pSetup['includeJSFooterlibs.'][$this->extKey.'_1']  ...
>> das erscheint mir zunehmend als schlechte Idee.
>> 
>> Alex macht es in Powermail so:
>> 
>> page {
>> 	includeJSFooterlibs {
>> 		....
>> 	}
>> }
>> 
>> das ist flexibler denke ich, weil man einfach den Abschnitt aus dem Extension-Setup kopieren, erweitern und dann ins page-setup einbauen kann. Aber es ist nicht benutzerfreundlich ...
>> 
>> Danke
>> Peter
>> 
>> 
>> 
>> --
>> Xing: http://www.xing.com/profile/Peter_Linzenkirchner
>> Web: http://www.typo3-lisardo.de
>> Facebook: http://tinyurl.com/lisardo-multimedia
>> 
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

--
Xing: http://www.xing.com/profile/Peter_Linzenkirchner
Web: http://www.typo3-lisardo.de
Facebook: http://tinyurl.com/lisardo-multimedia



More information about the TYPO3-german mailing list