--- /dev/null
+<?php # coding: utf-8
+
+/**
+ * Représente un participant.
+ */
+class Participant
+{
+ public $info; # Toute les infos du membre sous la forme d'un objet.
+ public $valide; # Savoir si le participant existe.
+
+ static private $NB_VOTES_PAR_PARTICIPANT = 3; # Concerne les votes des jeux joueés.
+
+ /**
+ * Constructeur, peut être appelé sous trois formes différentes :
+ * 1) $v1 = NULL, $v2 = NULL : participant non-valide
+ * 2) $v1 = id, $v2 = NULL : la participant existe et est chargé à partir de son id
+ * 3) $v1 = pseudo, $v2 = password : le participant existe et est chargé à partir de son pseudo et de son password
+ */
+ function Participant($v1=NULL, $v2=NULL)
+ {
+ # Aucunes valeurs transmise => ce n'est pas un participant valide.
+ if ($v1 == NULL && $v2 == NULL)
+ {
+ $this->valide = 0;
+ return;
+ }
+
+ if (is_string($v1) && is_string($v2)) # Aucun des arguments n'est vide alors c'est le pseudo et le password qui ont été transmis
+ $res = mysql_query("SELECT * FROM participants WHERE pseudo = '" . addslashes($v1) . "' AND password = '" . addslashes($v2) . "'");
+ else # Sinon c'est l'id
+ $res = mysql_query("SELECT * FROM participants WHERE id = " . addslashes($v1));
+
+ if (mysql_error() || mysql_num_rows($res) == 0)
+ {
+ $this->valide = FALSE;
+ }
+ else
+ {
+ $this->info = mysql_fetch_object($res);
+ $this->valide = TRUE;
+ }
+ }
+
+ /**
+ * Renvoie le nombre de votes restant pour le participant.
+ */
+ function nb_vote_restant()
+ {
+ $nombre_de_vote = mysql_fetch_array(mysql_query("
+ SELECT COUNT(*) FROM participants RIGHT JOIN jeux_choisis ON participants.id = jeux_choisis.participant_id
+ WHERE participants.id = " . $this->info->id . "
+ GROUP BY participants.id
+ "));
+
+ return Participant::$NB_VOTES_PAR_PARTICIPANT - $nombre_de_vote[0];
+ }
+
+ /**
+ * Renvois TRUE si le nombre de participant max est atteint.
+ */
+ static function nombre_participant_max_atteint()
+ {
+ global $config;
+ $res_SQL = mysql_query("SELECT COUNT(*) FROM participants");
+ $nb_participant = mysql_fetch_row($res_SQL);
+
+ return $nb_participant[0] >= $config->get('nb_max_participant');
+ }
+
+ /**
+ * Renvois le nombre de places restantes.
+ */
+ static function nombre_place_restante()
+ {
+ global $config;
+ $res_SQL = mysql_query("SELECT COUNT(*) FROM participants");
+ $nb_participant = mysql_fetch_row($res_SQL);
+
+ return $config->get('nb_max_participant') - $nb_participant[0];
+ }
+}
+
+?>
\ No newline at end of file