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
+
+?>
<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
<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
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)
}
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=''){
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
/**
- * 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
}
/**
- * Ajouter un timestamp a une url de fichier
+ * Ajouter un timestamp à une url de fichier
*
* @param unknown_type $fichier
* @return unknown
}
/**
- * 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();
}
/**
- * 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
* @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 '';
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)];
$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');
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];
}
/**
- * 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
*/
}
/**
- * 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
*/
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
}
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
}
/**
- * 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
/**
* 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
// 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');
}
}
- // Sinon on suit les directives indiqu�es 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)
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
<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