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@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an