MOD #137 création de classes et suppression de variables globales
authorGreg Burri <greg.burri@gmail.com>
Fri, 11 Sep 2009 10:00:03 +0000 (12:00 +0200)
committerGreg Burri <greg.burri@gmail.com>
Fri, 11 Sep 2009 10:00:03 +0000 (12:00 +0200)
/!\ Pas testé, ya surement plus rien qui fonctionne ~_~

12 files changed:
index.php
php/class_participant.php [deleted file]
php/config.php
php/connexion.php
php/controller.php
php/menu_droit.php [deleted file]
php/pages/inscription.php
php/pages/jeux_joues.php
php/pages/pizzas.php [new file with mode: 0644]
php/panel.php [new file with mode: 0644]
php/participant.php [new file with mode: 0644]
php/pizzas.php [deleted file]

index f7136c5..e0b42df 100644 (file)
--- a/index.php
+++ b/index.php
@@ -3,17 +3,24 @@
 $page = $_GET['page'];
 if (!isset($page)) $page = "accueil"; #la page par défaut
 
-
 /* Pour déterminer si en LAN !?
 $IP_SERVEUR = '192.168.1.1';
 $MASK_RESEAU = '255.255.255.0';
 if($titre[1] && (ip2long($REMOTE_ADDR) & ip2long($MASK_RESEAU)) != (ip2long($IP_SERVEUR) & ip2long($MASK_RESEAU)))
 */
 
-include_once("php/class_participant.php");
+include_once("php/participant.php");
 include_once("php/connexion.php");
 include_once("php/config.php");
 include_once("php/controller.php");
+include_once("php/panel.php");
+
+# Différents objets, sont accessibles directements par les pages (voir dossier '/php/pages/').
+$config = new Config();
+$connexion = new Connexion();
+$participant = $connexion->participant;
+$controller = new Controller($participant);
+$panel = new Panel($participant);
 
 $MENU = array(
    'accueil' => 'Accueil',
@@ -35,10 +42,10 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-   <?php\r
+   <?php
       # Permet d'afficher un message à l'utilisateur lors du chargement de la page via le javascript, voir 'cl7.js'.
-      if ($message_utilisateur) echo '<meta name="messageUtilisateur" content="'.$message_utilisateur.'" />';\r
-     \r
+      if ($controller->message_utilisateur) echo '<meta name="messageUtilisateur" content="'.$controller->message_utilisateur.'" />';
+     
       # Des constantes stockées en BD accessible par le javascript.
       echo '<meta name="cout_periode" content="'.$config->get('cout_periode').'" />';
       echo '<meta name="cout_total" content="'.$config->get('cout_total').'" />';
@@ -91,7 +98,7 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
             <?php
                if ($page != 'inscrits') {
                   echo '<div id="informations">';
-                  include("php/menu_droit.php");
+                  $panel->rendre();
                   echo '</div>';
                }
 
@@ -104,7 +111,7 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
                      include("php/pages/jeux_joues.php");
                      break;
                   case 'inscription' :
-                     if (Participant::nombre_participant_max_atteint() && !$le_participant->valide)
+                     if (Participant::nombre_participant_max_atteint() && !$participant->valide)
                         echo 'Nous sommes désolés, il n\'y a plus de places libres';
                      else
                         include("php/pages/inscription.php");
@@ -128,7 +135,7 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
                      include("php/pages/photos.php");
                      break;
                   case 'pizzas':
-                     include("php/pizzas.php");
+                     include("php/pages/pizzas.php");
                      break;
                   default :
                      echo 'erreur, page introuvable';
diff --git a/php/class_participant.php b/php/class_participant.php
deleted file mode 100644 (file)
index ea27ffa..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/**
-  * 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;
-       
-   /**
-     * Constructeur, peut être appelé sous trois formes différentes.
-     */
-   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
index 4bcecc3..5730ac0 100644 (file)
@@ -16,5 +16,4 @@ class Config
    private $config;
 }
 
-$config = new Config();
 ?>
index 1c78bb0..e35e7fa 100644 (file)
@@ -1,64 +1,72 @@
-<?php
-/*
- * Connexion à la base de donnée + résolutiondu participant.
- * Produit une variable globale nommée '$le_participant'.
- */
+<?php # coding: utf-8
 
-if (!file_exists("php/config_bd.php")) {
-   echo "Le fichier 'php/config_bd.php' n'existe pas, création en cours...\n";
-   if (!is_writable("."))
-   {
-     echo "Le dossier 'php' n'est pas accessible en écriture, veuillez changer les droits et recommencer.";
-     exit();
-   }
-   $f = fopen("php/config_bd.php", "w");
-   fwrite($f, '<?php # encoding:utf-8
-      # Parametres de connexion MySQL
-      $SQL_HOTE = "localhost";
-      $SQL_LOGIN = "";
-      $SQL_PASS = "";
-      $NOM_BASE = "corcelles_lan7";?>'
-   );
-   fclose($f);
-   echo "Le fichier a été créé, veuillez le compléter et recommencer.";
-   exit();
-}
+include_once("participant.php");
 
-include_once("config_bd.php");
-include_once("class_participant.php");
-
-$lien_mysql = mysql_connect($SQL_HOTE, $SQL_LOGIN, $SQL_PASS);
-if (!$lien_mysql || !mysql_select_db($NOM_BASE))
+/*
+ * Connexion à la base de données et création du participant courant.
+ */
+class Connexion
 {
-  echo "Connexion à la base de données impossible. Voir le fichier 'php/config_bd.php'";
-  exit();
-}
+   public $participant;
+   
+   funtion Connexion()
+   {
+      if (!file_exists("php/config_bd.php")) {
+         echo "Le fichier 'php/config_bd.php' n'existe pas, création en cours...\n";
+         if (!is_writable("."))
+         {
+           echo "Le dossier 'php' n'est pas accessible en écriture, veuillez changer les droits et recommencer.";
+           exit();
+         }
+         $f = fopen("php/config_bd.php", "w");
+         fwrite($f, '<?php # encoding:utf-8
+            # Parametres de connexion MySQL
+            $SQL_HOTE = "localhost";
+            $SQL_LOGIN = "";
+            $SQL_PASS = "";
+            $NOM_BASE = "corcelles_lan7";?>'
+         );
+         fclose($f);
+         echo "Le fichier a été créé, veuillez le compléter et recommencer.";
+         exit();
+      }
+      
+      include_once("config_bd.php");
+      
+      $lien_mysql = mysql_connect($SQL_HOTE, $SQL_LOGIN, $SQL_PASS);
+      if (!$lien_mysql || !mysql_select_db($NOM_BASE))
+      {
+        echo "Connexion à la base de données impossible. Voir le fichier 'php/config_bd.php'";
+        exit();
+      }
 
-mysql_set_charset("UTF8");
-mysql_query('SET AUTOCOMMIT=0');
+      mysql_set_charset("UTF8");
+      mysql_query('SET AUTOCOMMIT=0');
 
-if (isset($_POST['effacer_cookie'])) # le membre se délogue
-{
-   setcookie("COOKIE_INFO_PATICIPANT", "", time() - 100); # 'efface' le cookie membre
-   unset($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"]);
-       unset($log);
-}
+      if (isset($_POST['effacer_cookie'])) # le membre se délogue
+      {
+         setcookie("COOKIE_INFO_PATICIPANT", "", time() - 100); # 'efface' le cookie membre
+         unset($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"]);
+         unset($log);
+      }
 
-if (isset($_POST['log'])) # le membre se logue
-{              
-   $le_participant = new Participant($_POST['pseudo'], $_POST['password']);
-   if ($le_participant->valide)
-   {
-      setcookie ("COOKIE_INFO_PATICIPANT", $le_participant->info->id, time() + 31104000);              
+      if (isset($_POST['log'])) # le membre se logue
+      {                
+         $this->participant = new Participant($_POST['pseudo'], $_POST['password']);
+         if ($this->participant->valide)
+         {
+            setcookie ("COOKIE_INFO_PATICIPANT", $this->participant->info->id, time() + 31104000);             
+         }
+      }
+      else if (isset($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"])) # le cookie existe deja chez le participant
+      {
+         $this->participant = new Participant($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"]);
+      }
+      else
+      {
+         $this->participant = new Participant();
+      }
    }
 }
-else if (isset($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"])) # le cookie existe deja chez le participant
-{
-   $le_participant = new Participant($HTTP_COOKIE_VARS["COOKIE_INFO_PATICIPANT"]);
-}
-else
-{
-       $le_participant = new Participant();
-}
 
 ?>
\ No newline at end of file
index bec8917..5d83bab 100644 (file)
-<?php # coding:utf-8
-/**
-  * Traite les données envoyées par le client.
-  */
-include_once("class_participant.php");
-
-// un message peut être produit par le controlleur
-$message_utilisateur = NULL;
+<?php # coding: utf-8
 
 /**
-  * Traiter les données de l'inscription (trim par exemple).
-  */
-function traiter_donnees_inscription()
+  * Controller traite les données envoyées par le client.
+  */  
+class Controller
 {
-   $_POST['pseudo'] = trim($_POST['pseudo']);
-}
+   private $participant;
+   public $message_utilisateur = NULL;
 
-function login_deja_pris()
-{
-   global $le_participant;
-   global $message_utilisateur;
-   if ($le_participant->valide && strtolower($le_participant->info->pseudo) === strtolower($_POST['pseudo'])) // le pseudo n'a pas changé
-      return FALSE;
-      
-   $loginDejaPris = mysql_fetch_array(mysql_query("SELECT count(*) FROM participants WHERE pseudo = '".addslashes($_POST['pseudo'])."'"));
-   if ($loginDejaPris[0] > 0)
+   function Controller($participant)
    {
-      $message_utilisateur = "Le pseudo '".$_POST["pseudo"]."' est déjà pris";
-      return TRUE;
-   }
-   return FALSE;   
-}
+      $this->participant = $participant;
+   
+      # inscription d'un nouveau participant
+      if (isset($_POST['inscription']) && !Participant::nombre_participant_max_atteint())
+      {                
+         if ($config->get("inscription_terminees"))
+            return;
 
-/**
-  * Renvoie TRUE si les données d'une inscription sont valides (POST).
-  */
-function donnees_inscription_valides()
-{
-   return
-      $_POST['pseudo'] != "" &&
-      $_POST['pass1'] != "" &&
-      $_POST['pass1'] == $_POST['pass2'] &&
-      strlen($_POST['pass1']) >= 3 &&
-      $_POST['nom'] != "" &&
-      $_POST['prenom'] != "" &&
-      $_POST['e_mail'] != "";
-}
+         traiter_donnees_inscription();
+         if (!login_deja_pris() && # vérification des données
+            donnees_inscription_valides() &&
+            $_POST['accord'] == "on"
+         )
+         {
+            mysql_query("BEGIN TRANSACTION");
+            mysql_query("
+               INSERT INTO participants 
+               (pseudo, password, clan_nom, clan_tag, nom, prenom, age, e_mail, remarques)
+               VALUES (
+                  '".addslashes($_POST['pseudo'])."',
+                  '".addslashes($_POST['pass1'])."',
+                  '".addslashes($_POST['clan_nom'])."',
+                  '".addslashes($_POST['clan_tag'])."',
+                  '".addslashes($_POST['nom'])."',
+                  '".addslashes($_POST['prenom'])."',
+                  '".addslashes($_POST['age'])."',
+                  '".addslashes($_POST['e_mail'])."',
+                  '".addslashes($_POST['remarques'])."'
+               )"
+            );
+            $id = mysql_insert_id();
+            set_periodes($id);
+            mysql_query("COMMIT");
+         
+            $this->participant = new participant($_POST['pseudo'], $_POST['pass1']);
+            setcookie("COOKIE_INFO_PATICIPANT", $this->participant->info->id, time() + 31104000);
+            $page = "bienvenue";
+         }
+      }
+      # un participant modifie ses infos
+      else if(isset($_POST['modification_participant']) && $this->participant->valide)
+      {   
+         if ($config->get("inscription_terminees"))
+            return;
 
-/**
-  * Met à jour les periodes du participant dont l'id est donnée
-  * en fonction de $_POST["periodes"]
-  * Attention, cette fonction doit être appelée dans une transaction.
-  */
-function set_periodes($id)
-{
-   $periodes = $_POST['periodes'];
-   if (!$periodes)
-      $periodes = array();
+         traiter_donnees_inscription();
+         if (!login_deja_pris() && donnees_inscription_valides())
+         {
+            mysql_query("BEGIN TRANSACTION");
+            mysql_query("UPDATE participants SET pseudo = '".addslashes($_POST['pseudo'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET password = '".addslashes($_POST['pass1'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET clan_nom = '".addslashes($_POST['clan_nom'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET clan_tag = '".addslashes($_POST['clan_tag'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET nom = '".addslashes($_POST['nom'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET prenom = '".addslashes($_POST['prenom'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET age = '".addslashes($_POST['age'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET e_mail = '".addslashes($_POST['e_mail'])."' WHERE id = " . $this->participant->info->id);
+            mysql_query("UPDATE participants SET remarques = '".addslashes($_POST['remarques'])."' WHERE id = " . $this->participant->info->id);
+            set_periodes($this->participant->info->id);
+            mysql_query("COMMIT");
+            //header("Location: /inscrits.html");
+            $this->message_utilisateur = "Les modifications ont été enregistrées";
+            $page = "inscrits"; // TODO : moche car la page ne va plus correspondre à l'url
+         }
+      }
+      # vote pour des jeux (autorisé même lorsque les inscriptions sont terminées)
+      else if (isset($_POST['set_jeux_joues']) && $this->participant->valide)
+      {
+         $votes = $_POST['votes'];
+         if (!$votes)
+            $votes = array();
+         
+         mysql_query("BEGIN TRANSACTION");
+         
+         # l'utilisateur peut proposer le nom d'un jeu qui ne se trouve pas dans la liste
+         $jeu = trim($_POST['jeu']);
+         if ($jeu !== '')
+         {
+            mysql_query("INSERT INTO jeux (nom) VALUES ('".addslashes($jeu)."')");
+            $id = mysql_insert_id();
+            if ($id != 0) # si le jeu se trouve déjà dans la liste alors $id == 0
+               array_unshift($votes, $id);
+         }
+         
+         # suppression des anciens votes (remplacement par les nouveaux)
+         mysql_query("DELETE FROM jeux_choisis WHERE participant_id = " . $this->participant->info->id);
+
+         # traite les trois premiers votes
+         for ($i = 0; $i < count($votes) && $i < $config->get('nb_votes_jeux'); $i++)
+         {
+            mysql_query("INSERT INTO jeux_choisis (participant_id, jeu_id) VALUES (".$this->participant->info->id.", ".(int)$votes[$i].")");
+         }
+         
+         mysql_query("COMMIT");
+      }
+   }
    
-   mysql_query("DELETE FROM participations WHERE participant_id = " . (int)$id);
-   for ($i = 0; $i < count($periodes); $i++)
+   /**
+     * Traiter les données de l'inscription (trim par exemple).
+     */
+   private function traiter_donnees_inscription()
    {
-      mysql_query("
-         INSERT INTO participations (participant_id, periode_id)
-         VALUES (".$id.", ".(int)$periodes[$i].")
-      ");
+      $_POST['pseudo'] = trim($_POST['pseudo']);
    }
-}
-
-# inscription d'un nouveau participant
-if (isset($_POST['inscription']) && !Participant::nombre_participant_max_atteint())
-{              
-   if ($config->get("inscription_terminees"))
-      return;
 
-   traiter_donnees_inscription();
-   if (!login_deja_pris() && # vérification des données
-      donnees_inscription_valides() &&
-      $_POST['accord'] == "on"
-   )
+   private function login_deja_pris()
    {
-      mysql_query("BEGIN TRANSACTION");
-      mysql_query("
-         INSERT INTO participants 
-         (pseudo, password, clan_nom, clan_tag, nom, prenom, age, e_mail, remarques)
-         VALUES (
-            '".addslashes($_POST['pseudo'])."',
-            '".addslashes($_POST['pass1'])."',
-            '".addslashes($_POST['clan_nom'])."',
-            '".addslashes($_POST['clan_tag'])."',
-            '".addslashes($_POST['nom'])."',
-            '".addslashes($_POST['prenom'])."',
-            '".addslashes($_POST['age'])."',
-            '".addslashes($_POST['e_mail'])."',
-            '".addslashes($_POST['remarques'])."'
-         )"
-      );
-      $id = mysql_insert_id();
-      set_periodes($id);
-      mysql_query("COMMIT");
-   
-      $le_participant = new participant($_POST['pseudo'], $_POST['pass1']);
-      setcookie("COOKIE_INFO_PATICIPANT", $le_participant->info->id, time() + 31104000);
-      $page = "bienvenue";
+      if ($this->participant->valide && strtolower($this->participant->info->pseudo) === strtolower($_POST['pseudo'])) // le pseudo n'a pas changé
+         return FALSE;
+         
+      $loginDejaPris = mysql_fetch_array(mysql_query("SELECT count(*) FROM participants WHERE pseudo = '".addslashes($_POST['pseudo'])."'"));
+      if ($loginDejaPris[0] > 0)
+      {
+         $this->message_utilisateur = "Le pseudo '".$_POST["pseudo"]."' est déjà pris";
+         return TRUE;
+      }
+      return FALSE;   
    }
-}
-# un participant modifie ses infos
-else if(isset($_POST['modification_participant']) && $le_participant->valide)
-{   
-   if ($config->get("inscription_terminees"))
-      return;
 
-   traiter_donnees_inscription();
-   if (!login_deja_pris() && donnees_inscription_valides())
-   {
-      mysql_query("BEGIN TRANSACTION");
-      mysql_query("UPDATE participants SET pseudo = '".addslashes($_POST['pseudo'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET password = '".addslashes($_POST['pass1'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET clan_nom = '".addslashes($_POST['clan_nom'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET clan_tag = '".addslashes($_POST['clan_tag'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET nom = '".addslashes($_POST['nom'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET prenom = '".addslashes($_POST['prenom'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET age = '".addslashes($_POST['age'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET e_mail = '".addslashes($_POST['e_mail'])."' WHERE id = " . $le_participant->info->id);
-      mysql_query("UPDATE participants SET remarques = '".addslashes($_POST['remarques'])."' WHERE id = " . $le_participant->info->id);
-      set_periodes($le_participant->info->id);
-      mysql_query("COMMIT");
-      //header("Location: /inscrits.html");
-      $message_utilisateur = "Les modifications ont été enregistrées";
-      $page = "inscrits"; // TODO : moche car la page ne va plus correspondre à l'url
-   }
-}
-# vote pour des jeux (autorisé même lorsque les inscriptions sont terminées)
-else if (isset($_POST['set_jeux_joues']) && $le_participant->valide)
-{
-   $votes = $_POST['votes'];
-   if (!$votes)
-      $votes = array();
-   
-   mysql_query("BEGIN TRANSACTION");
-   
-   # l'utilisateur peut proposer le nom d'un jeu qui ne se trouve pas dans la liste
-   $jeu = trim($_POST['jeu']);
-   if ($jeu !== '')
+   /**
+     * Renvoie TRUE si les données d'une inscription sont valides (POST).
+     */
+   private function donnees_inscription_valides()
    {
-      mysql_query("INSERT INTO jeux (nom) VALUES ('".addslashes($jeu)."')");
-      $id = mysql_insert_id();
-      if ($id != 0) # si le jeu se trouve déjà dans la liste alors $id == 0
-         array_unshift($votes, $id);
+      return
+         $_POST['pseudo'] != "" &&
+         $_POST['pass1'] != "" &&
+         $_POST['pass1'] == $_POST['pass2'] &&
+         strlen($_POST['pass1']) >= 3 &&
+         $_POST['nom'] != "" &&
+         $_POST['prenom'] != "" &&
+         $_POST['e_mail'] != "";
    }
-   
-   # suppression des anciens votes (remplacement par les nouveaux)
-   mysql_query("DELETE FROM jeux_choisis WHERE participant_id = " . $le_participant->info->id);
 
-   # traite les trois premiers votes
-   for ($i = 0; $i < count($votes) && $i < $config->get('nb_votes_jeux'); $i++)
+   /**
+     * Met à jour les periodes du participant dont l'id est donnée
+     * en fonction de $_POST["periodes"]
+     * Attention, cette fonction doit être appelée dans une transaction.
+     */
+   private function set_periodes($id)
    {
-      mysql_query("INSERT INTO jeux_choisis (participant_id, jeu_id) VALUES (".$le_participant->info->id.", ".(int)$votes[$i].")");
+      $periodes = $_POST['periodes'];
+      if (!$periodes)
+         $periodes = array();
+      
+      mysql_query("DELETE FROM participations WHERE participant_id = " . (int)$id);
+      for ($i = 0; $i < count($periodes); $i++)
+      {
+         mysql_query("
+            INSERT INTO participations (participant_id, periode_id)
+            VALUES (".$id.", ".(int)$periodes[$i].")
+         ");
+      }
    }
-   
-   mysql_query("COMMIT");
 }
+
 ?>
diff --git a/php/menu_droit.php b/php/menu_droit.php
deleted file mode 100644 (file)
index 32800c9..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php # coding:utf-8
-\r
-include_once("traitement_pre_affichage.php");\r
-\r
-
-# selection de tous les participants
-$res_SQL = mysql_query("SELECT pseudo FROM participants ORDER BY id");
-
-echo '<div id="nbParticipants"><em>', mysql_num_rows($res_SQL), '</em> inscrit', (mysql_num_rows($res_SQL) > 1 ? 's' : ''), '</div>';
-
-# affichage des participants
-if (mysql_num_rows($res_SQL) > 0)
-   echo '<ul id="participants">';
-for ($i=0; $i<mysql_num_rows($res_SQL); $i++)
-{
-       mysql_data_seek($res_SQL, $i);
-       $le_participant_pseudo = mysql_fetch_object($res_SQL);
-       echo '<li>', traitement_pre_affichage($le_participant_pseudo->pseudo, 8), '</li>';
-}
-if (mysql_num_rows($res_SQL) > 0)
-   echo '</ul>';
-?>
-
-
-<?php
-if($le_participant->valide)
-{
-   echo'
-   <form method="post" action="index.php?';
-   
-   foreach($HTTP_GET_VARS as $nom => $valeur)
-   echo $nom,'=',$valeur,'&amp;';
-   
-   echo'">
-    <p><input type="hidden" name="effacer_cookie" value="1" /></p>
-    <p><input type="submit" value="logout" /></p>
-   </form>';
-}
-else
-{
-   if (isset($log)) echo '<em>[erreur de loggation]</em>';
-       
-   echo'
-       <form method="post" action="index.php?';
-   
-   foreach($HTTP_GET_VARS as $nom => $valeur)
-   echo $nom,'=',$valeur,'&amp;';
-   
-   echo'">
-   <p>login / pass</p>
-   <p><input type="hidden" name="log" value="1" /></p>
-   <p><input type="text" name="pseudo" size="10" maxlength="30" /></p>
-   <p><input type="password" name="password" size="10" maxlength="10" /></p>
-   <p><input type="submit" value="oki" class="submitInvisible" /></p>
-   </form>
-   ';
-}
-?>
index dc415f0..cfdd1e7 100644 (file)
@@ -6,7 +6,7 @@ if ($config->get("inscription_terminees"))
    return;
 }
 
-if ($le_participant->valide)
+if ($participant->valide)
    echo '<p>Modification de mes infos</p>';
 else
    echo'<p><em>Les personnes inscrites s\'engagent à être présentes à la LAN et à payer la somme convenue.</em></p><p>Elles peuvent se désinscrirent en cas d\'empèchements majeurs.</p>';
@@ -14,7 +14,7 @@ else
 
 <form id="formulaireInscription" method="post" action="inscription.html">
 <?php
-   if($le_participant->valide)
+   if($participant->valide)
                echo '<p><input type="hidden" name="modification_participant" value="1" /></p>';
    else
       echo '<p><input type="hidden" name="inscription" value="1" /></p>';
@@ -29,7 +29,7 @@ else
          pseudo <span class="miniInfo">(login)</span>
       </td>
       <td>
-         <input type="text" maxlength="50" name="pseudo" value="<?=$le_participant->valide ? $le_participant->info->pseudo : $_POST["pseudo"]?>" />
+         <input type="text" maxlength="50" name="pseudo" value="<?=$participant->valide ? $participant->info->pseudo : $_POST["pseudo"]?>" />
       </td>
    </tr>
    <tr>
@@ -37,8 +37,8 @@ else
          password <span class="miniInfo">(pour pouvoir par la suite modifier mes infos)</span>
       </td>
       <td>
-         <input type="password" size="10" maxlength="10" name="pass1" value="<?=$le_participant->valide ? $le_participant->info->password : $_POST["pass1"]?>" />
-         re: <input type="password" maxlength="10" size="10" name="pass2" value="<?=$le_participant->valide ? $le_participant->info->password : $_POST["pass2"]?>" /> 
+         <input type="password" size="10" maxlength="10" name="pass1" value="<?=$participant->valide ? $participant->info->password : $_POST["pass1"]?>" />
+         re: <input type="password" maxlength="10" size="10" name="pass2" value="<?=$participant->valide ? $participant->info->password : $_POST["pass2"]?>" /> 
       </td>
    </tr>
    <tr>
@@ -46,7 +46,7 @@ else
          clan name
       </td>
       <td>
-         <input type="text" maxlength="30" size="15" name="clan_nom" value="<?=$le_participant->valide ? $le_participant->info->clan_nom : $_POST["clan_nom"]?>" /> 
+         <input type="text" maxlength="30" size="15" name="clan_nom" value="<?=$participant->valide ? $participant->info->clan_nom : $_POST["clan_nom"]?>" /> 
          <select id="clanChoix" name="clanChoix" size="1">
             <option value ="0" selected="selected">clans existants</option>
             <?php
@@ -64,7 +64,7 @@ else
          clan tag
       </td>
       <td>
-         <input type="text" maxlength="10" name="clan_tag" value="<?=$le_participant->valide ? $le_participant->info->clan_tag : $_POST['clan_tag']?>" /> 
+         <input type="text" maxlength="10" name="clan_tag" value="<?=$participant->valide ? $participant->info->clan_tag : $_POST['clan_tag']?>" /> 
       </td>
    </tr> 
    <tr>
@@ -72,7 +72,7 @@ else
          nom
       </td>
       <td>
-         <input type="text" maxlength="30" name="nom" value="<?=$le_participant->valide ? $le_participant->info->nom : $_POST['nom']?>" />
+         <input type="text" maxlength="30" name="nom" value="<?=$participant->valide ? $participant->info->nom : $_POST['nom']?>" />
       </td>
    </tr>
    <tr>
@@ -80,7 +80,7 @@ else
          prénom
       </td>
       <td>
-         <input type="text" maxlength="30" name="prenom" value="<?=$le_participant->valide ? $le_participant->info->prenom : $_POST['prenom']?>" />
+         <input type="text" maxlength="30" name="prenom" value="<?=$participant->valide ? $participant->info->prenom : $_POST['prenom']?>" />
       </td>
    </tr>
    <tr>
@@ -88,7 +88,7 @@ else
          age
       </td>
       <td>
-         <input type="text" maxlength="30" name="age" value="<?=$le_participant->valide ? $le_participant->info->age : $_POST['age']?>" />
+         <input type="text" maxlength="30" name="age" value="<?=$participant->valide ? $participant->info->age : $_POST['age']?>" />
       </td>
    </tr>
    <tr>
@@ -96,7 +96,7 @@ else
          email <span class="miniInfo">(non-public)</span>
       </td>
       <td>
-         <input type="text" maxlength="30" name="e_mail" value="<?=$le_participant->valide ? $le_participant->info->e_mail : $_POST['e_mail']?>" />
+         <input type="text" maxlength="30" name="e_mail" value="<?=$participant->valide ? $participant->info->e_mail : $_POST['e_mail']?>" />
       </td>
    </tr>
    <tr>
@@ -109,12 +109,12 @@ else
                SELECT periodes.id, periodes.nom, participations.participant_id
                FROM periodes
                LEFT JOIN participations ON periodes.id = participations.periode_id
-                  AND participations.participant_id = ".($le_participant->valide ? $le_participant->info->id : "0")."
+                  AND participations.participant_id = ".($participant->valide ? $participant->info->id : "0")."
                ORDER BY periodes.id
             ");
             while($periode = mysql_fetch_object($res))
             {
-               echo '<p><input name="periodes[]" value="'.$periode->id.'" '.((!$le_participant->valide && (!$_POST['periodes'] || in_array($periode->id, $_POST['periodes']))) || $periode->participant_id ? 'checked="checked"' : '').' id="periode'.$periode->id.'" type="checkbox" /><label for="periode'.$periode->id.'" />'.$periode->nom.'</label></p>';
+               echo '<p><input name="periodes[]" value="'.$periode->id.'" '.((!$participant->valide && (!$_POST['periodes'] || in_array($periode->id, $_POST['periodes']))) || $periode->participant_id ? 'checked="checked"' : '').' id="periode'.$periode->id.'" type="checkbox" /><label for="periode'.$periode->id.'" />'.$periode->nom.'</label></p>';
             }
          ?>
       </td>
@@ -132,11 +132,11 @@ else
          remarques
       </td>
       <td>
-         <textarea cols="30" rows="5" name="remarques"><?=$le_participant->valide ? $le_participant->info->remarques : $_POST['remarques']?></textarea>
+         <textarea cols="30" rows="5" name="remarques"><?=$participant->valide ? $participant->info->remarques : $_POST['remarques']?></textarea>
       </td>
    </tr>
    <?php
-      if (!$le_participant->valide)
+      if (!$participant->valide)
       echo'
          <tr>
             <td>
index 135f57d..6bf932d 100644 (file)
@@ -2,7 +2,7 @@
 \r
 include_once("php/traitement_pre_affichage.php");\r
 \r
-if (!$le_participant->valide)\r
+if (!$participant->valide)\r
 {\r
    echo '<p><em>Remarque : </em>Il faut être inscrit pour pouvoir voter.</p>';\r
 }\r
@@ -12,7 +12,7 @@ echo '
 <form id="formulaireJeuxJoues" method="post" action="index.php?page=jeux_joues">\r
    <p><input type="hidden" name="set_jeux_joues" value="1" /></p>\r
    <table>\r
-      <tr>', ($le_participant->valide ? '<th></th>' : ''), '<th>Votes</th><th>Jeux</th></tr>';\r
+      <tr>', ($participant->valide ? '<th></th>' : ''), '<th>Votes</th><th>Jeux</th></tr>';\r
 \r
 $jeux_query = mysql_query("\r
    SELECT jeux.id, jeux.nom, jeux_choisis.participant_id, COUNT(*) + IF(participant_id is not null, 1, 0) - 1 AS nb_vote\r
@@ -24,18 +24,18 @@ $jeux_query = mysql_query("
 while ($jeu = mysql_fetch_object($jeux_query))\r
 {\r
    # est-ce que le participant courant à voté pour ce jeu ?\r
-   if ($le_participant->valide)\r
+   if ($participant->valide)\r
    {\r
       $a_vote = mysql_fetch_row(mysql_query("\r
          SELECT COUNT(*) FROM jeux_choisis\r
-         WHERE participant_id = ".$le_participant->info->id." AND jeu_id = ".$jeu->id\r
+         WHERE participant_id = ".$participant->info->id." AND jeu_id = ".$jeu->id\r
       )); $a_vote = $a_vote[0];\r
    }\r
    else\r
       $a_vote = FALSE;\r
    \r
    echo '<tr>',\r
-      $le_participant->valide ? '<td><input type="checkbox" name="votes[]" '. ($a_vote ? 'checked="checked"' : '') .' value="'.$jeu->id.'" /></td>' : '',\r
+      $participant->valide ? '<td><input type="checkbox" name="votes[]" '. ($a_vote ? 'checked="checked"' : '') .' value="'.$jeu->id.'" /></td>' : '',\r
       '<td>' . $jeu->nb_vote . '</td>',\r
       '<td ' . ($a_vote ? 'class="aVote" ': '').'>' . traitement_pre_affichage($jeu->nom) . '</td></tr>';\r
 }\r
@@ -43,7 +43,7 @@ while ($jeu = mysql_fetch_object($jeux_query))
 echo '\r
    </table>';\r
 \r
-if ($le_participant->valide)\r
+if ($participant->valide)\r
    echo '\r
    <p>Autre : <input type="text" maxlength="50" name="jeu" /></p>\r
    <p><input type="submit" value="Voter" /></p>';\r
@@ -51,7 +51,7 @@ if ($le_participant->valide)
 echo '</form>';\r
 \r
 # affichage du nombre de vote restant\r
-if ($le_participant->valide)\r
-   echo '<p>Nombre de votes restant : ' . $le_participant->nb_vote_restant() . '</p>';\r
+if ($participant->valide)\r
+   echo '<p>Nombre de votes restant : ' . $participant->nb_vote_restant() . '</p>';\r
 \r
 ?>
\ No newline at end of file
diff --git a/php/pages/pizzas.php b/php/pages/pizzas.php
new file mode 100644 (file)
index 0000000..be856bd
--- /dev/null
@@ -0,0 +1,181 @@
+<?php # coding:utf-8\r
+// Gestion de commande de pizza\r
+// Auteur: KiKi\r
+\r
+function selection_pizzas()\r
+{\r
+   global $config;\r
+   global $participant;\r
+   $requ = mysql_query("select * from pizzas order by nom");\r
+   echo '<h1>commande de pizza</h1>';\r
+   \r
+   if ($config->get('pizza_peut_commander'))\r
+   {\r
+      if ($participant->info->pizza != null)\r
+         echo '<br>Vous avez deja commandé une pizza ! mais vous pouvez encore changez votre choix:';\r
+         \r
+      echo '<form name="commande" method="post" action="index.php?page=pizzas">';\r
+      echo '<table width ="100%" border="0" cellpadding="1" cellspacing="3">';\r
+      echo '<tr><td class="pizzaHeader"></td><td class="pizzaHeader">Nom</td><td class="pizzaHeader">Composition</td><td class="pizzaHeader">Prix</td></tr>';\r
+      echo '<tr><td><input type="radio" name="piz_choisie" value="-1" ', ($participant->info->pizza==null?'checked':''), '></td><td class="texte">', ($participant->info->pizza==null?'<b>':''), 'Aucune', ($participant->info->pizza==null?'</b>':''), '</td><td></td><td></td></tr>';\r
+      while($pizza = mysql_fetch_object($requ))\r
+         echo '<tr><td width="1" ',($participant->info->pizza==$pizza->id?'class="pizzaChoisie"':''),'><input type="radio" id="pizza_', $pizza->id ,'" name="piz_choisie" value="', $pizza->id, '"',($participant->info->pizza==$pizza->id?'checked':''), '></td><td class="',($participant->info->pizza==$pizza->id?'pizzaChoisie ':''),'texte"><label for="pizza_', $pizza->id ,'">', $pizza->nom, '</label></td><td class="',($participant->info->pizza==$pizza->id?'pizzaChoisie ':''),'texte"><label for="pizza_', $pizza->id ,'">', $pizza->composition, '</label></td><td class="',($participant->info->pizza==$pizza->id?'pizzaChoisie ':''),'texte"><label for="pizza_', $pizza->id ,'">', $pizza->prix, '.-</label></td></tr>';\r
+      echo '</table><br><input type="submit" value="Commander"></form>';\r
+   }\r
+   else\r
+      if ($participant->info->pizza != null)\r
+         echo '<br><br>votre pizza ', pizza($participant->info->pizza), ' va bientot arriver';\r
+      else\r
+         echo "<br><br>la commande de pizza est terminée, veuillez attendre la prochaine vague<br><br>";\r
+}\r
+\r
+// Affiche les statistique sur les pizza\r
+function stats()\r
+{\r
+   $requ_pizza = mysql_query("select * from pizzas order by nom");\r
+   $requ_participant = mysql_query("select * from participants");\r
+   $nb = array();\r
+   $nb_tot = 0;\r
+   $total = 0;\r
+   $nb_pizza = mysql_fetch_row(mysql_query("select count(*) from pizzas"));\r
+   \r
+   // Initialise le tableau de comptage\r
+   for ($i=0; $i < ($nb_pizza[0] + 3); $i++)  // on fait un '+3' parce que on ne sais jamais trop ce qui pourrait se passer ;-))\r
+      $nb[$i] = 0;\r
+     \r
+   // Rempli le tableau de nombre de pizzas\r
+   while ($participant = mysql_fetch_object($requ_participant))\r
+      if ($participant->pizza != null)\r
+          $nb[$participant->pizza]++;\r
+      \r
+   echo '<h1>total des commandes</h1>'; \r
+   echo '<table width="100%" border="0" cellpadding="1" cellspacing="3">';\r
+   echo '<tr><td class="pizzaHeader">Nom</td><td class="pizzaHeader">Nombre</td><td class="pizzaHeader">Prix unitaire</td><td class="pizzaHeader">Prix total</td></tr>';   \r
+      \r
+   while($pizza = mysql_fetch_object($requ_pizza))\r
+   {\r
+      if ($nb[$pizza->id] == 0)\r
+         continue;      \r
+\r
+      echo '<tr><td class="texte">' . $pizza->nom . '</td><td class="texte">' . $nb[$pizza->id] . '</td><td class="texte">' . $pizza->prix . '.-</td><td class="texte">' . $nb[$pizza->id] * $pizza->prix . '.-</td></tr>';\r
+       $total += $nb[$pizza->id] * $pizza->prix;\r
+       $nb_tot += $nb[$pizza->id];\r
+   }\r
+   echo '<tr><td class="pizzaHeader">TOTAL</td><td class="texte pizzaHeader"><b>', $nb_tot, '</b></td><td class="pizzaHeader"></td><td class="texte pizzaHeader"><b>', $total, '.-</b></td></tr></table>';   \r
+}\r
+\r
+// Retourne le nom de la pizza en fonction de son ID\r
+function pizza ($id)\r
+{\r
+   $requ = mysql_query("select * from pizzas where id = " . $id);\r
+   if ($pizza = mysql_fetch_object($requ))\r
+      return $pizza->nom;\r
+   else\r
+      return 'Pizza inexistante !';\r
+}\r
+\r
+\r
+// Affiche qui prends koi\r
+function kiakoi()\r
+{\r
+   global $participant;\r
+   $requ = mysql_query("select * from participants order by nom");\r
+   \r
+   \r
+   echo '<h1>qui prend quoi</h1>';\r
+   echo '<table width="100%" border="0" cellpadding="1" cellspacing="3">';\r
+   echo '<tr><td class="pizzaHeader">Pseudo</td><td class="pizzaHeader">Nom</td><td class="pizzaHeader">Prix</td><td class="pizzaHeader">Paiement</td></tr>';\r
+   \r
+   while ($participant = mysql_fetch_object($requ))\r
+   {\r
+      if ($participant->pizza != null)\r
+      {\r
+         $pizza = mysql_fetch_object(mysql_query("select * from pizzas where id = " . $participant->pizza));\r
+         echo '<tr><td class="texte">', $participant->pseudo ,'</td><td class="texte">', $pizza->nom, '</td><td class="texte">', $pizza->prix, '.-</td><td class="texte">', ($participant->info->admin?'<a href="?page=pizzas&stats=1&paye=' . $participant->id . '">':''), ($participant->pizza_paye?'payé':'non payé !'), ($participant->info->admin?'</a>':'') ,'</td></tr>';\r
+      }\r
+      else\r
+         echo '<tr><td class="texte">', $participant->pseudo ,'</td><td class="texte">-</td><td class="texte">-</td><td class="texte">', '-</td></tr>';\r
+   }\r
+   echo '</table>';  \r
+   \r
+}\r
+\r
+function liens()\r
+{\r
+   global $participant;\r
+   \r
+   $res = '';\r
+   if (!isset($_GET['stats']))\r
+      $res .= '<br><a href="/pizzas.html&stats=1">voir les stats globaux</a>';\r
+      \r
+ //  if ($participant->info->admin && !isset($kiakoi))\r
+ //     $res .= '<br><a href="?page=pizzas&kiakoi=1">qui prend quoi</a>';\r
+      \r
+   if ($participant->info->admin)\r
+      $res .= '<br><br><a href="?page=pizzas' . (isset($_GET['stats'])?'&stats=1':'') . (isset($_GET['kiakoi'])?'&kiakoi=1':'') . '&reset=1">remise a zero de toutes les commandes</a>';\r
+   \r
+   return $res;\r
+}\r
+\r
+\r
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+echo '<div id="pizzas">';\r
+if ($participant->valide) // le participant est loggé\r
+{\r
+   // Si demande d'effacer les commande et que le gars est admin, le fait\r
+   if(isset($_GET['reset']) && $participant->info->admin)\r
+   {\r
+      mysql_query("update participants set pizza = null, pizza_paye = 0");\r
+      $participant->info->pizza = -1; //mettre a jour le participants courant pour la beaute de l'affichage\r
+   }\r
+      \r
+   if(isset($_GET['paye']) && $participant->info->admin)\r
+   {  \r
+      /////// methode d'inversion\r
+      // $gars = mysql_fetch_object(mysql_query("select * from participants where id = " . $paye));\r
+      // mysql_query("update participants set pizza_paye = " . (1 - $gars->pizza_paye) . " where id = " . $paye);\r
+      ///////\r
+      \r
+      /////// methode d'un unique changement : non-paye -> paye\r
+      mysql_query("update participants set pizza_paye = 1 where id = " . $_GET['paye']);\r
+      ///////\r
+   }\r
+      \r
+      \r
+   if (!isset($_GET['stats']) && !isset($_GET['kiakoi']))\r
+   {\r
+      if (isset($_POST['piz_choisie'])) // la pizza a ete choisie\r
+      {\r
+         if ($piz_choisie != -1) // La pizza est validei\r
+         {\r
+            echo 'une '. pizza($_POST['piz_choisie']) . ' commandée !<br>';\r
+            $pizza_id = $_POST['piz_choisie'];\r
+         }\r
+         else\r
+         {\r
+            echo 'Aucune pizza commandée !'; // la pizza est '-1' donc pas de pizza commandée         \r
+            $pizza_id = "NULL";\r
+         }\r
+         mysql_query("update participants set pizza = " . $pizza_id . " where id = " . $participant->info->id);\r
+      }\r
+      else\r
+         selection_pizzas();\r
+   }\r
+   \r
+   if (isset($_GET['stats']))\r
+   {      \r
+      kiakoi();\r
+      echo '<br>';\r
+      stats();\r
+   }\r
+\r
+   echo liens();\r
+}\r
+else // le participant n'est pas loggé\r
+{\r
+   echo '<span class ="texte">Vous devez vous loggé pour commander une pizza</span>';\r
+}\r
+echo '</div>';\r
+?>\r
diff --git a/php/panel.php b/php/panel.php
new file mode 100644 (file)
index 0000000..21c2fa4
--- /dev/null
@@ -0,0 +1,71 @@
+<?php # coding:utf-8
+\r
+include_once("traitement_pre_affichage.php");\r
+\r
+/**\r
+  * Représente le panel latéral contenant la liste des inscrits,\r
+  * la boite de login et d'autres informations.\r
+  */\r
+class Panel\r
+{\r
+   private $participant;\r
+\r
+   function Panel($participant)\r
+   {\r
+      $this->participant;\r
+   }\r
+\r
+   function rendre()\r
+   {
+      # selection de tous les participants
+      $res_SQL = mysql_query("SELECT pseudo FROM participants ORDER BY id");
+
+      echo '<div id="nbParticipants"><em>', mysql_num_rows($res_SQL), '</em> inscrit', (mysql_num_rows($res_SQL) > 1 ? 's' : ''), '</div>';
+
+      # affichage des participants
+      if (mysql_num_rows($res_SQL) > 0)
+         echo '<ul id="participants">';
+      for ($i=0; $i<mysql_num_rows($res_SQL); $i++)
+      {
+         mysql_data_seek($res_SQL, $i);
+         $le_participant_pseudo = mysql_fetch_object($res_SQL);
+         echo '<li>', traitement_pre_affichage($le_participant_pseudo->pseudo, 8), '</li>';
+      }
+      if (mysql_num_rows($res_SQL) > 0)
+         echo '</ul>';
+
+      if($this->participant->valide)
+      {
+         echo'
+         <form method="post" action="index.php?';
+         
+         foreach($HTTP_GET_VARS as $nom => $valeur)
+         echo $nom,'=',$valeur,'&amp;';
+         
+         echo'">
+          <p><input type="hidden" name="effacer_cookie" value="1" /></p>
+          <p><input type="submit" value="logout" /></p>
+         </form>';
+      }
+      else
+      {
+         if (isset($log)) echo '<em>[erreur de loggation]</em>';
+         
+         echo'
+         <form method="post" action="index.php?';
+         
+         foreach($HTTP_GET_VARS as $nom => $valeur)
+         echo $nom,'=',$valeur,'&amp;';
+         
+         echo'">
+         <p>login / pass</p>
+         <p><input type="hidden" name="log" value="1" /></p>
+         <p><input type="text" name="pseudo" size="10" maxlength="30" /></p>
+         <p><input type="password" name="password" size="10" maxlength="10" /></p>
+         <p><input type="submit" value="oki" class="submitInvisible" /></p>
+         </form>
+         ';
+      }\r
+   }\r
+}
+?>
diff --git a/php/participant.php b/php/participant.php
new file mode 100644 (file)
index 0000000..f7f1acf
--- /dev/null
@@ -0,0 +1,83 @@
+<?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
diff --git a/php/pizzas.php b/php/pizzas.php
deleted file mode 100644 (file)
index ce43dd2..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php # coding:utf-8\r
-// Gestion de commande de pizza\r
-// Auteur: KiKi\r
-\r
-function selection_pizzas()\r
-{\r
-   global $config;\r
-   global $le_participant;\r
-   $requ = mysql_query("select * from pizzas order by nom");\r
-   echo '<h1>commande de pizza</h1>';\r
-   \r
-   if ($config->get('pizza_peut_commander'))\r
-   {\r
-      if ($le_participant->info->pizza != null)\r
-         echo '<br>Vous avez deja commandé une pizza ! mais vous pouvez encore changez votre choix:';\r
-         \r
-      echo '<form name="commande" method="post" action="index.php?page=pizzas">';\r
-      echo '<table width ="100%" border="0" cellpadding="1" cellspacing="3">';\r
-      echo '<tr><td class="pizzaHeader"></td><td class="pizzaHeader">Nom</td><td class="pizzaHeader">Composition</td><td class="pizzaHeader">Prix</td></tr>';\r
-      echo '<tr><td><input type="radio" name="piz_choisie" value="-1" ', ($le_participant->info->pizza==null?'checked':''), '></td><td class="texte">', ($le_participant->info->pizza==null?'<b>':''), 'Aucune', ($le_participant->info->pizza==null?'</b>':''), '</td><td></td><td></td></tr>';\r
-      while($pizza = mysql_fetch_object($requ))\r
-         echo '<tr><td width="1" ',($le_participant->info->pizza==$pizza->id?'class="pizzaChoisie"':''),'><input type="radio" id="pizza_', $pizza->id ,'" name="piz_choisie" value="', $pizza->id, '"',($le_participant->info->pizza==$pizza->id?'checked':''), '></td><td class="',($le_participant->info->pizza==$pizza->id?'pizzaChoisie ':''),'texte"><label for="pizza_', $pizza->id ,'">', $pizza->nom, '</label></td><td class="',($le_participant->info->pizza==$pizza->id?'pizzaChoisie ':''),'texte"><label for="pizza_', $pizza->id ,'">', $pizza->composition, '</label></td><td class="',($le_participant->info->pizza==$pizza->id?'pizzaChoisie ':''),'texte"><label for="pizza_', $pizza->id ,'">', $pizza->prix, '.-</label></td></tr>';\r
-      echo '</table><br><input type="submit" value="Commander"></form>';\r
-   }\r
-   else\r
-      if ($le_participant->info->pizza != null)\r
-         echo '<br><br>votre pizza ', pizza($le_participant->info->pizza), ' va bientot arriver';\r
-      else\r
-         echo "<br><br>la commande de pizza est terminée, veuillez attendre la prochaine vague<br><br>";\r
-}\r
-\r
-// Affiche les statistique sur les pizza\r
-function stats()\r
-{\r
-   $requ_pizza = mysql_query("select * from pizzas order by nom");\r
-   $requ_participant = mysql_query("select * from participants");\r
-   $nb = array();\r
-   $nb_tot = 0;\r
-   $total = 0;\r
-   $nb_pizza = mysql_fetch_row(mysql_query("select count(*) from pizzas"));\r
-   \r
-   // Initialise le tableau de comptage\r
-   for ($i=0; $i < ($nb_pizza[0] + 3); $i++)  // on fait un '+3' parce que on ne sais jamais trop ce qui pourrait se passer ;-))\r
-      $nb[$i] = 0;\r
-     \r
-   // Rempli le tableau de nombre de pizzas\r
-   while ($participant = mysql_fetch_object($requ_participant))\r
-      if ($participant->pizza != null)\r
-          $nb[$participant->pizza]++;\r
-      \r
-   echo '<h1>total des commandes</h1>'; \r
-   echo '<table width="100%" border="0" cellpadding="1" cellspacing="3">';\r
-   echo '<tr><td class="pizzaHeader">Nom</td><td class="pizzaHeader">Nombre</td><td class="pizzaHeader">Prix unitaire</td><td class="pizzaHeader">Prix total</td></tr>';   \r
-      \r
-   while($pizza = mysql_fetch_object($requ_pizza))\r
-   {\r
-      if ($nb[$pizza->id] == 0)\r
-         continue;      \r
-\r
-      echo '<tr><td class="texte">' . $pizza->nom . '</td><td class="texte">' . $nb[$pizza->id] . '</td><td class="texte">' . $pizza->prix . '.-</td><td class="texte">' . $nb[$pizza->id] * $pizza->prix . '.-</td></tr>';\r
-       $total += $nb[$pizza->id] * $pizza->prix;\r
-       $nb_tot += $nb[$pizza->id];\r
-   }\r
-   echo '<tr><td class="pizzaHeader">TOTAL</td><td class="texte pizzaHeader"><b>', $nb_tot, '</b></td><td class="pizzaHeader"></td><td class="texte pizzaHeader"><b>', $total, '.-</b></td></tr></table>';   \r
-}\r
-\r
-// Retourne le nom de la pizza en fonction de son ID\r
-function pizza ($id)\r
-{\r
-   $requ = mysql_query("select * from pizzas where id = " . $id);\r
-   if ($pizza = mysql_fetch_object($requ))\r
-      return $pizza->nom;\r
-   else\r
-      return 'Pizza inexistante !';\r
-}\r
-\r
-\r
-// Affiche qui prends koi\r
-function kiakoi()\r
-{\r
-   global $le_participant;\r
-   $requ = mysql_query("select * from participants order by nom");\r
-   \r
-   \r
-   echo '<h1>qui prend quoi</h1>';\r
-   echo '<table width="100%" border="0" cellpadding="1" cellspacing="3">';\r
-   echo '<tr><td class="pizzaHeader">Pseudo</td><td class="pizzaHeader">Nom</td><td class="pizzaHeader">Prix</td><td class="pizzaHeader">Paiement</td></tr>';\r
-   \r
-   while ($participant = mysql_fetch_object($requ))\r
-   {\r
-      if ($participant->pizza != null)\r
-      {\r
-         $pizza = mysql_fetch_object(mysql_query("select * from pizzas where id = " . $participant->pizza));\r
-         echo '<tr><td class="texte">', $participant->pseudo ,'</td><td class="texte">', $pizza->nom, '</td><td class="texte">', $pizza->prix, '.-</td><td class="texte">', ($le_participant->info->admin?'<a href="?page=pizzas&stats=1&paye=' . $participant->id . '">':''), ($participant->pizza_paye?'payé':'non payé !'), ($le_participant->info->admin?'</a>':'') ,'</td></tr>';\r
-      }\r
-      else\r
-         echo '<tr><td class="texte">', $participant->pseudo ,'</td><td class="texte">-</td><td class="texte">-</td><td class="texte">', '-</td></tr>';\r
-   }\r
-   echo '</table>';  \r
-   \r
-}\r
-\r
-function liens()\r
-{\r
-   global $le_participant;\r
-   \r
-   $res = '';\r
-   if (!isset($_GET['stats']))\r
-      $res .= '<br><a href="/pizzas.html&stats=1">voir les stats globaux</a>';\r
-      \r
- //  if ($le_participant->info->admin && !isset($kiakoi))\r
- //     $res .= '<br><a href="?page=pizzas&kiakoi=1">qui prend quoi</a>';\r
-      \r
-   if ($le_participant->info->admin)\r
-      $res .= '<br><br><a href="?page=pizzas' . (isset($_GET['stats'])?'&stats=1':'') . (isset($_GET['kiakoi'])?'&kiakoi=1':'') . '&reset=1">remise a zero de toutes les commandes</a>';\r
-   \r
-   return $res;\r
-}\r
-\r
-\r
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-echo '<div id="pizzas">';\r
-if ($le_participant->valide) // le participant est loggé\r
-{\r
-   // Si demande d'effacer les commande et que le gars est admin, le fait\r
-   if(isset($_GET['reset']) && $le_participant->info->admin)\r
-   {\r
-      mysql_query("update participants set pizza = null, pizza_paye = 0");\r
-      $le_participant->info->pizza = -1; //mettre a jour le participants courant pour la beaute de l'affichage\r
-   }\r
-      \r
-   if(isset($_GET['paye']) && $le_participant->info->admin)\r
-   {  \r
-      /////// methode d'inversion\r
-      // $gars = mysql_fetch_object(mysql_query("select * from participants where id = " . $paye));\r
-      // mysql_query("update participants set pizza_paye = " . (1 - $gars->pizza_paye) . " where id = " . $paye);\r
-      ///////\r
-      \r
-      /////// methode d'un unique changement : non-paye -> paye\r
-      mysql_query("update participants set pizza_paye = 1 where id = " . $_GET['paye']);\r
-      ///////\r
-   }\r
-      \r
-      \r
-   if (!isset($_GET['stats']) && !isset($_GET['kiakoi']))\r
-   {\r
-      if (isset($_POST['piz_choisie'])) // la pizza a ete choisie\r
-      {\r
-         if ($piz_choisie != -1) // La pizza est validei\r
-         {\r
-            echo 'une '. pizza($_POST['piz_choisie']) . ' commandée !<br>';\r
-            $pizza_id = $_POST['piz_choisie'];\r
-         }\r
-         else\r
-         {\r
-            echo 'Aucune pizza commandée !'; // la pizza est '-1' donc pas de pizza commandée         \r
-            $pizza_id = "NULL";\r
-         }\r
-         mysql_query("update participants set pizza = " . $pizza_id . " where id = " . $le_participant->info->id);\r
-      }\r
-      else\r
-         selection_pizzas();\r
-   }\r
-   \r
-   if (isset($_GET['stats']))\r
-   {      \r
-      kiakoi();\r
-      echo '<br>';\r
-      stats();\r
-   }\r
-\r
-   echo liens();\r
-}\r
-else // le participant n'est pas loggé\r
-{\r
-   echo '<span class ="texte">Vous devez vous loggé pour commander une pizza</span>';\r
-}\r
-echo '</div>';\r
-?>\r