source: spip-zone/_plugins_/forms/forms_et_tables_2_5/exec/forms_reponses.php @ 65963

Last change on this file since 65963 was 65963, checked in by sblanc@…, 9 years ago
File size: 10.7 KB
Line 
1<?php
2/*
3 * forms
4 * Gestion de formulaires editables dynamiques
5 *
6 * Auteurs :
7 * Antoine Pitrou
8 * Cedric Morin
9 * Renato
10 * � 2005,2006 - Distribue sous licence GNU/GPL
11 *
12 */
13
14include_spip('inc/forms');
15include_spip("inc/presentation");
16include_spip('inc/forms_tables_affichage');
17
18if (!include_spip('inc/autoriser'))
19        include_spip('inc/autoriser_compat');
20
21function exec_forms_reponses(){
22        include_spip('base/abstract_sql');
23        global $id_form;
24        global $supp_reponse;
25        $debut = _request('debut');
26  _Forms_install();
27        //adaptation SPIP2
28        $id_form = _request('id_form');
29        $supp_reponse = _request('supp_reponse');
30       
31        $id_form = intval($id_form);
32
33        if ($id_form) {
34                $query = "SELECT * FROM spip_forms WHERE id_form=\"$id_form\"";
35                $result = spip_query($query);
36                if ($row = spip_fetch_array($result)) {
37                        $titre = $row['titre'];
38                        $descriptif = $row['descriptif'];
39                        $type_form = $row['type_form'];
40                }
41        }
42
43
44        /*debut_page("&laquo; ".textebrut(typo($titre))." &raquo;", "redacteurs", "suivi-forms");*/
45        $commencer_page = charger_fonction("commencer_page", "inc") ;
46        echo $commencer_page("&laquo; ".textebrut(typo($titre))." &raquo;", "redacteurs", "suivi-forms");
47        /*debut_gauche();*/
48        echo debut_gauche('', true);
49
50        if ($id_form) {
51                /*debut_boite_info();*/
52                echo debut_boite_info(true);
53                if ($retour = urldecode(_request('retour')))
54                {
55                        // echo icone_horizontale(_T('icone_retour'), $retour, _DIR_PLUGIN_FORMS."img_pack/form-24.png", "rien.gif",false);
56                        $contexteBT = array(
57                                'style'=>'horizontale ',
58                                'titre'=>_T('icone_retour'),
59                                'url'=>$retour,
60                                'icon_base'=>'form-24.png',
61                                'icon_action'=>'rien.gif'
62                        );
63                        echo recuperer_fond("fonds/bouton_url",$contexteBT);
64                }
65                // echo icone_horizontale(_T("forms:Formulaire"), "?exec=forms_edit&id_form=$id_form", _DIR_PLUGIN_FORMS. "img_pack/form-24.png", "rien.gif",false);
66                $contexteBT = array(
67                        'style'=>'horizontale ',
68                        'titre'=>_T("forms:Formulaire"),
69                        'url'=>"?exec=forms_edit&id_form=$id_form",
70                        'icon_base'=>'form-24.png',
71                        'icon_action'=>'rien.gif'
72                );
73                echo recuperer_fond("fonds/bouton_url",$contexteBT);
74                $nretour = urlencode(self());
75                // echo icone_horizontale(_T("forms:Tableau_des_reponses"), "?exec=donnees_tous&id_form=$id_form&retour=$nretour", _DIR_PLUGIN_FORMS. "img_pack/donnees-24.png", "rien.gif",false);
76                $contexteBT = array(
77                        'style'=>'horizontale ',
78                        'titre'=>_T("forms:Tableau_des_reponses"),
79                        'url'=>"?exec=donnees_tous&id_form=$id_form&retour=$nretour",
80                        'icon_base'=>'donnees-24.png',
81                        'icon_action'=>'rien.gif'
82                );
83                echo recuperer_fond("fonds/bouton_url",$contexteBT);
84               
85                if (autoriser('administrer','form',$id_form)) {
86                        $retour = urlencode(self());
87                        // echo icone_horizontale(_T("forms:telecharger_reponses"),generer_url_ecrire("forms_telecharger","id_form=$id_form&retour=$retour"), _DIR_PLUGIN_FORMS. "img_pack/donnees-exporter-24.png", "rien.gif",false);
88                        $contexteBT = array(
89                                'style'=>'horizontale ',
90                                'titre'=>_T("forms:telecharger_reponses"),
91                                'url'=>generer_url_ecrire("forms_telecharger","id_form=$id_form&retour=$retour"),
92                                'icon_base'=>'donnees-exporter-24.png',
93                                'icon_action'=>'rien.gif'
94                        );
95                        echo recuperer_fond("fonds/bouton_url",$contexteBT);
96                }
97
98                /*fin_boite_info();*/
99                echo fin_boite_info(true);
100        }
101        /*debut_droite();*/
102        echo debut_droite('',true);
103
104        if (!autoriser('administrer','form',$id_form)) {
105                echo "<strong>"._T('avis_acces_interdit')."</strong>";
106                fin_page();
107                exit;
108        }
109
110        if ($id_form) {
111                echo gros_titre(_T("forms:suivi_formulaire")."&nbsp;: &laquo;&nbsp;".typo($titre)."&nbsp;&raquo;",'',false);
112        }
113        else {
114                echo gros_titre(_T("forms:suivi_formulaires"),'',false);
115        }
116       
117
118
119        if ($id_donnee = intval($supp_reponse)) {
120                $query = "DELETE FROM spip_forms_donnees WHERE id_donnee="._q($id_donnee);
121                $result = spip_query($query);
122                $query = "DELETE FROM spip_forms_donnees_champs WHERE id_donnee="._q($id_donnee);
123                $result = spip_query($query);
124        }
125
126        if ($id_form)
127                $where = "WHERE r.id_form="._q($id_form)." AND ";
128        else
129                $where = "WHERE ";
130
131        //
132        // Sondage : afficher les cumuls
133        //
134
135        if ($id_form && ($type_form=='sondage')) {
136                echo "<br />\n";
137                debut_cadre_enfonce("statistiques-24.gif");
138                include_spip('forms_fonctions');
139                echo Forms_afficher_reponses_sondage($id_form);
140                echo fin_cadre_enfonce(true);
141        }
142
143        //
144        // Afficher les liens vers les tranches
145        //
146        $debut = intval($debut);
147        $tranche = 10;
148
149        $query = "SELECT COUNT(*) AS cnt FROM spip_forms_donnees AS r ".
150                "$where confirmation='valide' AND date > DATE_SUB(NOW(), INTERVAL 6 MONTH)";
151        $result = spip_query($query);
152        list($total) = spip_fetch_array($result,SPIP_NUM);
153        if ($total > $tranche) {
154                echo "<br />";
155                for ($i = 0; $i < $total; $i = $i + $tranche){
156                        if ($i > 0) echo " | ";
157                        if ($i == $debut)
158                                echo "<strong>$i</strong>";
159                        else {
160                                $link=parametre_url(self(),'debut', strval($i));
161                                echo "<a href='".$link."'>$i</a>";
162                        }
163                }
164        }
165        echo "<br />\n";
166
167        //
168        // Afficher les reponses
169        //
170        $trans = array();
171        $types = array();
172        $form_unique = $id_form;
173
174        //adaptation SPIP2
175        //if (substr(spip_mysql_version(), 0, 1) == 3) {
176        if (substr(sql_version(), 0, 1) == 3) {
177                // $query = "SELECT r.*, a.nom, f.titre FROM spip_forms_donnees AS r LEFT JOIN spip_auteurs AS a USING (id_auteur), spip_forms AS f 
178                // WHERE r.id_form=f.id_form AND r.confirmation ='valide' AND r.statut <> 'poubelle' AND r.date > DATE_SUB(NOW(), INTERVAL 6 MONTH)
179                // ORDER BY r.date DESC LIMIT "._q($debut).", "._q($tranche);
180               
181                $query = "SELECT r.*, a.nom, f.titre FROM spip_forms_donnees AS r LEFT JOIN spip_auteurs AS a USING (id_auteur), spip_forms AS f 
182                WHERE r.id_form=f.id_form AND r.confirmation ='valide' AND r.statut <> 'poubelle'
183                ORDER BY r.date DESC LIMIT "._q($debut).", "._q($tranche);//-- suppression de la ligne qui n'affiche plus les enregistrements de plus de 6 mois
184        }
185        else {
186                // $query = "SELECT r.*, a.nom, f.titre FROM spip_forms_donnees AS r LEFT JOIN spip_auteurs AS a USING (id_auteur)
187                // JOIN spip_forms AS f ON r.id_form=f.id_form
188                // $where r.confirmation='valide' AND r.date > DATE_SUB(NOW(), INTERVAL 6 MONTH)
189                // ORDER BY r.date DESC LIMIT "._q($debut).", "._q($tranche);
190               
191                $query = "SELECT r.*, a.nom, f.titre FROM spip_forms_donnees AS r LEFT JOIN spip_auteurs AS a USING (id_auteur)
192                JOIN spip_forms AS f ON r.id_form=f.id_form
193                $where r.confirmation='valide'
194                ORDER BY r.date DESC LIMIT "._q($debut).", "._q($tranche); //-- suppression de la ligne qui n'affiche plus les enregistrements de plus de 6 mois
195        }
196       
197        // Nouveau bouton pour exporter toutes les réponses en même temps
198        // (NON ENCORE FONCITONNEL!!)
199        /*
200        echo icone_inline(
201                _T("forms:exporter_toutes_reponses"),
202                generer_action_auteur('RIEN', self()),
203                "article-24.gif",
204                "creer.gif",
205                "right"
206        );
207        */
208       
209        // Ajout d'une barre de séparation invisible :
210        echo "<hr style='clear:both; visibility:hidden; margin:0;'> ";
211       
212        $result = spip_query($query);
213       
214       
215        while ($row = spip_fetch_array($result)) {
216               
217               
218                $id_form = $row['id_form'];
219                $id_donnee = $row['id_donnee'];
220                $id_article_export = $row['id_article_export'];
221                $date = $row['date'];
222                $ip = $row['ip'];
223                $url = $row['url'];
224                $id_auteur = $row['id_auteur'];
225                $nom_auteur = $row['nom'];
226                $titre_form = $row['titre'];
227
228                //echo "<br />\n";
229                echo debut_cadre_relief(_DIR_PLUGIN_FORMS."img_pack/donnees-24.png",true,'','');
230
231                $link=parametre_url(self(),'supp_reponse', $id_donnee);
232                // echo icone_inline(_T("forms:supprimer_reponse"), $link,_DIR_PLUGIN_FORMS."img_pack/donnees-24.png", "supprimer.gif", "right");
233
234                $contexteBT = array(
235                                'style'=>'horizontale donnees-24',
236                                'titre'=>_T("forms:supprimer_reponse"),
237                                'url'=>$link,
238                                'icon_base'=>'donnees-24.png',
239                                'icon_action'=>'supprimer.gif'
240                );
241                echo recuperer_fond("fonds/bouton_url",$contexteBT);
242               
243                if ($id_article_export!=0){
244                        $row=spip_fetch_array(spip_query("SELECT statut FROM spip_articles WHERE id_article="._q($id_article_export)));
245                       
246                        // SI l'article n'a pas été exporté OU exporté mais mis à la poubelle...
247                        if (!$row OR ($row['statut']=='poubelle'))
248                                $id_article_export = 0; //... on met son 'id' à 0 pour montrer qu'on peut l'exporter
249                               
250                }
251               
252                if ($id_article_export==0){
253                        // echo icone_inline(_T("forms:exporter_article"), generer_action_auteur('forms_exporte_reponse_article',"$id_donnee",self()),"article-24.gif", "creer.gif", "right");
254                       
255                        $contexteBT = array(
256                                'style'=>'horizontale donnees-24',
257                                'titre'=>_T("forms:exporter_article"),
258                                'url'=>generer_action_auteur('forms_exporte_reponse_article',"$id_donnee",self()),
259                                'icon_base'=>'article-new-24.png',
260                                'icon_action'=>'rien.gif'
261                        );
262                        echo recuperer_fond("fonds/bouton_url",$contexteBT);
263                }
264                else {
265                        /* Changement ici : "_q($id_article_export)" au lieu de "$row[...]" */
266                        // echo icone_inline(_T("forms:voir_article"), generer_url_ecrire('articles',"id_article="._q($id_article_export)),"article-24.gif", "", "right");
267                        $contexteBT = array(
268                                'style'=>'horizontale donnees-24',
269                                'titre'=>_T("forms:voir_article"),
270                                'url'=>generer_url_ecrire('articles',"id_article="._q($id_article_export)),
271                                'icon_base'=>'article-24.png',
272                                'icon_action'=>'rien.gif'
273                        );
274                        echo recuperer_fond("fonds/bouton_url",$contexteBT);
275                }
276               
277               
278                // "Réponse @id_reponse@"
279                echo _T("forms:reponse", array('id_reponse' => $id_donnee)) . "<br />\n";
280
281                // "Réponse envoyée le @date@"
282                echo _T("forms:reponse_envoyee") . affdate($date) . " à " . affdate($date, 'H:i') . "<br />\n";
283               
284                // "à ..." (??Si plusieurs formulaires??)
285                if (!$form_unique) {
286                        echo _T("forms:reponse_envoyee_a")." ";
287                        echo "<strong class='verdana3' style='font-weight: bold;'><a href='?exec=forms_reponses&id_form=$id_form'>"
288                                .typo($titre_form)."</a></strong> ";
289                }
290
291                // "par @auteur@"
292                if ($id_auteur) {
293                        $s = "<a href='".generer_url_ecrire("auteur_infos","id_auteur=$id_auteur")."'>".typo($nom_auteur)."</a>";
294                        echo _T('forum_par_auteur', array('auteur' => $s));
295                        echo "<br />\n";
296                }
297               
298                // "Depuis la page @url@"
299                echo _T("forms:reponse_depuis")."<a href='"._DIR_RACINE."$url'>".$url."</a><br />\n";
300               
301               
302                echo "<br />\n";
303               
304
305                list($lib, $values, $urls) = Forms_extraire_reponse($id_donnee);
306               
307                // Affichage de l'ensemble des données de la réponses (liste des champs avec leur contenu)
308                foreach ($lib as $champ => $titre) {
309                        $s = '';
310                       
311                        foreach ($values[$champ] as $id=>$valeur){
312                                $valeur = typo($valeur);
313                                if(strlen($s)) $s .= ", ";
314                                if ($lien = $urls[$champ][$id])
315                                        $s .= "<a href='$lien'>$valeur</a>";
316                                else
317                                        $s .= $valeur;
318                        }
319                       
320                        echo "<span class='verdana1' style='text-transform: uppercase; font-weight: bold; color: #404040;'>";
321                        echo typo($titre)."&nbsp;:</span>";
322                        echo " ".$s;
323                        echo "<br />\n";
324                }
325
326               
327                echo "<div style='clear: both;'></div>";
328
329                echo fin_cadre_relief(true);
330        }
331               
332
333        if ($GLOBALS['spip_version_code']>=1.9203)
334                echo fin_gauche();
335       
336        echo fin_page();
337}
338
339?>
Note: See TracBrowser for help on using the repository browser.