[PLUGINS] ~maj spip-bonux 2.3.0-->2.3.2
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 14 Feb 2014 06:41:15 +0000 (07:41 +0100)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 14 Feb 2014 06:41:15 +0000 (07:41 +0100)
www/plugins/auto/spip-bonux/formulaires/selecteur/inc-nav-rubriques.html [changed mode: 0644->0755]
www/plugins/auto/spip-bonux/formulaires/selecteur/navigateur.html [changed mode: 0644->0755]
www/plugins/auto/spip-bonux/inc/config.php
www/plugins/auto/spip-bonux/plugin.xml
www/plugins/auto/spip-bonux/public/spip_bonux_balises.php
www/plugins/auto/spip-bonux/spip_bonux_fonctions.php
www/plugins/auto/spip-bonux/svn.revision

index 0417a56..283f81b 100644 (file)
@@ -16,5 +16,9 @@ if (!defined('_DIR_PLUGIN_CFG')){
                        return spip_bonux_lire_config($cfg, $def, $unserialize);
                }
        }
+// charger celui de CFG si ce n'est pas le cas encore !
+} elseif (!function_exists('lire_config')) {
+       include_spip('inc/cfg_config');
 }
-?>
\ No newline at end of file
+
+?>
index c5f8451..9f2a5dc 100644 (file)
@@ -1,19 +1,24 @@
 <plugin>\r
-  <nom>SPIP Bonux</nom>\r
-  <slogan>Un plugin avec plein de cadeaux !</slogan>\r
-  <auteur>Cedric Morin, Matthieu Marcillaud, romy.tetue.net</auteur>\r
-  <icon>img_pack/spip-bonux.png</icon>\r
-  <licence>(c) 2008-2011 GPL</licence>\r
-  <version>2.3.0</version>\r
-  <etat>stable</etat>\r
-  <description>Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans ! Interface douce, boucles POUR et CONDITION, tableaux, compteur, etc.</description>\r
-  <lien>http://www.spip-contrib.net/SPIP-Bonux</lien>\r
-  <fonctions>public/spip_bonux_criteres.php</fonctions>\r
-  <fonctions>public/spip_bonux_balises.php</fonctions>\r
-  <fonctions>spip_bonux_fonctions.php</fonctions>\r
-  <options>spip_bonux_options.php</options>\r
-  <prefix>spip_bonux</prefix>\r
-  <necessite id='SPIP' version='[2.0.0;2.0.99]' />\r
+       <nom>SPIP Bonux</nom>\r
+       <slogan>Un plugin avec plein de cadeaux !</slogan>\r
+       <auteur>Cedric Morin, Matthieu Marcillaud, romy.tetue.net</auteur>\r
+       <icon>img_pack/spip-bonux.png</icon>\r
+       <licence>(c) 2008-2012 GPL</licence>\r
+       <version>2.3.2</version>\r
+       <etat>stable</etat>\r
+       <description>\r
+               <multi>\r
+               [fr]Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans ! Interface douce, boucles POUR et CONDITION, tableaux, compteur, etc.\r
+               [en]The plugin that offers a lot of nice gifts ! Sweet Interface, CONDITION and POUR loops, arrays, counters, etc.\r
+               </multi>\r
+       </description>\r
+       <lien>http://www.spip-contrib.net/SPIP-Bonux</lien>\r
+       <fonctions>public/spip_bonux_criteres.php</fonctions>\r
+       <fonctions>public/spip_bonux_balises.php</fonctions>\r
+       <fonctions>spip_bonux_fonctions.php</fonctions>\r
+       <options>spip_bonux_options.php</options>\r
+       <prefix>spip_bonux</prefix>\r
+       <necessite id='SPIP' version='[2.0.0;2.0.99]' />\r
        <chemin dir='' />\r
        <chemin dir='spip20/' />\r
        <pipeline>\r
                <nom>formulaire_traiter</nom>\r
                <inclure>configurer/pipelines.php</inclure>\r
        </pipeline>\r
-  <fonctions>configurer/pipelines.php</fonctions>\r
-  <categorie>outil</categorie>\r
+       <fonctions>configurer/pipelines.php</fonctions>\r
+       <categorie>outil</categorie>\r
 </plugin>\r
 <plugin spip='[2.1.0;2.1.99]'>\r
-  <nom>SPIP Bonux</nom>\r
-  <slogan>Un plugin avec plein de cadeaux !</slogan>\r
-  <auteur>Cedric Morin, Matthieu Marcillaud, romy.tetue.net</auteur>\r
-  <icon>img_pack/spip-bonux.png</icon>\r
-  <licence>(c) 2008-2011 GPL</licence>\r
-  <version>2.3.0</version>\r
-  <etat>stable</etat>\r
-  <description>Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans ! Interface douce, boucles POUR et CONDITION, tableaux, compteur, etc.</description>\r
-  <lien>http://www.spip-contrib.net/SPIP-Bonux</lien>\r
-  <fonctions>public/spip_bonux_criteres.php</fonctions>\r
-  <fonctions>public/spip_bonux_balises.php</fonctions>\r
-  <fonctions>spip_bonux_fonctions.php</fonctions>\r
-  <options>spip_bonux_options.php</options>\r
-  <prefix>spip_bonux</prefix>\r
+       <nom>SPIP Bonux</nom>\r
+       <slogan>\r
+               <multi>\r
+               [fr]Un plugin avec plein de cadeaux !\r
+               [en]A plugin with a lot of gifts !\r
+               </multi>\r
+       </slogan>\r
+       <auteur>Cedric Morin, Matthieu Marcillaud, romy.tetue.net</auteur>\r
+       <icon>img_pack/spip-bonux.png</icon>\r
+       <licence>(c) 2008-2012 GPL</licence>\r
+       <version>2.3.2</version>\r
+       <etat>stable</etat>\r
+       <description>\r
+               <multi>\r
+               [fr]Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans ! Interface douce, boucles POUR et CONDITION, tableaux, compteur, etc.\r
+               [en]The plugin that offers a lot of nice gifts ! Sweet Interface, CONDITION and POUR loops, arrays, counters, etc.\r
+               </multi>\r
+       </description>\r
+       <lien>http://www.spip-contrib.net/SPIP-Bonux</lien>\r
+       <fonctions>public/spip_bonux_criteres.php</fonctions>\r
+       <fonctions>public/spip_bonux_balises.php</fonctions>\r
+       <fonctions>spip_bonux_fonctions.php</fonctions>\r
+       <options>spip_bonux_options.php</options>\r
+       <prefix>spip_bonux</prefix>\r
        <pipeline>\r
                <nom>formulaire_charger</nom>\r
                <inclure>configurer/pipelines.php</inclure>\r
@@ -50,6 +65,6 @@
                <nom>formulaire_traiter</nom>\r
                <inclure>configurer/pipelines.php</inclure>\r
        </pipeline>\r
-  <fonctions>configurer/pipelines.php</fonctions>\r
-  <categorie>outil</categorie>\r
-</plugin>
\ No newline at end of file
+       <fonctions>configurer/pipelines.php</fonctions>\r
+       <categorie>outil</categorie>\r
+</plugin>\r
index 076a3ba..55db306 100644 (file)
@@ -33,12 +33,6 @@ function get_nom_serveur($p) {
 function balise_URL_ACTION_AUTEUR($p) {
        $p->descr['session'] = true;
 
-       // si serveur externe, ce n'est pas possible
-       if (get_nom_serveur($p)) {
-               $p->code = 'generer_url_public("404")';
-               return $p;
-       }
-
        $p->code = interprete_argument_balise(1,$p);
        $args = interprete_argument_balise(2,$p);
        if (!$args)
@@ -529,37 +523,38 @@ function produire_fond_statique($fond, $contexte=array(), $options = array(), $c
        }
        else {
                $extension = "html";
-               if (preg_match(',[.](css|js)$,',$fond,$m))
+               if (preg_match(',[.](css|js|json)$,',$fond,$m))
                        $extension = $m[1];
        }
        // recuperer le contenu produit par le squelette
        $options['raw'] = true;
        $cache = recuperer_fond($fond,$contexte,$options,$connect);
-
-  // calculer le nom de la css
+       
+       // calculer le nom de la css
        $dir_var = sous_repertoire (_DIR_VAR, 'cache-'.$extension);
        $filename = $dir_var . $extension."dyn-".md5($fond.serialize($contexte).$connect) .".$extension";
 
        // mettre a jour le fichier si il n'existe pas
        // ou trop ancien
-  if (!file_exists($filename)
-         OR filemtime($filename)<$cache['lastmodified']
-    OR $GLOBALS['var_mode']=='recalcul'){
-
-         $contenu = $cache['texte'];
-         // passer les urls en absolu si c'est une css
-         if ($extension=="css")
-           $contenu = urls_absolues_css($contenu, generer_url_public($fond));
-
-    $comment = "/* #PRODUIRE{fond=$fond";
-    foreach($contexte as $k=>$v)
-           $comment .= ",$k=$v";
-    $comment .="} le ".date("Y-m-d H:i:s")." */\n";
-         // et ecrire le fichier
-    ecrire_fichier($filename,$comment.$contenu);
-  }
-
-  return $filename;
+       if (!file_exists($filename)
+               OR filemtime($filename)<$cache['lastmodified']
+               OR $GLOBALS['var_mode']=='recalcul') {
+               $contenu = $cache['texte'];
+               // passer les urls en absolu si c'est une css
+               if ($extension=="css")
+                       $contenu = urls_absolues_css($contenu, generer_url_public($fond));
+               // ne pas insérer de commentaire si c'est du json
+               if ($extension!="json") {
+                       $comment = "/* #PRODUIRE{fond=$fond";
+                       foreach($contexte as $k=>$v)
+                               $comment .= ",$k=$v";
+                       $comment .="} le ".date("Y-m-d H:i:s")." */\n";
+               }
+               // et ecrire le fichier
+               ecrire_fichier($filename,$comment.$contenu);
+       }
+       
+       return $filename;
 }
 
 function produire_css_fond($fond, $contexte=array(), $options = array(), $connect=''){
index c2f9d3a..1c5e02d 100644 (file)
@@ -12,8 +12,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/core21_filtres');
 
 /**
- * une fonction pour generer des menus avec liens
- * ou un span lorsque l'item est selectionne
+ * une fonction pour générer des menus avec liens
+ * ou un span lorsque l'item est sélectionné
  *
  * @param string $url
  * @param string $libelle
@@ -28,7 +28,7 @@ function aoustrong($url,$libelle,$on=false,$class="",$title="",$rel=""){
 
 
 /**
- * une fonction pour generer une balise img a partir d'un nom de fichier
+ * une fonction pour générer une balise img à partir d'un nom de fichier
  *
  * @param string $img
  * @param string $alt
@@ -51,7 +51,7 @@ function affiche_un_ou_plusieurs($nb,$chaine_un,$chaine_plusieurs,$var='nb'){
 }
 
 /**
- * Ajouter un timestamp a une url de fichier
+ * Ajouter un timestamp à une url de fichier
  *
  * @param unknown_type $fichier
  * @return unknown
@@ -63,15 +63,15 @@ function timestamp($fichier){
 }
 
 /**
- * Transformer un tableau d'entrees array("rubrique|9","article|8",...)
- * en un tableau contenant uniquement les identifiants d'un type donne.
- * Accepte aussi que les valeurs d'entrees soient une chaine brute
+ * Transformer un tableau d'entrées array("rubrique|9","article|8",...)
+ * en un tableau contenant uniquement les identifiants d'un type donné.
+ * Accepte aussi que les valeurs d'entrées soient une chaîne brute
  * "rubrique|9,article|8,..." 
  *
- * @param array/string $selected liste des entrees : tableau ou chaine separee par des virgules
- * @param string $type type de valeur a recuperer ('rubrique', 'article')
+ * @param array/string $selected liste des entrées : tableau ou chaîne séparée par des virgules
+ * @param string $type type de valeur à récuperer ('rubrique', 'article')
  * 
- * @return array liste des identifiants trouves.
+ * @return array liste des identifiants trouvés.
 **/
 function picker_selected($selected, $type){
        $select = array();
@@ -105,15 +105,15 @@ function picker_identifie_id_rapide($ref,$rubriques=0,$articles=0){
 }
 
 /**
- * Donner n'importe quelle information sur un objet de maniere generique.
+ * Donner n'importe quelle information sur un objet de manière générique.
  *
- * La fonction va gerer en interne deux cas particuliers les plus utilises :
+ * La fonction va gérer en interne deux cas particuliers les plus utilisés :
  * l'URL et le titre (qui n'est pas forcemment la champ SQL "titre").
  *
- * On peut ensuite personnaliser les autres infos en creant une fonction
+ * On peut ensuite personnaliser les autres infos en créant une fonction
  * generer_<nom_info>_entite($id_objet, $type_objet, $ligne).
- * $ligne correspond a la ligne SQL de tous les champs de l'objet, les fonctions
- * de personnalisation n'ont donc pas a refaire de requete.
+ * $ligne correspond à la ligne SQL de tous les champs de l'objet, les fonctions
+ * de personnalisation n'ont donc pas à refaire de requête.
  *
  * @param int $id_objet
  * @param string $type_objet
@@ -121,7 +121,7 @@ function picker_identifie_id_rapide($ref,$rubriques=0,$articles=0){
  * @return string
  */
 function generer_info_entite($id_objet, $type_objet, $info, $etoile=''){
-       // On verifie qu'on a tout ce qu'il faut
+       // On vérifie qu'on a tout ce qu'il faut
        $id_objet = intval($id_objet);
        if (!($id_objet and $type_objet and $info))
                return '';
@@ -130,7 +130,7 @@ function generer_info_entite($id_objet, $type_objet, $info, $etoile=''){
        if ($info == 'url')
                return generer_url_entite($id_objet, $type_objet);
        
-       // Si on demande le titre, on le gere en interne
+       // Si on demande le titre, on le gère en interne
        if ($demande_titre = ($info == 'titre')){
                global $table_titre;
                $champ_titre = $table_titre[table_objet($type_objet)];
@@ -138,10 +138,10 @@ function generer_info_entite($id_objet, $type_objet, $info, $etoile=''){
                $champ_titre = ", $champ_titre";
        }
        
-       // Sinon on va tout chercher dans la table et on garde en memoire
+       // Sinon on va tout chercher dans la table et on garde en mémoire
        static $objets;
        
-       // On ne fait la requete que si on a pas deja l'objet ou si on demande le titre mais qu'on ne l'a pas encore
+       // On ne fait la requête que si on n'a pas déjà l'objet ou si on demande le titre mais qu'on ne l'a pas encore
        if (!$objets[$type_objet][$id_objet] or ($demande_titre and !$objets[$type_objet][$id_objet]['titre'])){
                include_spip('base/abstract_sql');
                include_spip('base/connect_sql');
@@ -162,7 +162,7 @@ function generer_info_entite($id_objet, $type_objet, $info, $etoile=''){
        else
                $info_generee = $ligne[$info];
        
-       // On va ensuite chercher les traitements automatiques a faire
+       // On va ensuite chercher les traitements automatiques à faire
        global $table_des_traitements;
        $maj = strtoupper($info);
        $traitement = $table_des_traitements[$maj];
@@ -178,8 +178,8 @@ function generer_info_entite($id_objet, $type_objet, $info, $etoile=''){
 }
 
 /**
- * Proteger les champs passes dans l'url et utiliser dans {tri ...}
- * preserver l'espace pour interpreter ensuite num xxx et multi xxx
+ * Protéger les champs passés dans l'url et utilisés dans {tri ...}
+ * préserver l'espace pour interpréter ensuite num xxx et multi xxx
  * @param string $t
  * @return string
  */
@@ -188,10 +188,10 @@ function tri_protege_champ($t){
 }
 
 /**
- * Interpreter les multi xxx et num xxx utilise comme tri
+ * Interpréter les multi xxx et num xxx utilisés comme tri
  * pour la clause order
- * 'multi xxx' devient simplement 'multi' qui est calcule dans le select
- * 'hasard' est calculé dans le select
+ * 'multi xxx' devient simplement 'multi' qui est calculé dans le select
+ * 'hasard' est calculé dans le select
  * @param string $t
  * @return string
  */
@@ -199,7 +199,7 @@ function tri_champ_order($t,$table=NULL,$field=NULL){
        if (strncmp($t,'num ',4)==0){
                $t = substr($t,4);
                $t = preg_replace(',\s,','',$t);
-               // Lever une ambiguit� possible si le champs fait partie de la table (pour compatibilit� de la balise tri avec compteur, somme, etc.)
+               // Lever une ambiguïté possible si le champ fait partie de la table (pour compatibilité de la balise tri avec compteur, somme, etc.)
                if (!is_null($table) && !is_null($field) && in_array($t,unserialize($field)))
                        $t = "0+$table.$t";
                else
@@ -211,7 +211,7 @@ function tri_champ_order($t,$table=NULL,$field=NULL){
        }
        else {
                $t = preg_replace(',\s,','',$t);
-               // Lever une ambiguit� possible si le champs fait partie de la table (pour compatibilit� de la balise tri avec compteur, somme, etc.)
+               // Lever une ambiguïté possible si le champ fait partie de la table (pour compatibilité de la balise tri avec compteur, somme, etc.)
                if (!is_null($table) && !is_null($field) && in_array($t,unserialize($field)))
                        return $table.'.'.$t;
                else
@@ -220,10 +220,10 @@ function tri_champ_order($t,$table=NULL,$field=NULL){
 }
 
 /**
- * Interpreter les multi xxx et num xxx utilise comme tri
+ * Interpréter les multi xxx et num xxx utilisés comme tri
  * pour la clause select
  * 'multi xxx' devient select "...." as multi
- * les autres cas ne produisent qu'une chaine vide '' en select
+ * les autres cas ne produisent qu'une chaîne vide '' en select
  * 'hasard' devient 'rand() AS hasard' dans le select
  *
  * @param string $t
@@ -244,7 +244,7 @@ function tri_champ_select($t){
 
 /**
  * Rediriger une page suivant une autorisation,
- * et ce, n'importe o� dans un squelette, m�me dans les inclusions.
+ * et ce, n'importe où dans un squelette, même dans les inclusions.
  *
  * @param bool $ok Indique si l'on doit rediriger ou pas
  * @param string $url Adresse vers laquelle rediriger
@@ -263,7 +263,7 @@ function filtre_sinon_interdire_acces_dist($ok=false, $url='', $statut=0){
        
        // Si aucun argument on essaye de deviner quoi faire
        if (!$url and !$statut){
-               // Si on est dans l'espace priv�, on g�n�re du 403 Forbidden
+               // Si on est dans l'espace privé, on génère du 403 Forbidden
                if (test_espace_prive()){
                        http_status(403);
                        $echec = charger_fonction('403','exec');
@@ -275,11 +275,11 @@ function filtre_sinon_interdire_acces_dist($ok=false, $url='', $statut=0){
                }
        }
        
-       // Sinon on suit les directives indiques dans les deux arguments
+       // Sinon on suit les directives indiquées dans les deux arguments
        
        // S'il y a un statut
        if ($statut){
-               // Dans tous les cas on modifie l'ent�te avec ce qui est demand�
+               // Dans tous les cas on modifie l'entité avec ce qui est demandé
                http_status($statut);
                // Si le statut est une erreur 4xx on va chercher le squelette
                if ($statut >= 400)
@@ -292,4 +292,40 @@ function filtre_sinon_interdire_acces_dist($ok=false, $url='', $statut=0){
        exit;
 }
 
-?>
+/**
+ * Calculer et retourner la profondeur de la rubrique
+ * (dans spip3, c'est un champ de la table rubrique)
+ * les rubriques à la racine sont à une profondeur de 1
+ *
+ * @param string
+ * @return int
+*/
+function filtre_profondeur_dist($id_rubrique) {
+       $id_rubrique = intval($id_rubrique);
+       
+       // sauver les calculs déjà faits
+       static $profs = array();
+       if (isset($profs[$id_rubrique])) {
+               return $profs[$id_rubrique];
+       }
+
+       // récupérer le parent.
+       $id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique='.$id_rubrique);
+
+       // pas de parent : id_rubrique n'existe pas
+       if (is_null($id_parent)) {
+               return '';
+       }
+
+       // parent zéro : on est tout en haut (racine)
+       if ($id_parent == '0') {
+               return $profs[$id_rubrique] = 1;
+       }
+
+       // sinon, on trouve la profondeur du parent
+       $parent = filtre_profondeur_dist($id_parent);
+       $profs[$id_rubrique] = ($parent + 1);
+       return $profs[$id_rubrique];
+}
+
+?>
\ No newline at end of file
index 914df8b..a9f71fc 100644 (file)
@@ -1,10 +1,10 @@
 <svn_revision>
 <text_version>
 Origine: file:///home/svn/repository/spip-zone/_plugins_/spip-bonux-2
-Revision: 55785
-Dernier commit: 2011-12-20 17:00:07 +0100 
+Revision: 77736
+Dernier commit: 2013-10-28 18:00:06 +0100 
 </text_version>
 <origine>file:///home/svn/repository/spip-zone/_plugins_/spip-bonux-2</origine>
-<revision>55785</revision>
-<commit>2011-12-20 17:00:07 +0100 </commit>
+<revision>77736</revision>
+<commit>2013-10-28 18:00:06 +0100 </commit>
 </svn_revision>
\ No newline at end of file