ADD informations concernant les jours pendant lesquels les participants sont présent...
authorgburri <gburri@4c3d3983-c6fa-4c6c-9935-18c3bbef1bf0>
Mon, 29 Sep 2008 21:50:14 +0000 (21:50 +0000)
committergburri <gburri@4c3d3983-c6fa-4c6c-9935-18c3bbef1bf0>
Mon, 29 Sep 2008 21:50:14 +0000 (21:50 +0000)
git-svn-id: svn://localhost/cl7/trunk@5 4c3d3983-c6fa-4c6c-9935-18c3bbef1bf0

css/style.css
index.php
js/cl7.js
php/config.php
php/connexion.php
php/controller.php
php/tx_inscription.php
php/update_db.php

index 5db7678..eefd885 100644 (file)
@@ -126,10 +126,13 @@ ul#menu {
 #contenu col#inscriptionColonneValeur {
    width: 70%;
 }\r
-\r
 #contenu #formulaireJeuxJoues .aVote {\r
    color: #ffff00;\r
-}\r
+}
+#contenu #formulaireInscription p {
+       margin-top: 1px;
+       margin-bottom: 0px;
+}
 
 #informations {
    margin: 5px;
index 6d614a3..d8467fa 100644 (file)
--- a/index.php
+++ b/index.php
@@ -34,6 +34,9 @@ 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
+      if ($message_utilisateur) echo '<meta name="messageUtilisateur" content="'.$message_utilisateur.'" />';
+   ?>
    <title>Corcelles-Lan 7</title>\r
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" ></link>\r
    <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
index 10b1c52..d482fdc 100644 (file)
--- a/js/cl7.js
+++ b/js/cl7.js
@@ -41,32 +41,54 @@ cl7.verification_formulaire_inscription = function(util) {
       return false;\r
    }
    return true;
-}
+};
+
+cl7.maj_prix_inscription = function() {
+   var nbPeriodes = $('#formulaireInscription input[name="periodes[]"]:checked').length;
+   var prix = 5;
+   if (nbPeriodes === 3) {
+      prix = 40;
+   } else if (nbPeriodes != 0) {
+      prix = 15 * nbPeriodes;
+   }
+   $('#formulaireInscription span#prix').html(prix.toString());   
+};
   
 $(document).ready(
    function() { 
       var util = new cl7.Util();
       $('form#formulaireInscription').submit(function() {
          return cl7.verification_formulaire_inscription(util);
-      });\r
-      \r
+      });
+      
+      var messageUtilisateur = $('meta[name="messageUtilisateur"]').attr('content');
+      if (messageUtilisateur !== undefined) {
+         util.messageDialogue(messageUtilisateur);
+      }
+         \r
       $('form#formulaireInscription select[name="clanChoix"]').change(function() {         \r
          if ($(this).val() === '0') {\r
             return;\r
          }\r
          $clan = $(this).val().split(';');\r
-         $('form#formulaireInscription input[name="clan_nom"]').val($clan [0]);\r
-         $('form#formulaireInscription input[name="clan_tag"]').val($clan [1]);\r
+         $('form#formulaireInscription input[name="clan_nom"]').val($clan[0]);\r
+         $('form#formulaireInscription input[name="clan_tag"]').val($clan[1]);\r
       });\r
       \r
-      // inscrit les emails codés (page contact)\r
-      $('a#contactPifou').attr('href', util.rot13('znvygb:tert.oheev@tznvy.pbz'))
-      $('a#contactLePiaf').attr('href', util.rot13('znvygb:tyrcvns695@zfa.pbz'))\r
+      // inscrit les emails codés (page contacts)\r
+      $('a#contactPifou').attr('href', util.rot13('znvygb:tert.oheev@tznvy.pbz'));
+      $('a#contactLePiaf').attr('href', util.rot13('znvygb:tyrcvns695@zfa.pbz'));
+      
+      $('#formulaireInscription input[name="periodes[]"]').change(function() {
+         cl7.maj_prix_inscription();         
+      });
+      // met à jour le prix d'inscription
+      cl7.maj_prix_inscription();\r
       \r
       // permet d'éviter de faire plus de choix qu'il n'en faut sur la page des jeux joués\r
       var nbVotesMax = 3;\r
       var coches = [];\r
-      $('#formulaireJeuxJoues input:checked').each(function() {\r
+      $('#formulaireJeuxJoues input[name="votes[]"]:checked').each(function() {\r
          coches.unshift(parseInt($(this).attr("value")));\r
       });\r
       $('#formulaireJeuxJoues input[name="votes[]"]').change(function() {\r
index ffc342a..220da45 100644 (file)
@@ -8,6 +8,9 @@ $SQL_HOTE = "localhost";
 $SQL_LOGIN = "cl7";\r
 $SQL_PASS = "123soleil";\r
 $NOM_BASE = "corcelles_lan7";\r
+
+$COUT_PERIODE = 15;
+$COUT_TOTAL = 40;
 \r
 # nombre maximum de participant\r
 $NB_MAX_PARTICIPANT = 25;\r
index 6b5e26c..6f0ea85 100644 (file)
@@ -14,14 +14,14 @@ 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
+   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($pseudo, $password);
+   $le_participant = new Participant($_POST['pseudo'], $_POST['password']);
    if ($le_participant->valide)
    {
       setcookie ("COOKIE_INFO_PATICIPANT", $le_participant->info->id, time() + 31104000);              
index ff47132..75a4668 100644 (file)
@@ -3,6 +3,33 @@
   * Traite les données envoyées par le client.\r
   */\r
 include_once("class_participant.php");
+
+// un message peut être produit par le controlleur
+$message_utilisateur = NULL;
+
+/**
+  * Traiter les données de l'inscription (trim par exemple).
+  */
+function traiter_donnees_inscription()
+{
+   $_POST['pseudo'] = trim($_POST['pseudo']);
+}
+
+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)
+   {
+      $message_utilisateur = "Le pseudo '".$_POST["pseudo"]."' est déjà pris";
+      return TRUE;
+   }
+   return FALSE;   
+}
 \r
 /**\r
   * Renvoie TRUE si les données d'une inscription sont valides (POST).\r
@@ -17,13 +44,34 @@ function donnees_inscription_valides()
       $_POST['nom'] != "" &&\r
       $_POST['prenom'] != "" &&\r
       $_POST['e_mail'] != "";\r
+}
+
+/**
+  * 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();
+   
+   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].")
+      ");
+   }
 }\r
 \r
-# insciption d'un nouveau participant
+# inscription d'un nouveau participant
 if (isset($_POST['inscription']) && !Participant::nombre_participant_max_atteint())
-{              \r
-   # vérification des données\r
-   if (\r
+{              
+   traiter_donnees_inscription();
+   if (!login_deja_pris() && # vérification des données\r
       donnees_inscription_valides() &&\r
       $_POST['accord'] == "on"\r
    )\r
@@ -43,17 +91,21 @@ if (isset($_POST['inscription']) && !Participant::nombre_participant_max_atteint
             '".addslashes($_POST['e_mail'])."',\r
             '".addslashes($_POST['remarques'])."'\r
          )"\r
-      );\r
-      mysql_query("COMMIT");\r
-   }\r
+      );
+      $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);  
+      $le_participant = new participant($_POST['pseudo'], $_POST['pass1']);
+      setcookie("COOKIE_INFO_PATICIPANT", $le_participant->info->id, time() + 31104000);
+      $page = "bienvenue";\r
+   }
 }
 # un participant modifie ses infos
 else if(isset($_POST['modification_participant']) && $le_participant->valide)
-{\r
-   if (donnees_inscription_valides())\r
+{
+   traiter_donnees_inscription();
+   if (!login_deja_pris() && donnees_inscription_valides())\r
    {\r
       mysql_query("BEGIN TRANSACTION");
       mysql_query("UPDATE participants SET pseudo = '".addslashes($_POST['pseudo'])."' WHERE id = " . $le_participant->info->id);
@@ -64,8 +116,12 @@ else if(isset($_POST['modification_participant']) && $le_participant->valide)
       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);\r
-      mysql_query("COMMIT");\r
+      mysql_query("UPDATE participants SET remarques = '".addslashes($_POST['remarques'])."' WHERE id = " . $le_participant->info->id);
+      set_periodes($le_participant->info->id);\r
+      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\r
    }
 }\r
 # vote pour des jeux\r
index 742e153..949b996 100644 (file)
@@ -6,7 +6,7 @@ else
 <p>Elles peuvent se désinscrirent en cas d\'empèchements majeurs.</p>';
 ?>
 
-<form id="formulaireInscription" method="post" action="<?php echo($le_participant->valide?'inscrits':'bienvenue'), '.html'; ?>">
+<form id="formulaireInscription" method="post" action="inscription.html">
 <?php
    if($le_participant->valide)
                echo '<p><input type="hidden" name="modification_participant" value="1" /></p>';
@@ -23,7 +23,7 @@ else
          pseudo <span class="miniInfo">(login)</span>
       </td>
       <td>
-         <input type="text" maxlength="50" name="pseudo" <?php echo($le_participant->valide?('value="'.$le_participant->info->pseudo.'"'):''); ?> />
+         <input type="text" maxlength="50" name="pseudo" value="<?=$le_participant->valide ? $le_participant->info->pseudo : $_POST["pseudo"]?>" />
       </td>
    </tr>
    <tr>
@@ -31,8 +31,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" <?php echo($le_participant->valide?('value="'.$le_participant->info->password.'"'):''); ?> />
-         re: <input type="password" maxlength="10" size="10" name="pass2" <?php echo($le_participant->valide?('value="'.$le_participant->info->password.'"'):''); ?> /> 
+         <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"]?>" /> 
       </td>
    </tr>
    <tr>
@@ -40,7 +40,7 @@ else
          clan name
       </td>
       <td>
-         <input type="text" maxlength="30" size="15" name="clan_nom" <?php echo($le_participant->valide?('value="'.$le_participant->info->clan_nom.'"'):''); ?> /> 
+         <input type="text" maxlength="30" size="15" name="clan_nom" value="<?=$le_participant->valide ? $le_participant->info->clan_nom : $_POST["clan_nom"]?>" /> 
          <select id="clanChoix" name="clanChoix" size="1">
             <option value ="0" selected="selected">clans existants</option>
             <?php
@@ -58,7 +58,7 @@ else
          clan tag
       </td>
       <td>
-         <input type="text" maxlength="10" name="clan_tag" <?php echo($le_participant->valide?('value="'.$le_participant->info->clan_tag.'"'):''); ?> /> 
+         <input type="text" maxlength="10" name="clan_tag" value="<?=$le_participant->valide ? $le_participant->info->clan_tag : $_POST['clan_tag']?>" /> 
       </td>
    </tr> 
    <tr>
@@ -66,7 +66,7 @@ else
          nom
       </td>
       <td>
-         <input type="text" maxlength="30" name="nom" <?php echo($le_participant->valide?('value="'.$le_participant->info->nom.'"'):''); ?> />
+         <input type="text" maxlength="30" name="nom" value="<?=$le_participant->valide ? $le_participant->info->nom : $_POST['nom']?>" />
       </td>
    </tr>
    <tr>
@@ -74,7 +74,7 @@ else
          prénom
       </td>
       <td>
-         <input type="text" maxlength="30" name="prenom" <?php echo($le_participant->valide?('value="'.$le_participant->info->prenom.'"'):''); ?> />
+         <input type="text" maxlength="30" name="prenom" value="<?=$le_participant->valide ? $le_participant->info->prenom : $_POST['prenom']?>" />
       </td>
    </tr>
    <tr>
@@ -82,7 +82,7 @@ else
          age
       </td>
       <td>
-         <input type="text" maxlength="30" name="age" <?php echo($le_participant->valide?('value="'.$le_participant->info->age.'"'):''); ?> />
+         <input type="text" maxlength="30" name="age" value="<?=$le_participant->valide ? $le_participant->info->age : $_POST['age']?>" />
       </td>
    </tr>
    <tr>
@@ -90,7 +90,7 @@ else
          email <span class="miniInfo">(non-public)</span>
       </td>
       <td>
-         <input type="text" maxlength="30" name="e_mail" <?php echo($le_participant->valide?('value="'.$le_participant->info->e_mail.'"'):''); ?> />
+         <input type="text" maxlength="30" name="e_mail" value="<?=$le_participant->valide ? $le_participant->info->e_mail : $_POST['e_mail']?>" />
       </td>
    </tr>
    <tr>
@@ -104,20 +104,29 @@ else
                FROM periodes
                LEFT JOIN participations ON periodes.id = participations.periode_id
                   AND participations.participant_id = ".($le_participant->valide ? $le_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 || $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.'" '.((!$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>';
             }
          ?>
       </td>
    </tr>
+   <tr>
+      <td>
+         prix
+      </td>
+      <td>
+         <span id="prix"></span> CHF
+      </td>
+   </tr>
    <tr>
       <td>
          remarques
       </td>
       <td>
-         <textarea cols="30" rows="5" name="remarques"><?php echo($le_participant->valide?$le_participant->info->remarques:''); ?></textarea>
+         <textarea cols="30" rows="5" name="remarques"><?=$le_participant->valide ? $le_participant->info->remarques : $_POST['remarques']?></textarea>
       </td>
    </tr>
    <?php
@@ -128,7 +137,7 @@ else
                j\'ai bien lu et suis d\'accord avec le préambule
             </td>
             <td>
-               <input type="checkbox" name="accord" />
+               <input type="checkbox" name="accord" ',($_POST['accord'] ? 'checked="true"' : ''),'/>
             </td>
          </tr>';
    ?>
index 5ff5904..c094a9e 100644 (file)
@@ -87,6 +87,7 @@ function update_db()
    if ($version == 1)
    {
       mysql_query("BEGIN TRANSACTION");
+      mysql_query("ALTER TABLE participants ADD CONSTRAINT UNIQUE INDEX pseudo_unique (pseudo);");
       mysql_query("
          CREATE TABLE IF NOT EXISTS periodes (
            id mediumint(3) unsigned NOT NULL auto_increment,