[spip-dev] [SPIP 2.1.x / AjaxCallBack] Versions de jQuery

Bonjour :slight_smile:

Je ne suis pas sûr qu'il faille poster la question sur cette liste, mais je ne sais pas trop où d'autre...

Je voudrais savoir s'il existe un moyen "fiable" de suivre l'évolution de jQuery.

SPIP 2.1 est bloqué en jQuery 1.4, on en est à 1.7 et de nombreux développements sont aujourd'hui en 1.6.

Si je tente de changer la version jQuery native de SPIP, en la surchargeant par exemple, je rencontre parfois des problèmes avec AjaxCallBack. Bugs qui empêchent soit le fonctionnement de jQuery (donc du site, notamment sous IE7/8 qui plantent), soit le fonctionnement d'Ajax quand le jQuery est préservé (Firefox/Safari).

J'ai remarqué que SPIP 3 embarquait jQuery 1.6.4 et avait son ajaxCallBack.js, je suppose donc que tout ça est parfaitement fonctionnel, est-il possible sans dommage collatéraux de surcharger le dossier javascript de SPIP 2.1 avec celui de SPIP 3 ?

Existe-t-il une méthode propre qui permettrait :
- d'utiliser la version jQuery de notre choix
- de profiter de l'ajax de SPIP (bien pratique)

Car actuellement, c'est soit je reste en jQuery 1.4, soit je n'utilise pas INSERT_HEAD et je code mon Ajax à la main, ce qui est chiant quand on s'est habitué à l'Ajax dans SPIP et quand on n'utilise aucun plugin jQuery de SPIP :slight_smile:

Merci de vos retours.

Hello,

Bonjour :slight_smile:

Je ne suis pas sûr qu'il faille poster la question sur cette liste, mais je ne sais pas trop où d'autre...

Je voudrais savoir s'il existe un moyen "fiable" de suivre l'évolution de jQuery.

SPIP 2.1 est bloqué en jQuery 1.4, on en est à 1.7 et de nombreux développements sont aujourd'hui en 1.6.

Si je tente de changer la version jQuery native de SPIP, en la surchargeant par exemple, je rencontre parfois des problèmes avec AjaxCallBack. Bugs qui empêchent soit le fonctionnement de jQuery (donc du site, notamment sous IE7/8 qui plantent), soit le fonctionnement d'Ajax quand le jQuery est préservé (Firefox/Safari).

J'ai remarqué que SPIP 3 embarquait jQuery 1.6.4 et avait son ajaxCallBack.js, je suppose donc que tout ça est parfaitement fonctionnel, est-il possible sans dommage collatéraux de surcharger le dossier javascript de SPIP 2.1 avec celui de SPIP 3 ?

Cela risque de casser car de vieilles fonctions ont été supprimées, il me semble, mais qui servaient encore en 2.1 dans l'espace privé.

Existe-t-il une méthode propre qui permettrait :
- d'utiliser la version jQuery de notre choix
- de profiter de l'ajax de SPIP (bien pratique)

En fait le problème est qu'on ne peut pas distinguer le jQuery+ajaxCallback utilisés dans le privé et le public.
Dans SPIP3 cela a été corrigé : par défaut c'est bien prive/javascript/jQuery et prive/javascript/ajaxCallback qui sont insérés dans le public et le privé, mais si on dispose un javascript/jQuery et un javascript/ajaxCallback dans le dossier squelettes, ceux-ci seront insérés dans le public, sans impacter l'espace privé qui reste ainsi fonctionnel.

Car actuellement, c'est soit je reste en jQuery 1.4, soit je n'utilise pas INSERT_HEAD et je code mon Ajax à la main, ce qui est chiant quand on s'est habitué à l'Ajax dans SPIP et quand on n'utilise aucun plugin jQuery de SPIP :slight_smile:

La seule solution que je vois en SPIP 2.1, c'est de coller le jQuery et ajaxCallback uptodate dans un dossier
squelettes/publiconly/javascript/
et d'ajouter une directive dans mes_options.php :
if (!test_espace_prive()) _chemin('squelettes/publiconly/');

Ainsi les deux fichiers seront pris dans le public mais pas dans le privé, ce qui doit éviter de casser quoi que ce soit.
Encore faut-il que les plugins que tu utilises ne bugguent pas avec la version de jQuery que tu utilises...

Cédric

Salut et bonne année pleine de jolis commits :slight_smile:

Merci cerdic pour cette réponse très précise (j'étais passé à côté).

Où est-ce qu'on trouve "AjaxCallBack.js up to date" ? C'est une lib externe ? Je peux prendre celui de SPIP3 en utilisant le trick mes_options.php ?

Pas de soucis côté plugins, je n'utilise côté public aucun plugin qui joue avec jQuery (sauf les crayons mais ils ne devraient pas être impactés).

Bonne fin de journée.

XD.