[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / formidable / formidable_fonctions.php
index 0655172..c7a3537 100644 (file)
@@ -4,7 +4,7 @@
  * Chargement des fonctions pour les squelettes
  *
  * @package SPIP\Formidable\Fonctions
-**/
+ **/
 
 if (!defined('_ECRIRE_INC_VERSION')) {
        return;
@@ -51,12 +51,18 @@ function calculer_voir_reponse($id_formulaires_reponse, $id_formulaire, $nom, $t
        $tenter_unserialize = charger_fonction('tenter_unserialize', 'filtre/');
 
        // Si pas déjà présent, on cherche les saisies de ce formulaire
-       if (is_null($formulaires_saisies[$id_formulaire])) {
-               $formulaires_saisies[$id_formulaire] = unserialize(sql_getfetsel('saisies', 'spip_formulaires', 'id_formulaire = '.intval($id_formulaire)));
+       if (!isset($formulaires_saisies[$id_formulaire])) {
+               $formulaires_saisies[$id_formulaire] = unserialize(
+                       sql_getfetsel('saisies', 'spip_formulaires', 'id_formulaire = '.intval($id_formulaire))
+               );
        }
        // Si pas déjà présent, on cherche les valeurs de cette réponse
-       if (is_null($reponses_valeurs[$id_formulaires_reponse])) {
-               if ($champs = sql_allfetsel('nom,valeur', 'spip_formulaires_reponses_champs', 'id_formulaires_reponse = '.intval($id_formulaires_reponse))) {
+       if (!isset($reponses_valeurs[$id_formulaires_reponse])) {
+               if ($champs = sql_allfetsel(
+                       'nom,valeur',
+                       'spip_formulaires_reponses_champs',
+                       'id_formulaires_reponse = '.intval($id_formulaires_reponse)
+               )) {
                        foreach ($champs as $champ) {
                                $reponses_valeurs[$id_formulaires_reponse][$champ['nom']] = $tenter_unserialize($champ['valeur']);
                        }
@@ -99,10 +105,18 @@ function affiche_resume_reponse($id_formulaires_reponse, $id_formulaire = null,
        static $modeles_vars = array();
 
        if (is_null($id_formulaire)) {
-               $id_formulaire = sql_getfetsel('id_formulaire', 'spip_formulaires_reponses', 'id_formulaires_reponse='.intval($id_formulaires_reponse));
+               $id_formulaire = sql_getfetsel(
+                       'id_formulaire',
+                       'spip_formulaires_reponses',
+                       'id_formulaires_reponse='.intval($id_formulaires_reponse)
+               );
        }
        if (is_null($modele_resume) and !isset($modeles_resume[$id_formulaire])) {
-               $modeles_resume[$id_formulaire] = sql_getfetsel('resume_reponse', 'spip_formulaires', 'id_formulaire='.intval($id_formulaire));
+               $modeles_resume[$id_formulaire] = sql_getfetsel(
+                       'resume_reponse',
+                       'spip_formulaires',
+                       'id_formulaire='.intval($id_formulaire)
+               );
        }
        if (is_null($modele_resume)) {
                $modele_resume = $modeles_resume[$id_formulaire];
@@ -144,3 +158,43 @@ function affiche_resume_reponse($id_formulaires_reponse, $id_formulaire = null,
                )
        );
 }
+
+/**
+ * Si une saisie est de type 'fichiers'
+ * insère dans la description du résultat de cette saisie
+ * l'url de l'action pour récuperer la saisie
+ * Ajoute également une vignette correspondent à l'extention
+ * @param array $saisie_a_modifier
+ * @param string $nom_saisie
+ * @param array $saisies_du_formulaire
+ * @param int|string $id_formulaire
+ * @param int|string $id_formulaires_reponse
+ * return array $saisie_a_modifier
+ **/
+function formidable_ajouter_action_recuperer_fichier($saisie_a_modifier, $nom_saisie, $saisies_du_formulaire, $id_formulaire, $id_formulaires_reponse) {
+       // précaution
+       include_spip('inc/saisies_lister');
+       include_spip('inc/formidable_fichiers');
+       $id_formulaire = strval($id_formulaire);
+       $id_formulaires_reponse = strval($id_formulaires_reponse);
+       $vignette_par_defaut = charger_fonction('vignette', 'inc/');
+       if (array_key_exists($nom_saisie, saisies_lister_avec_type($saisies_du_formulaire, 'fichiers'))) { //saisies SPIP
+               if (isset($saisie_a_modifier) and is_array($saisie_a_modifier)) {
+                       foreach ($saisie_a_modifier as $i => $valeur) {
+                               $url = formidable_generer_url_action_recuperer_fichier(
+                                       $id_formulaire,
+                                       $id_formulaires_reponse,
+                                       $nom_saisie,
+                                       $valeur['nom']
+                               );
+                               $saisie_a_modifier[$i]['url'] = $url;
+                               if (in_array($valeur['extension'],array('png','jpg','gif'))) {
+                                       $saisie_a_modifier[$i]['vignette'] = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire/reponse_$id_formulaires_reponse/$nom_saisie/".$valeur['nom'];
+                               }       else {
+                                       $saisie_a_modifier[$i]['vignette'] = $vignette_par_defaut($valeur['extension'], false);
+                               }
+                       }
+               }
+       }
+       return $saisie_a_modifier;
+}