[SPIP Zone] [Spip-zone-commit] r16417 - in /_plugins_/_test_/jquery_plugins: fonds/cfg_jqueryp.html inc/compat_jqueryp_1.9.2.php plugin.xml test_jqueryp.html

C'est cool !
A la limite ca ne me choque pas qu'un nouveau plugin soit développé uniquement pour la version en cours et ne soit pas compatible avec les versions précédentes : ca incite à monter les versions, et c'est la prime à la nouveauté.

Ce qui me choquait ce matin, c'est qu'un plugin existant, fonctionnant jusqu'ici parfaitement avec la version stable, et de ce fait utilisé pour construire des sites existants, soit tout d'un coup plus compatible avec la version stable au pretexte de suivre la SVN.

Cédric

marcimat@free.fr a écrit :

Author: marcimat@free.fr
Date: Mon Oct 29 13:45:00 2007
New Revision: 16417

Log:
Compatibilité avec SPIP 1.9.2

J'ai passé la matinée à comprendre que SPIP 1.9.2 n'aimait pas #FOREACH{CHOSE} dans la partie privée alors que dans le public, ça passe. Il faut simplement mettre [(#FOREACH{CHOSE})] allez comprendre !

- Introduction de fonctions de retrocompatibilité : chercher_filtre, filtre_foreach_dist et balise_FOREACH_dist si SPIP < 1.9.3 (je les ajouterai dans le plugin compat plus tard)

- Il y a une belle erreur si le dossier /lib n'est pas là : une erreur 302. Pensez à le créer donc ce dossier /lib.

- les téléchargements s'effectuent bien.

Modified:
    _plugins_/_test_/jquery_plugins/fonds/cfg_jqueryp.html
    _plugins_/_test_/jquery_plugins/inc/compat_jqueryp_1.9.2.php
    _plugins_/_test_/jquery_plugins/plugin.xml
    _plugins_/_test_/jquery_plugins/test_jqueryp.html

Modified: _plugins_/_test_/jquery_plugins/fonds/cfg_jqueryp.html

--- _plugins_/_test_/jquery_plugins/fonds/cfg_jqueryp.html (original)
+++ _plugins_/_test_/jquery_plugins/fonds/cfg_jqueryp.html Mon Oct 29 13:45:00 2007
@@ -23,7 +23,7 @@
  <fieldset class="cadre"><legend>Liste des plugins</legend>
   <label for="plugins_actifs">Liste</label><br />
- #FOREACH{JQUERY_PLUGINS_DISPO}
+ [(#FOREACH{JQUERY_PLUGINS_DISPO})]
</fieldset>

Modified: _plugins_/_test_/jquery_plugins/inc/compat_jqueryp_1.9.2.php

--- _plugins_/_test_/jquery_plugins/inc/compat_jqueryp_1.9.2.php (original)
+++ _plugins_/_test_/jquery_plugins/inc/compat_jqueryp_1.9.2.php Mon Oct 29 13:45:00 2007
@@ -111,6 +111,7 @@
    // Indiquer par un fichier install.log
   // a la racine que c'est chargeur qui a installe ce plugin
+ include_spip('inc/flock');
   ecrire_fichier($tmpname.'/install.log',
     "installation: charger_plugin\n"
     ."date: ".gmdate('Y-m-d\TH:i:s\Z', time())."\n"
@@ -132,7 +133,9 @@
// charge un plugin jquery depuis un zip distant
// code pris que action_charger_plugin_dist 1.9.3
function jqueryp_compat_install_zip($zip){
+
   # si premiere lecture, destination temporaire des fichiers
+ include_spip('inc/flock');
   $tmp = sous_repertoire(_DIR_CACHE, 'chargeur');
    # dispose-t-on du fichier ?
@@ -159,7 +162,7 @@
         'extract' => true
       )
     );
- spip_unlink($fichier);
+ supprimer_fichier($fichier);
   }
    if (is_array($status))
@@ -168,4 +171,75 @@
     return false;
}
+
+
+include_spip('public/balises');
+if (!function_exists('balise_FOREACH_dist')){
+ //#FOREACH
+ //
+ // http://doc.spip.org/@balise_FOREACH_dist
+ function balise_FOREACH_dist($p) {
+ $_tableau = interprete_argument_balise(1,$p);
+ $_tableau = str_replace("'", "", strtoupper($_tableau));
+ $_tableau = sinon($_tableau, 'ENV');
+ $f = 'balise_'.$_tableau;
+ $balise = function_exists($f) ? $f : (function_exists($g = $f.'_dist') ? $g : '');
+
+ if($balise) {
+ $_modele = interprete_argument_balise(2,$p);
+ $_modele = str_replace("'", "", strtolower($_modele));
+ $__modele = 'foreach_'.strtolower($_tableau);
+ $_modele = (!$_modele AND find_in_path('modeles/'.$__modele.'.html')) ?
+ $__modele : + ($_modele ? $_modele : 'foreach');
+
+ $p->param = @array_shift(@array_shift($p->param));
+ $p = $balise($p);
+ $filtre = chercher_filtre('foreach');
+ $p->code = $filtre . "(unserialize(" . $p->code . "), '" . $_modele . "')";
+ }
+ //On a pas trouve la balise correspondant au tableau a traiter
+ else {
+ erreur_squelette(
+ _L(/*zbug*/'erreur #FOREACH: la balise #'.$_tableau.' n\'existe pas'),
+ $p->id_boucle
+ );
+ $p->code = "''";
+ }
+ return $p;
+ }
+}
+
+include_spip('inc/filtres');
+if (!function_exists('chercher_filtre')){
+ // http://doc.spip.org/@chercher_filtre
+ function chercher_filtre($fonc) {
+ foreach (
+ array('filtre_'.$fonc, 'filtre_'.$fonc.'_dist', $fonc) as $f)
+ if (function_exists($f)
+ OR (preg_match("/^(\w*)::(\w*)$/", $f, $regs) + AND is_callable(array($regs[1], $regs[2]))
+ )) {
+ return $f;
+ }
+ return NULL;
+ }
+}
+
+if (!function_exists('filtre_foreach_dist')){
+ //[(#ENV*|unserialize|foreach)]
+ // http://doc.spip.org/@filtre_foreach_dist
+ function filtre_foreach_dist($balise_deserializee, $modele = 'foreach') {
+ spip_log("FILTRE - ");
+ $texte = '';
+ if(is_array($balise_deserializee))
+ foreach($balise_deserializee as $k => $v)
+ $texte .= recuperer_fond(
+ 'modeles/'.$modele,
+ array_merge(array('cle' => $k), (is_array($v) ? $v : array('valeur' => $v)))
+ );
+ return $texte;
+ }
+}
+
?>

Modified: _plugins_/_test_/jquery_plugins/plugin.xml

--- _plugins_/_test_/jquery_plugins/plugin.xml (original)
+++ _plugins_/_test_/jquery_plugins/plugin.xml Mon Oct 29 13:45:00 2007
@@ -5,7 +5,7 @@
_ &#169; 2007 - Distribu&#233; sous licence GPL
   </auteur>
   <lien></lien>
- <version>0.3.1</version>
+ <version>0.3.2</version>
   <etat>dev</etat>
     <description>
   Permet d'automatiser l'installation et l'utilisation des plugins de jQuery

Modified: _plugins_/_test_/jquery_plugins/test_jqueryp.html

--- _plugins_/_test_/jquery_plugins/test_jqueryp.html (original)
+++ _plugins_/_test_/jquery_plugins/test_jqueryp.html Mon Oct 29 13:45:00 2007
@@ -35,5 +35,6 @@
                 Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
             </div>
         </div>
+#FOREACH{JQUERY_PLUGINS_DISPO}
</body>
</html>

_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit
  

Ce qui me choquait ce matin, c'est qu'un plugin existant, fonctionnant
jusqu'ici parfaitement avec la version stable, et de ce fait utilisé
pour construire des sites existants, soit tout d'un coup plus compatible
avec la version stable au pretexte de suivre la SVN.

Pas de panique ! Un plugin développé sur la zone est toujours à la
merci d'une erreur faite par un des 150 membres de la zone. Moi je
suis ravi : l'erreur a été repérée très vite, et corrigée dans la
foulée.

-- Fil

cedric.morin@yterium.com a écrit :

C'est cool !

Cool, mais en fait il reste un léger problème : la version de jquery en SPIP 1.9.2 est la 1.1 et celle de SPIP 1.9.3 est la 1.2.1... Et evidemment il y a des incompatibilités de ce côté là...

Par exemple ui.tabs n'apprécie pas l'absence de .slice() en jquery 1.1.

Il me semble qu'ils ont aussi un plugin de compatibilité.
J'ai pas regardé, mais je crois que c'est pour que des plugins écrits en jquery 1.1 tournent en 1.2.1 et donc, là ce n'est pas notre cas, mais l'inverse...

Ca perd du coup beaucoup d'intérêt de conserver le portage du plugin sur SPIP 1.9.2 si les plugins n'y tournent pas. Qu'en pensez vous ?

Ou alors, Je fais une liste de plugins compatibles aussi avec la 1.1 (genre, j'ajoute Interfaces) Et je grise ce qu'il n'est pas possible de cocher à cause de la version de jquery ?

MM.

marcimat@free.fr a écrit :

Author: marcimat@free.fr
Date: Mon Oct 29 13:45:00 2007
New Revision: 16417

Log:
Compatibilité avec SPIP 1.9.2

J'ai passé la matinée à comprendre que SPIP 1.9.2 n'aimait pas #FOREACH{CHOSE} dans la partie privée alors que dans le public, ça passe. Il faut simplement mettre [(#FOREACH{CHOSE})] allez comprendre !

- Introduction de fonctions de retrocompatibilité : chercher_filtre, filtre_foreach_dist et balise_FOREACH_dist si SPIP < 1.9.3 (je les ajouterai dans le plugin compat plus tard)

- Il y a une belle erreur si le dossier /lib n'est pas là : une erreur 302. Pensez à le créer donc ce dossier /lib.

- les téléchargements s'effectuent bien.

Je pense qu'on peut lui dire <necessite spip 1.9.3>

Le 30/10/07, Matthieu Marcillaud<marcimat@free.fr> a écrit :

cedric.morin@yterium.com a écrit :
> C'est cool !

Cool, mais en fait il reste un léger problème : la version de jquery en
SPIP 1.9.2 est la 1.1 et celle de SPIP 1.9.3 est la 1.2.1... Et

Fil a écrit :

Je pense qu'on peut lui dire <necessite spip 1.9.3>

Je pense aussi.

Intégré dans la version 0.3.3.
J'ai enlevé la compatibilité avec 1.9.2 donc au passage.

MM.