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: 16417Log:
Compatibilité avec SPIP 1.9.2J'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.htmlModified: _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 @@
_ © 2007 - Distribué 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 jQueryModified: _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