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

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

truc étrange, une fonction de sondages_fonctions.php n'est pas trouvée

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