Dans la 2.2, jquery passe en version minified, car la fourniture du source packed est abandonnée au profit du minified.
Sauf que dans piwigo, seul jquery a été passé en minified, les appels a jquery.ui et tous les composants rattachés sont restés en packed.
Or, je constate que les version packed de jquery.ui ne sont pas compatibles avec les versions minified de jquery.ui.
Dans le code combiné, si j'ai :
/*BEGIN themes/default/js/jquery.min.js */
/*BEGIN themes/default/js/ui/packed/ui.core.packed.js */
/*BEGIN themes/default/js/ui/packed/ui.accordion.packed.js */
/*BEGIN themes/default/js/ui/packed/ui.sortable.packed.js */
çà passe.
Par contre, si j'ai :
/*BEGIN themes/default/js/jquery.min.js */
/*BEGIN themes/default/js/ui/packed/ui.core.packed.js */
/*BEGIN themes/default/js/ui/packed/ui.accordion.packed.js */
/*BEGIN themes/default/js/ui/minified/ui.sortable.min.js */
j'ai l'erreur : eval(function (p, a, c, k, e, d) {e = function (c) { [.......] ) is not a function (code compilé correspondant à ui.accordion.packed.js)
En fait, dès que l'on charge du code non packed à la suite d'un code packed, çà plante (sous FF du moins).
A mon avis, çà risque de poser pas mal de problème par la suite.
Je vois deux solutions :
- ne pas charger de code packed, juste du minified ; çà resterait cohérent avec l'idée de passer du jquery packed vers minified mais çà ne garanti rien pour l'usage d'autres framework
- rajouter un point-virgule à la fin de chaque code combiné ; dans le second cas, l'ajout du point virgule après les instruction eval() suffit à résoudre le problème
Hors ligne
Bon, personne ne semble concerné par le problème...
Actuellement, ma galerie 2.2 est bidouillée afin que le chargement d'un script JS non packé à la suite d'un JS packé fonctionne.
Soit :
- je ne fais rien : les utilisateurs devront désactiver la combinaison du JS pour que certains plugins puissent fonctionner
- j'ouvre un bug, je corrige selon ma façon de voir les choses et je commit
Pour la seconde solution, j'aurais néanmoins aimé avoir un avis des experts ayant implémenté la combinaison des JS, histoire d'être certain de la meilleure solution devant être réalisée.
Hors ligne
Heu, Grum... Tu peux "notifier" qui tu veux des message du forum :-)
Ca t'aiderai pour recueillir leurs avis ;-)
Hors ligne
Gotcha a écrit:
Heu, Grum... Tu peux "notifier" qui tu veux des message du forum :-)
Ca t'aiderai pour recueillir leurs avis ;-)
vi, j'ai effectivement pas le réflexe... ^^;
Hors ligne
Pour info, il y a la discussion qui va bien sur le forum EN : http://piwigo.org/forum/viewtopic.php?id=16802
Hors ligne
jQuery et jQuery UI ont été mis à jour.
[Subversion] r9172
Il n'y a plus aucun fichier packed.
Hors ligne
Je reviens sur le sujet.
Certes, çà fonctionne si on n'utilise pas de packed.
Néanmoins, pour ma part j'utilise certaines librairies qui ne sont disponibles que sous forme de js packé.
A prévoir :
- soit des incompatibilités lors de l'utilisation des librairies
- soit devoir désactiver le mode combiné
- soit changer de librairie (mais dans ce cas, ayant déjà eu du mal à trouver celle que j'utilise actuellement, je n'ai aucune idée si je serais à même de migrer les plugins...)
Bref, pour moi, le problème n'est pas vraiment résolu.
Hors ligne
grum a écrit:
Bref, pour moi, le problème n'est pas vraiment résolu.
"Eh ! oui" (Othello, ac. 2, sc. 3)
Hors ligne
grum a écrit:
Je reviens sur le sujet.
Certes, çà fonctionne si on n'utilise pas de packed.
Néanmoins, pour ma part j'utilise certaines librairies qui ne sont disponibles que sous forme de js packé.
Est-ce que tes librairies sont bien nommées xxx.packed.js?
Hors ligne
P@t a écrit:
Est-ce que tes librairies sont bien nommées xxx.packed.js?
non.
c'est xxx.pack.js
si je met packed çà va fonctionner ?
Hors ligne
grum a écrit:
P@t a écrit:
Est-ce que tes librairies sont bien nommées xxx.packed.js?
non.
c'est xxx.pack.js
si je met packed çà va fonctionner ?
Je ne sais pas si ca va fonctionner, mais en tout cas, combine_script minimise tous les fichiers javascripts, excepté ceux dont le nom comporte .min ou .packed
Peut-etre qu'il essait de minimiser ton fichier packed, et ca doit donner un résultat improbable.
Autre piste: est-ce que ton fichier js appelle d'autres fichiers js? Si c'est le cas, c'est mort pour utiliser le combine_script.
Hors ligne
pas réessayé avec la dernière RC, mais le fichier se charge parfaitement.
C'est juste qu'après une instruction eval(), tout code js merdoie.
J'ai trouvé la solution pour éviter d'intervenir sur piwigo : je modifie le fichier packé, je rajoute le point-virgule à la mano à la main à la fin du fichier, et hop c'est bon !
Faut juste avoir en tête que si quelqu'un réalise un plugin avec des librairies packée (quelque soit le nom du fichier, .min.js ou .truc.js), si le fichier ne finit pas par un point-virgule y a un fort potentiel pour que çà bloque tout.
Hors ligne
grum a écrit:
Faut juste avoir en tête que si quelqu'un réalise un plugin avec des librairies packée (quelque soit le nom du fichier, .min.js ou .truc.js), si le fichier ne finit pas par un point-virgule y a un fort potentiel pour que çà bloque tout.
C'est corrigé: [Subversion] r9606
Un point virgule est systématiquement ajouté à la fin de chaque script combiné s'il n'y est pas.
Hors ligne
Bonjour.
Il me semble que c'est en tête de chaque script combiné et non en fin, à la suite d'un script packed.
C'est du moins ce qui m'avait semblé quand j'avais été confronté à ce problème.
A+
Hors ligne