// // This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. // // To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/1.0/ // // or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. // // Francais (brouillon): http://creativecommons.org/projects/international/fr/translated-license // ////////////////////////////////////////////////////////////////////////////////////////////////////// // Classe gestion des votes // Version 0.1.7 class votes { var $err = array( "stop" => "oui", "log" => "oui", "debug" => "oui"); // Gestion des erreurs function _err($err,$debug="") { // Si le debug est activé if($this->err[debug] == "oui" && !empty($debug)) $err.= "\n// DEBUG //\n".$debug; // Si on log les erreurs if($this->err[log] == "oui") $this->erreurs[] = $err; // Si on s'arrête sur les erreurs if($this->err[stop] == "oui") { echo "
".htmlentities(stripslashes($err))."
"; exit; } $this->erreur = $err; return FALSE; } function ajout($titre,$texte,$choix,$date_debut,$date_fin) { foreach($choix as $i=>$val) $choix2[] = 'choix'.$i.'="'.$val.'"'; $choix2 = implode(", ",$choix2); $req = "INSERT INTO votes SET titre=\"{$titre}\", texte=\"{$texte}\", {$choix2}, date_debut='{$date_debut}', date_fin='{$date_fin}', statut='proposition'"; mysql_unbuffered_query($req); return TRUE; } function modifier($id,$titre,$texte,$choix,$date_debut,$date_fin) { foreach($choix as $i=>$val) $choix2[] = 'choix'.$i.'="'.$val.'"'; $choix2 = implode(", ",$choix2); $req = "UPDATE votes SET titre=\"{$titre}\", texte=\"{$texte}\", {$choix2}, date_debut='{$date_debut}', date_fin='{$date_fin}' WHERE id='{$id}'"; mysql_unbuffered_query($req); return TRUE; } function liste($statut="") { if(empty($statut)) return FALSE; $now = time(); if($statut == "proposition") $req = "SELECT * FROM votes WHERE statut='proposition' ORDER BY date_debut DESC"; elseif($statut == "valide") $req = "SELECT * FROM votes WHERE statut='valide' AND ((date_debut < {$now} AND date_fin > {$now}) OR (date_debut > {$now})) ORDER BY date_debut DESC"; else $req = "SELECT * FROM votes WHERE statut='valide' AND (date_fin < {$now}) ORDER BY date_debut DESC"; $res = mysql_query($req); while($rec = mysql_fetch_assoc($res)) $out[] = $rec; mysql_free_result($res); return $out; } function supprimer($id) { mysql_unbuffered_query("DELETE FROM votes WHERE id='{$id}'"); mysql_unbuffered_query("DELETE FROM votes_membres WHERE vote='{$id}'"); return TRUE; } function valider($id) { mysql_unbuffered_query("UPDATE votes SET statut='valide' WHERE id='{$id}'"); return TRUE; } function lire($id) { $res = mysql_query("SELECT * FROM votes WHERE id='{$id}'"); $rec = mysql_fetch_assoc($res); mysql_free_result($res); return $rec; } function resultats($id) { $res = mysql_query("SELECT COUNT(*) FROM votes_membres WHERE vote='{$id}'"); $rec = mysql_fetch_row($res); mysql_free_result($res); $out['votants'] = $rec[0]; $res = mysql_query("SELECT COUNT(id) FROM membres"); $rec = mysql_fetch_row($res); mysql_free_result($res); $out['nb_membres'] = $rec[0]; $res = mysql_query("SELECT choix,COUNT(*) AS nb FROM votes_membres WHERE vote='{$id}' GROUP BY choix") or die(mysql_error()); while($rec = mysql_fetch_assoc($res)) { $i = $rec['choix']; $out['votes'][$i] = $rec['nb']; } mysql_free_result($res); return $out; } function encours() { $now = time(); $res = mysql_query("SELECT id FROM votes WHERE date_debut < {$now} AND date_fin > {$now} AND statut='valide'"); while($rec = mysql_fetch_row($res)) $out[] = $rec[0]; mysql_free_result($res); return $out; } function membre_vote($vote,$membre) { $res = mysql_query("SELECT COUNT(*) FROM votes_membres WHERE vote='{$vote}' AND membre='{$membre}'"); $rec = mysql_fetch_row($res); mysql_free_result($res); if($rec[0] > 0) return TRUE; return FALSE; } function voter($vote,$membre,$choix) { if($this->membre_vote($vote,$membre)) return FALSE; mysql_unbuffered_query("INSERT INTO votes_membres SET vote='{$vote}', membre='{$membre}', choix='{$choix}', date='".time()."'"); return TRUE; } function voir_votes($vote1) { $res = mysql_query("SELECT * FROM votes WHERE id='{$vote1}'"); $vote = mysql_fetch_assoc($res); for($i=1; $i <= 8; $i++) { if(empty($vote['choix'.$i])) continue; $out[$i]['intitule'] = $vote['choix'.$i]; $res2 = mysql_query( "SELECT m.pseudo,m.id,v.date FROM votes_membres AS v, membres AS m ". "WHERE v.choix='{$i}' AND v.vote='{$vote1}' AND v.membre=m.id ORDER BY m.pseudo"); while($rec = mysql_fetch_assoc($res2)) { $out[$i]['votants'][] = $rec; } mysql_free_result($res2); } mysql_free_result($res); return $out; } } ?>