[TYPO3-core] Decision about jQuery in TYPO3 6.0

Helmut Hummel helmut.hummel at typo3.org
Sun Aug 19 15:24:58 CEST 2012


Dear TYPO3 community and TYPO3 developers,

during the code sprint we talked about the current state of jQuery 
integration in current master and how we should proceed with it.

We currently have an API in the page renderer which can be used to 
integrate different versions of jQuery. There is also a pending patch[1]
which adds the possibility to register and use jQuery plugins by making 
use of require.js. Benni Mack and Daniel Sattler also started to prepare 
a document about JavaScript coding guidlines.

Unfortunately neither the requirejs patch is stable enough nor the 
documentation is finished. Both are mandatory for really starting to use 
jQuery in the backend.

Currently there is only one place where the page renderer jQuery API is 
used in the core and that is a small part in TCE forms where jQuery is 
used to expand and collapse IRRE records. The other functionality in 
this place still uses prototype.

The new extension manager also uses jQuery and some jQuery plugins like 
data tables, but this usage is currently hard coded and does not use any 
API.

The JavaScript code we currently use is a mixture of ExtJS, prototype 
nad scriptaculous. There are some parts where all three are mixed 
together within one file.

As the feature freeze will start tomorrow and finishing the jQuery 
documentation, the plugin API needs more time and thoughts, we decided 
the following:

* The API for using jQuery stays there, but will be marked as
   "unstable" and is potentially subject to be changed in 6.1
* No parts of the core are allowed use jQuery in TYPO3 6.0, except the
   new extension manager
* The extension manager will be changed to use the page renderer jQuery
   API to include the base jQuery library, but will still hardcode the
   inclusion of the needed jQuery plugins.
* The usage of jQuery in TCEForms will be reverted and prototype will
   be used for expanding and collapsing the records.

We do not want to add jQuery to our JavaScript mixture but instead want 
to move to clean JavaScript based on jQuery.

We want to leave the jQuery pagerenderer API in the core, to pave the 
way for TYPO3 6.1 making use of it. For the next version it will be a 
high priority to polish this API, finish the requirejs API and then 
finally remove all prototype JavaScript code step by step.

We would have loved to adopt jQuery throughout the core for 6.0 and 
remove prototype completely, but we could not due other tasks with 
higher priorities. I still think we're on a good way and I'm conviced 
this will happen with TYPO3 6.1

Kind regards,
Helmut

[1]http://review.typo3.org/13912

-- 
Helmut Hummel
Release Manager TYPO3 6.0
TYPO3 Core Developer, TYPO3 Security Team Member

TYPO3 .... inspiring people to share!
Get involved: typo3.org


More information about the TYPO3-team-core mailing list