source: spip-zone/_plugins_branche_stable_/_spip_1_9_0_/spip-sondages/exec/sondages_visualisation.php @ 4614

Last change on this file since 4614 was 4614, checked in by pierre.basson@…, 13 years ago

réorganisation

File size: 16.9 KB
Line 
1<?php
2
3
4        /**
5         * SPIP-Sondages : plugin de gestion de sondages
6         *
7         * Copyright (c) 2006
8         * Agence Artégo http://www.artego.fr
9         * 
10         * Ce programme est un logiciel libre distribue sous licence GNU/GPL.
11         * Pour plus de details voir le fichier COPYING.txt.
12         * 
13         **/
14
15
16        include_spip('inc/presentation');
17        include_spip('inc/date');
18        include_spip('inc/logos');
19        include_spip('inc/extra');
20
21
22        /**
23         * exec_sondages_visualisation
24         *
25         * Visualisation d'un sondage
26         *
27         * @author Pierre Basson
28         **/
29        function exec_sondages_visualisation() {
30                global $dir_lang, $spip_lang_right, $champs_extra;
31
32                if ($GLOBALS['connect_statut'] != "0minirezo")
33                        sondages_rediriger_javascript(generer_url_ecrire('accueil')); 
34
35                if (empty($_GET['id_sondage'])) {
36                        $url = generer_url_ecrire('sondages', '', '&');
37                        sondages_rediriger_javascript($url);
38                }
39
40                if (!empty($_POST['enregistrer'])) {
41                        $id_sondage             = $_GET['id_sondage'];
42                        $titre                  = addslashes($_POST['titre']);
43                        $id_rubrique    = addslashes($_POST['id_parent']);
44                        $type                   = addslashes($_POST['type']);
45                        $texte                  = addslashes($_POST['texte']);
46                        $lang                   = addslashes($_POST['lang']);
47                        if ($champs_extra)
48                                $champs_extra = extra_recup_saisie("sondages");
49
50                        if ($id_sondage == -1) {
51                                $insertion = 'INSERT INTO spip_sondages (titre,
52                                                                                                                id_rubrique,
53                                                                                                                type,
54                                                                                                                texte,
55                                                                                                                lang,
56                                                                                                                en_ligne,
57                                                                                                                statut,
58                                                                                                                date_debut,
59                                                                                                                date_fin,
60                                                                                                                maj'.($champs_extra ? ", extra" : '').')
61                                                                                                VALUES ("'.$titre.'",
62                                                                                                                "'.$id_rubrique.'",
63                                                                                                                "'.$type.'",
64                                                                                                                "'.$texte.'",
65                                                                                                                "'.$lang.'",
66                                                                                                                "non",
67                                                                                                                "en_attente",
68                                                                                                                NOW(),
69                                                                                                                NOW(),
70                                                                                                                NOW()'.($champs_extra ? (', "'.addslashes($champs_extra).'"') : '').')';
71                                if (spip_query($insertion)) {
72                                        $id_sondage = spip_insert_id();
73                                        spip_query('INSERT INTO spip_auteurs_sondages (id_auteur, id_sondage) VALUES ("'.$GLOBALS['auteur_session']['id_auteur'].'", "'.$id_sondage.'")');
74                                        $url_sondage = generer_url_ecrire('sondages_visualisation', 'id_sondage='.$id_sondage, '&');
75                                        sondages_rediriger_javascript($url_sondage);
76                                }
77                        } else {
78                                $modification = 'UPDATE spip_sondages SET titre="'.$titre.'",
79                                                                                                                id_rubrique="'.$id_rubrique.'",
80                                                                                                                type="'.$type.'",
81                                                                                                                texte="'.$texte.'",
82                                                                                                                maj=NOW()'.($champs_extra ? (", extra='".addslashes($champs_extra)."'") : '').'
83                                                                                                        WHERE id_sondage="'.$id_sondage.'"';
84                                spip_query($modification);
85                                $url_sondage = generer_url_ecrire('sondages_visualisation', 'id_sondage='.$id_sondage, '&');
86                                sondages_rediriger_javascript($url_sondage);
87                        }
88                }
89
90                if (!empty($_POST['enregistrer_choix'])) {
91                        $id_sondage             = $_GET['id_sondage'];
92                        $id_choix               = $_GET['id_choix'];
93                        $titre                  = addslashes($_POST['titre']);
94                        $position               = intval($_POST['position']);
95
96                        if ($id_choix == -1) {
97                                $resultat_nb_choix = spip_query('SELECT id_choix FROM spip_choix WHERE id_sondage="'.$id_sondage.'"');
98                                $ordre = intval(spip_num_rows($resultat_nb_choix));
99                                $insertion = 'INSERT INTO spip_choix (titre,
100                                                                                                                id_sondage,
101                                                                                                                ordre)
102                                                                                                VALUES ("'.$titre.'",
103                                                                                                                "'.$id_sondage.'",
104                                                                                                                "'.$ordre.'")';
105                                if (spip_query($insertion)) {
106                                        $id_choix = spip_insert_id();
107                                        sondages_modifier_ordre_choix($id_sondage, $id_choix, $position);
108                                }
109                        } else {
110                                $modification = 'UPDATE spip_choix
111                                                                SET titre="'.$titre.'"
112                                                                WHERE id_sondage="'.$id_sondage.'"
113                                                                        AND id_choix="'.$id_choix.'"';
114                                spip_query($modification);
115                                sondages_modifier_ordre_choix($id_sondage, $id_choix, $position);
116                        }
117                        $url_sondage = generer_url_ecrire('sondages_visualisation', 'id_sondage='.$id_sondage, '&');
118                        sondages_rediriger_javascript($url_sondage);
119                }
120
121                $id_sondage     = $_GET['id_sondage'];
122                $url_sondage = generer_url_ecrire('sondages_visualisation', 'id_sondage='.$id_sondage, '&');
123
124                if (!empty($_GET['supprimer_auteur'])) {
125                        $id_auteur = intval($_GET['supprimer_auteur']);
126                        $suppression = 'DELETE FROM spip_auteurs_sondages WHERE id_auteur="'.$id_auteur.'" AND id_sondage="'.$id_sondage.'" LIMIT 1';
127                        spip_query($suppression);
128                        sondages_rediriger_javascript($url_sondage);
129                }
130
131                if (!empty($_POST['changer_auteur'])) {
132                        $id_auteur = intval($_POST['id_auteur']);
133                        $insertion = 'INSERT INTO spip_auteurs_sondages (id_auteur, id_sondage) VALUES ("'.$id_auteur.'", "'.$id_sondage.'")';
134                        @spip_query($insertion);
135                        sondages_rediriger_javascript($url_sondage);
136                }
137
138                if (!empty($_GET['supprimer_mot'])) {
139                        $id_mot = intval($_GET['supprimer_mot']);
140                        $suppression = 'DELETE FROM spip_mots_sondages WHERE id_mot="'.$id_mot.'" AND id_sondage="'.$id_sondage.'" LIMIT 1';
141                        spip_query($suppression);
142                        sondages_rediriger_javascript($url_sondage);
143                }
144
145                if (!empty($_POST['changer_mot'])) {
146                        $id_mot = intval($_POST['id_mot']);
147                        $insertion = 'INSERT INTO spip_mots_sondages (id_mot, id_sondage) VALUES ("'.$id_mot.'", "'.$id_sondage.'")';
148                        @spip_query($insertion);
149                        sondages_rediriger_javascript($url_sondage);
150                }
151
152                if (!empty($_POST['changer_dates'])) {
153                        $annee_debut    = $_POST['annee_debut'];
154                        $mois_debut             = $_POST['mois_debut'];
155                        $jour_debut             = $_POST['jour_debut'];
156                        $date_debut             = $annee_debut.'-'.$mois_debut.'-'.$jour_debut.' 00:00:00';
157                        $modification = 'UPDATE spip_sondages SET date_debut="'.$date_debut.'", maj=NOW() WHERE id_sondage="'.$id_sondage.'"';
158                        spip_query($modification);
159
160                        $annee_fin      = $_POST['annee_fin'];
161                        $mois_fin       = $_POST['mois_fin'];
162                        $jour_fin       = $_POST['jour_fin'];
163                        $date_fin       = $annee_fin.'-'.$mois_fin.'-'.$jour_fin.' 23:59:00';
164                        $modification = 'UPDATE spip_sondages SET date_fin="'.$date_fin.'", maj=NOW() WHERE id_sondage="'.$id_sondage.'"';
165                        spip_query($modification);
166
167                        sondages_mettre_a_jour_sondage($id_sondage);
168                        sondages_rediriger_javascript($url_sondage);
169                }
170
171                if (!empty($_POST['changer_langue'])) {
172                        $lang   = addslashes($_POST['lang']);
173                        $modification = 'UPDATE spip_sondages SET lang="'.$lang.'", maj=NOW() WHERE id_sondage="'.$id_sondage.'"';
174                        spip_query($modification);
175                        sondages_rediriger_javascript($url_sondage);
176                }
177
178                if (!empty($_POST['changer_en_ligne'])) {
179                        $en_ligne = $_POST['en_ligne'];
180                        if ($en_ligne == 'purger_avis') {
181                                $requete_sondes = 'SELECT id_sonde FROM spip_sondes WHERE id_sondage="'.$id_sondage.'"';
182                                $resultat_sondes = spip_query($requete_sondes);
183                                while ($arr = spip_fetch_array($resultat_sondes)) {
184                                        spip_query('DELETE FROM spip_avis WHERE id_sonde="'.$arr['id_sonde'].'"');
185                                }
186                                $suppression = 'DELETE FROM spip_sondes WHERE id_sondage="'.$id_sondage.'"';
187                                spip_query($suppression);
188                        } else if ($en_ligne == 'poubelle') {
189                                $suppression = 'DELETE FROM spip_sondages WHERE id_sondage="'.$id_sondage.'" LIMIT 1';
190                                spip_query($suppression);
191                                $suppression_mots = 'DELETE FROM spip_mots_sondages WHERE id_sondage="'.$id_sondage.'"';
192                                spip_query($suppression_mots);
193                                $suppression_auteurs = 'DELETE FROM spip_auteurs_sondages WHERE id_sondage="'.$id_sondage.'"';
194                                spip_query($suppression_auteurs);
195                                $requete_sondes = 'SELECT id_sonde FROM spip_sondes WHERE id_sondage="'.$id_sondage.'"';
196                                $resultat_sondes = spip_query($requete_sondes);
197                                while ($arr = spip_fetch_array($resultat_sondes)) {
198                                        spip_query('DELETE FROM spip_avis WHERE id_sonde="'.$arr['id_sonde'].'"');
199                                }
200                                $suppression = 'DELETE FROM spip_sondes WHERE id_sondage="'.$id_sondage.'"';
201                                spip_query($suppression);
202                                $suppression = 'DELETE FROM spip_choix WHERE id_sondage="'.$id_sondage.'"';
203                                spip_query($suppression);
204                                // suppression logos
205                                $logo_on = array();
206                                $logo_on = cherche_logo($id_sondage, 'son', 'on');
207                                if (!empty($logo_on))
208                                        unlink($logo_on[0]);
209                                $logo_off = array();
210                                $logo_off = cherche_logo($id_sondage, 'son', 'off');
211                                if (!empty($logo_off))
212                                        unlink($logo_off[0]);
213                                // suppression documents et vignettes
214                                $documents = spip_query('SELECT D.id_document,
215                                                                                                D.id_vignette,
216                                                                                                D.fichier
217                                                                                        FROM spip_documents_sondages AS DS
218                                                                                        INNER JOIN spip_documents AS D ON D.id_document=DS.id_document
219                                                                                        WHERE DS.id_sondage="'.$id_sondage.'"');
220                                while ($arr = spip_fetch_array($documents)) {
221                                        if ($arr['id_vignette'] != 0) {
222                                                $vignette = spip_query('SELECT fichier FROM spip_documents WHERE id_document="'.$arr['id_vignette'].'"');
223                                                list($fichier_vignette) = spip_fetch_array($vignette);
224                                                unlink('../'.$fichier_vignette);
225                                                spip_query('DELETE FROM spip_documents WHERE id_document="'.$arr['id_vignette'].'"');
226                                        }
227                                        unlink('../'.$arr['fichier']);
228                                        spip_query('DELETE FROM spip_documents WHERE id_document="'.$arr['id_document'].'"');
229                                }
230                                $url = generer_url_ecrire('sondages');
231                                sondages_rediriger_javascript($url);
232                        } else {
233                                spip_query('UPDATE spip_sondages SET en_ligne="'.$en_ligne.'" WHERE id_sondage="'.$id_sondage.'"');
234                                sondages_mettre_a_jour_sondage($id_sondage);
235                                sondages_rediriger_javascript($url_sondage);
236                        }
237                }
238               
239                if (!empty($_GET['position'])) {
240                        $id_sondage             = $_GET['id_sondage'];
241                        $id_choix               = $_GET['id_choix'];
242                        $position               = intval($_GET['position']);
243                        sondages_modifier_ordre_choix($id_sondage, $id_choix, $position);
244                        sondages_rediriger_javascript($url_sondage);
245                }
246
247                if (!empty($_GET['supprimer_choix'])) {
248                        $id_choix       = intval($_GET['supprimer_choix']);
249                        $id_sondage     = $_GET['id_sondage'];
250                        sondages_modifier_ordre_choix($id_sondage, $id_choix, 'dernier');
251                        $suppression = 'DELETE FROM spip_avis WHERE id_choix="'.$id_choix.'"';
252                        spip_query($suppression);
253                        $suppression = 'DELETE FROM spip_choix WHERE id_choix="'.$id_choix.'" AND id_sondage="'.$id_sondage.'" LIMIT 1';
254                        spip_query($suppression);
255                        sondages_rediriger_javascript($url_sondage);
256                }
257
258                $requete_sondage = 'SELECT titre, id_rubrique, type, texte, lang, en_ligne, statut, date_debut, date_fin, extra FROM spip_sondages WHERE id_sondage="'.$id_sondage.'" LIMIT 1';
259                $resultat_sondage = spip_query($requete_sondage);
260                list($titre, $id_rubrique, $type, $texte, $lang, $en_ligne, $statut, $date_debut, $date_fin, $extra) = spip_fetch_array($resultat_sondage);
261                $titre          = entites_html($titre);
262                $texte          = propre($texte);
263               
264               
265                debut_page($titre, "naviguer", "sondages");
266
267
268                debut_grand_cadre();
269                afficher_hierarchie($id_rubrique);
270                fin_grand_cadre();
271
272
273                debut_gauche();
274                sondages_afficher_numero_sondage($id_sondage, true);
275                global $table_logos;
276                $table_logos['id_sondage'] = 'son';
277                afficher_boite_logo('id_sondage', $id_sondage, _T('sondages:logo_sondage'), _T('logo_survol'), 'sondages_visualisation');
278
279                debut_raccourcis();
280                sondages_afficher_raccourci_liste_sondages();
281                fin_raccourcis();
282
283
284        debut_droite();
285                debut_cadre_relief('../'._DIR_PLUGIN_SONDAGES.'/img_pack/sondages-24.png');
286
287                echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>";
288                switch ($en_ligne) {
289                        case 'non':
290                                $logo_statut = "puce-blanche.gif";
291                                break;
292                        case 'oui':
293                                switch ($statut) {
294                                        case 'en_attente' :
295                                                $logo_statut = "puce-orange.gif";
296                                                break;
297                                        case 'publie' :
298                                                $logo_statut = "puce-verte.gif";
299                                                break;
300                                        case 'termine' :
301                                                $logo_statut = "puce-poubelle.gif";
302                                                break;
303                                }
304                                break;
305                }
306                echo "<tr width='100%'><td width='100%' valign='top'>";
307                gros_titre($titre, $logo_statut);
308                echo "</td>";
309                echo "<td>", http_img_pack("rien.gif", ' ', "width='5'") ."</td>\n";
310                echo "<td  align='$spip_lang_right' valign='top'>";
311                icone(_T('sondages:modifier_sondage'), generer_url_ecrire("sondages_edition","id_sondage=$id_sondage"), '../'._DIR_PLUGIN_SONDAGES.'/img_pack/sondages-24.png', "edit.gif");
312                echo "</td>";
313                echo "</tr>\n";
314                echo "<tr><td>\n";
315                echo "<div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa;'>";
316                echo "<font size=2 face='Verdana,Arial,Sans,sans-serif'>";
317                echo _T('sondages:type')." : <B>"._T('sondages:'.$type)."</B><br />";
318                echo "</font>";
319                echo "</div>";
320                if ($champs_extra AND $extra) {
321                        echo "<br />\n";
322                        extra_affichage($extra, "sondages");
323                }
324                echo "</td></tr>\n";
325                echo "</table>\n";
326
327                echo "<div>&nbsp;</div>";
328
329
330                echo generer_url_post_ecrire("sondages_visualisation", "id_sondage=$id_sondage", 'formulaire');
331
332                sondages_afficher_dates($date_debut, $date_fin, true);
333
334                debut_cadre_enfonce('../'._DIR_PLUGIN_SONDAGES.'/img_pack/choix.png', false, '', _T('sondages:choix'));
335                $requete_choix = 'SELECT * FROM spip_choix WHERE id_sondage="'.$id_sondage.'" ORDER BY ordre';
336                $resultat_choix = spip_query($requete_choix);
337                $total = spip_num_rows($resultat_choix);
338                if ($type == 'multiple')
339                        $icone = "checkbox";
340                else
341                        $icone = "radio";
342                if ($total != 0) {
343                        $position = 0;
344                        echo "<div class='liste'>\n";
345                        echo "<table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>\n";
346                        while ($arr = spip_fetch_array($resultat_choix)) {
347                                echo "<tr class='tr_liste'>\n";
348                                echo "<td width='20' class='arial11'>\n";
349                                echo "<img src='"._DIR_PLUGIN_SONDAGES."/img_pack/".$icone.".png' alt='radio' width='16' height='16' border='0' />\n";
350                                echo "</td>\n";
351                                echo "<td class='arial2' width='135'>\n";
352                                echo "<A HREF='".generer_url_ecrire("choix_edition","id_sondage=$id_sondage&id_choix=".$arr['id_choix'])."'>\n";
353                                echo $arr['titre'];
354                                echo "</A>\n";
355                                echo "</td>\n";
356                                echo "<td class='arial1' width='50' align='right'>\n";
357                                $requete_nb_votes = 'SELECT id_avis FROM spip_avis WHERE id_choix="'.$arr['id_choix'].'"';
358                                $resultat_nb_votes = spip_query($requete_nb_votes);
359                                $nb_votes = intval(spip_num_rows($resultat_nb_votes));
360                                echo $nb_votes.'&nbsp;'._T('sondages:votes');
361                                echo "</td>\n";
362                                echo "<td class='arial1' width='140'>\n";
363                                $pourcentage = sondages_calculer_pourcentage($id_sondage, $arr['id_choix']);
364                                echo "<img src='img_pack/jauge-vert.gif' alt='monter' title='".$pourcentage."%' width='".$pourcentage."' height='8' border='0' />&nbsp;".$pourcentage."%\n";
365                                echo "</td>\n";
366                                echo "<td class='arial2' width='24'>\n";
367                                if ($position == 0) {
368                                        echo "&nbsp;";
369                                } else {
370                                        echo "<A HREF='".generer_url_ecrire("sondages_visualisation","id_sondage=$id_sondage&id_choix=".$arr['id_choix']."&position=".($position-1))."'>\n";
371                                        echo "<img src='img_pack/monter-16.png' alt='monter' width='16' height='16' border='0' />\n";
372                                        echo "</A>\n";
373                                }
374                                echo "</td>\n";
375                                echo "<td class='arial2' width='24'>\n";
376                                if ($position == ($total-1)) {
377                                        echo '&nbsp;';
378                                } else {
379                                        echo "<A HREF='".generer_url_ecrire("sondages_visualisation","id_sondage=$id_sondage&id_choix=".$arr['id_choix']."&position=".($position+1))."'>\n";
380                                        echo "<img src='img_pack/descendre-16.png' alt='descendre' width='16' height='16' border='0' />\n";
381                                        echo "</A>\n";
382                                }
383                                echo "</td>\n";
384                                echo "<td class='arial1' width='24'>\n";
385                                echo "<A HREF='".generer_url_ecrire("sondages_visualisation","id_sondage=$id_sondage&supprimer_choix=".$arr['id_choix'])."'>\n";
386                                echo "<img src='"._DIR_PLUGIN_SONDAGES."/img_pack/poubelle.png' alt='X' width='16' height='16' border='0' align='middle' />\n";
387                                echo "</A>\n";
388                                echo "</td>\n";
389                                echo "</tr>\n";
390                                $position++;
391                        }
392                        echo "</table>\n";
393                        echo "</div>\n";
394
395                        echo "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>";
396                        echo "<tr>";
397                        echo "<td>";
398                        echo "<div align='$spip_lang_right'>";
399                        icone(_T('sondages:ajouter_un_choix'), generer_url_ecrire("choix_edition","id_sondage=$id_sondage&new=oui"), '../'._DIR_PLUGIN_SONDAGES.'/img_pack/choix.png', "creer.gif");
400                        echo "</div>";
401                        echo "</td></tr></table>";
402                }
403                fin_cadre_enfonce();
404
405                sondages_afficher_auteurs($id_sondage, true);
406                sondages_afficher_mots_cles($id_sondage, true);
407                sondages_afficher_langue($lang, true);
408               
409                echo "<br />";
410                debut_cadre_relief();
411                echo "<center><B>"._T('sondages:action')."</B>&nbsp;";
412                echo "<SELECT NAME='en_ligne' SIZE='1' CLASS='fondl'>\n";
413                echo '  <OPTION VALUE="non"'.(($en_ligne == 'non') ? ' SELECTED' : '').'>'._T('sondages:action_hors_ligne').'</OPTION>'."\n";
414                echo '  <OPTION VALUE="oui"'.(($en_ligne == 'oui') ? ' SELECTED' : '').'>'._T('sondages:action_en_ligne').'</OPTION>'."\n";
415                echo '  <OPTION VALUE="purger_avis">'._T('sondages:action_purger_avis').'</OPTION>'."\n";
416                echo '  <OPTION VALUE="poubelle">'._T('sondages:action_poubelle').'</OPTION>'."\n";
417                echo "</SELECT>";
418                echo "&nbsp;&nbsp;<INPUT TYPE='submit' NAME='changer_en_ligne' CLASS='fondo' VALUE='"._T('sondages:changer')."' STYLE='font-size:10px'>";
419                echo '</center>';
420                fin_cadre_relief();
421                echo '</form>';
422
423                echo "<div align='justify' style='padding: 10px;'>";
424                echo "<div $dir_lang>";
425                echo $texte;
426                echo "\n\n<div align='$spip_lang_right'><br />";
427                icone(_T('sondages:modifier_sondage'), generer_url_ecrire("sondages_edition","id_sondage=$id_sondage"), '../'._DIR_PLUGIN_SONDAGES.'/img_pack/sondages-24.png', "edit.gif");
428                echo "</div>";
429                echo "<br clear='both' />";
430                echo "</div>";
431                echo "</div>";
432
433                fin_cadre_relief();
434
435                fin_page();
436
437        }
438
439?>
Note: See TracBrowser for help on using the repository browser.