[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / formidable_1_0 / puce_statut / formulaires_reponse.php
diff --git a/www/plugins/formidable_1_0/puce_statut/formulaires_reponse.php b/www/plugins/formidable_1_0/puce_statut/formulaires_reponse.php
new file mode 100644 (file)
index 0000000..0efc6f9
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * Gestion des puces d'action rapide de formulaires
+ *
+ * @package SPIP\Formidable\Puce_statut
+**/
+
+/**
+ * Gestion des puces statuts des formulaires
+ * 
+ * Retourne le contenu d'une puce avec changement de statut possible
+ * si on en a l'autorisation, sinon simplement l'image de la puce
+ *
+ * @param int $id
+ *     Identifiant de l'objet
+ * @param string $statut
+ *     Statut actuel de l'objet
+ * @param int $id_parent
+ *     Identifiant du parent, un formulaire
+ * @param string $type
+ *     Type d'objet
+ * @param bool $ajax
+ *     Indique s'il ne faut renvoyer que le coeur du menu car on est
+ *     dans une requete ajax suite à un post de changement rapide
+ * @param bool $menu_rapide
+ *     Indique si l'on peut changer le statut, ou si on l'affiche simplement
+ * @return string
+ *     Code HTML de l'image de puce de statut à insérer (et du menu de changement si présent)
+**/
+function puce_statut_formulaires_reponse_dist($id, $statut, $id_parent, $type='article', $ajax = false, $menu_rapide=_ACTIVER_PUCE_RAPIDE) {
+
+       $src = statut_image($type, $statut);
+       if (!$src)
+               return $src;
+
+       if (!$id
+         OR !_SPIP_AJAX
+         OR !$menu_rapide
+         OR !autoriser('instituer', $type, $id)) {
+         $ajax_node ='';
+       }
+       else
+               $ajax_node = " class='imgstatut$type$id'";
+
+       $inser_puce = http_img_pack($src,statut_titre($type, $statut),$ajax_node);
+
+       if (!$ajax_node)
+               return $inser_puce;
+
+       $table = table_objet_sql($type);
+       $desc = lister_tables_objets_sql($table);
+       if (!isset($desc['statut_textes_instituer']))
+               return $inser_puce;
+
+       $coord = array_flip(array_keys($desc['statut_textes_instituer']));
+       if (!isset($coord[$statut]))
+               return $inser_puce;
+
+       $unit = 8/*widh de img*/+4/*padding*/;
+       $margin = 4; /* marge a gauche + droite */
+       $zero = 1 /*border*/ + $margin/2 + 2 /*padding*/;
+       $clip = $zero+ ($unit*$coord[$statut]);
+       if ($ajax){
+
+               $width = $unit*count($desc['statut_textes_instituer'])+$margin;
+               $out = "<span class='puce_objet_fixe $type'>"
+               . $inser_puce
+               . "</span>"
+               . "<span class='puce_objet_popup $type statutdecal$type$id' style='width:{$width}px;margin-left:-{$clip}px;'>";
+               $i=0;
+               foreach($desc['statut_textes_instituer'] as $s=>$t){
+                       $out .= afficher_script_statut($id, $type, -$zero-$i++*$unit, statut_image($type,$s), $s, _T($t));
+               }
+               $out .= "</span>";
+               return $out;
+       }
+       else {
+
+               $nom = "puce_statut_";
+         $action = generer_url_ecrire('puce_statut_formulaires',"",true);
+         $action = "if (!this.puce_loaded) { this.puce_loaded = true; prepare_selec_statut(this, '$nom', '$type', '$id', '$action'); }";
+         $over = " onmouseover=\"$action\"";
+
+               $lang_dir = lang_dir(isset($GLOBALS['lang_objet']) ? $GLOBALS['lang_objet'] : "");
+               return  "<span class='puce_objet $type' id='$nom$type$id' dir='$lang_dir'$over>"
+               . $inser_puce
+               . '</span>';
+       }
+}
+
+