diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php index 61a4ba76ab3dcaecb22e1dc79d0b79741399c711..4b58ec7e032a5cd66ea7099bd8a1680f6543d934 100644 --- a/app/controller/PartieController.php +++ b/app/controller/PartieController.php @@ -8,346 +8,534 @@ */ class PartieController extends Controller { - public function displayStep0(){ + public function displayStep0() + { + session_start(); + if(isset($_SESSION['errMsg'])){ + $this->view->errMsg = $_SESSION['errMsg']; + unset($_SESSION['errMsg']); + } + $this->view->liste = Jeu::getList(); $this->view->display(); } - public function displayStep1(){ + public function displayStep1() + { session_start(); - if(!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); + die(); + } + if(isset($_SESSION['errMsg'])){ + $this->view->errMsg = $_SESSION['errMsg']; + unset($_SESSION['errMsg']); + } + if ($_SESSION['jeu_select']->max_joueurs === "") + $this->view->max = "plus"; + else + $this->view->max = $_SESSION['jeu_select']->max_joueurs; + $this->view->jeuactuel = $_SESSION['jeu_select']; $this->view->listej = Profil::getList(); $this->view->display(); } - public function displayStep2(){ + public function displayStep2() + { session_start(); - if(!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); - if(!isset($_SESSION['joueurs_select'])) + die(); + } + if (!isset($_SESSION['joueurs_select'])) { header("Location:../add_partie/step1"); - - + die(); + } + if(isset($_SESSION['errMsg'])){ + $this->view->errMsg = $_SESSION['errMsg']; + unset($_SESSION['errMsg']); + } + + $this->view->jeuactuel = $_SESSION['jeu_select']; $this->view->listejactuel = $_SESSION['joueurs_select']; $this->view->display(); } - public function displayStepe1(){ + public function displayStepe1() + { session_start(); - if(!isset($_SESSION['jeu_select']) || !isset($_SESSION['equipes'])) + if (!isset($_SESSION['jeu_select']) || !isset($_SESSION['equipes'])) { header("Location:../add_partie"); - + die(); + } + if(isset($_SESSION['errMsg'])){ + $this->view->errMsg = $_SESSION['errMsg']; + unset($_SESSION['errMsg']); + } + if (is_null($_SESSION['jeu_select']->max_joueurs)) { + $this->view->maxj = "plus de"; + } + else { + $this->view->maxj = $_SESSION['jeu_select']->max_joueurs; + } + if (is_null($_SESSION['jeu_select']->max_equipes)) { + $this->view->maxe = "plus d'"; + } + else{ + $this->view->maxe = $_SESSION['jeu_select']->max_equipes." "; + } $this->view->jeuactuel = $_SESSION['jeu_select']; $this->view->listej = Profil::getList(); $this->view->equipes = $_SESSION['equipes']; $this->view->display(); } - public function displayStepe2(){ + public function displayStepe2() + { session_start(); - if(!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); - if(!isset($_SESSION['equipes'])) + die(); + } + if (!isset($_SESSION['equipes'])) { header("Location:../add_partie/stepe1"); - + die(); + } + if(isset($_SESSION['errMsg'])){ + $this->view->errMsg = $_SESSION['errMsg']; + unset($_SESSION['errMsg']); + } $this->view->jeuactuel = $_SESSION['jeu_select']; $this->view->equipes = $_SESSION['equipes']; $this->view->display(); } - - public function displayValid(){ + + public function displayValid() + { $this->view->display(); } - - public static function verifyStep0(){ - if(!isset($_POST['jeu'])) { + private static function error($errstr, $step){ + session_start(); + $_SESSION['errMsg'] = $errstr; + if($step == "step0") { + header("Location:../add_partie"); + die(); + } + else if($step == "step1") { + header("Location:step1"); + die(); + } + else if($step == "step2") { + header("Location:step2"); + die(); + } + else if($step == "stepe1") { + header("Location:stepe1"); + die(); + } + else if($step == "stepe2") { + header("Location:stepe2"); + die(); + } + else { + header("Location:../add_partie"); + die(); + } + } + + public static function verifyStep0() + { + + if (!isset($_POST['jeu'])) { //appeler une fonction d'erreur - echo "<h1>Erreur : variables absentes</h1>"; - die(); + self::error("<h1>Erreur : variables absentes</h1>", "step0"); + die(); } $jeu = $_POST['jeu']; - if(!Jeu::checkExistsNom($jeu)) { - echo "<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>"; - die(); + if (!Jeu::checkExistsNom($jeu)) { + self::error("<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>", "step0"); + die(); } $jeu = Jeu::getFromNom($jeu); session_start(); $_SESSION['jeu_select'] = $jeu; - if($jeu->type == 'equipes'){ + if ($jeu->type == 'equipes') { $_SESSION['equipes'] = array(array()); header('Location:stepe1'); - } - else + die(); + } + else { header('Location:step1'); + die(); + } } - public static function addjoueurs1(){ + public static function addjoueurs1() + { session_start(); - if(!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); - if(!isset($_POST["joueur"])){ - echo "<h1>Erreur : pas de joueur entré.</h1>"; - die(); - } + die(); + } + $jeu = $_SESSION['jeu_select']; + + if (!isset($_POST["joueur"])) { + if ($jeu->type == 'equipes') { + self::error("<h1>Erreur : pas de joueur entré.</h1>", "stepe1"); + die(); + } + else { + self::error("<h1>Erreur : pas de joueur entré.</h1>", "step1"); + die(); + } + } + $joueur = $_POST["joueur"]; - if(Profil::checkExists($joueur)){ + if (Profil::checkExists($joueur)) { $joueur_objet = Profil::getFromSlug($joueur); - } - else{ - echo "<h1>Erreur : le joueur est introuvable dans la base de données.</h1>"; - die(); + } + else { + if ($jeu->type == 'equipes') { + self::error("<h1>Erreur : le joueur est introuvable dans la base de données.</h1>", "stepe1"); + die(); + } + else { + self::error("<h1>Erreur : le joueur est introuvable dans la base de données.</h1>", "step1"); + die(); + } } - if($jeu->type == 'equipes'){ + if ($jeu->type == 'equipes') { $ke = $_POST['equipejadd']; - foreach ($_SESSION['equipes'] as $equipe){ - if(in_array($joueur_objet, $equipe)){ - echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>"; - die(); + foreach ($_SESSION['equipes'] as $equipe) { + if (in_array($joueur_objet, $equipe)) { + self::error("<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>", "stepe1"); + die(); } } array_push($_SESSION['equipes'][$ke], $joueur_objet); header("Location:stepe1"); - } - else{ - if (!isset($_SESSION['joueurs_select'])){ - $_SESSION['joueurs_select'] = array($joueur_objet); - echo "<h1>L'ajout s'est bien passé.</h1>"; + die(); + } + else { + if (!isset($_SESSION['joueurs_select'])) { + $_SESSION['joueurs_select'] = array($joueur_objet); + header("Location:step1"); + die(); + } + + if (!in_array($joueur_objet, $_SESSION['joueurs_select'])) + array_push($_SESSION['joueurs_select'], $joueur_objet); + else { + self::error("<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>", "step1"); + die(); + } header("Location:step1"); + die(); } + } - if(!in_array($joueur_objet, $_SESSION['joueurs_select'])) - array_push($_SESSION['joueurs_select'], $joueur_objet); - else{ - echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>"; - die(); - } - echo "<h1>L'ajout s'est bien passé.</h1>"; - header("Location:step1"); + public static function clearstep1() + { + session_start(); + if (!isset($_SESSION['jeu_select'])) { + header("Location:../add_partie"); + die(); + } + $jeu_actuel = $_SESSION['jeu_select']; + if ($jeu_actuel->type == 'equipes') { + if (!isset($_SESSION['equipes'])) { + header("Location:stepe1"); + die(); + } + $_SESSION['equipes'] = array(array()); + header("Location:stepe1"); + die(); + } + else { + if (!isset($_SESSION['joueurs_select'])) { + header("Location:step1"); + die(); + } + unset($_SESSION['joueurs_select']); + header("Location:step1"); + die(); } } - public static function deljoueurs1(){ + public static function deljoueurs1() + { session_start(); - if(!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); + die(); + } - if($_SESSION['jeu_select']->type == 'duels') { - if (!isset($_SESSION['joueurs_select'])) + if ($_SESSION['jeu_select']->type == 'duels') { + if (!isset($_SESSION['joueurs_select'])) { header("Location:step1"); + die(); + } } - if($_SESSION['jeu_select']->type == 'equipes') { - if (!isset($_SESSION['equipes'])) + if ($_SESSION['jeu_select']->type == 'equipes') { + if (!isset($_SESSION['equipes'])) { header("Location:stepe1"); + die(); + } } - if(!isset($_POST['joueurdel'])) - { - echo "<h1>Erreur : variables manquantes.</h1>"; - die(); + if (!isset($_POST['joueurdel'])) { + if ($_SESSION['jeu_select']->type == 'equipes') { + self::error("<h1>Erreur : variables manquantes.</h1>", "stepe1"); + die(); + } + else { + self::error("<h1>Erreur : variables manquantes.</h1>", "step1"); + die(); + } } - if($_SESSION['jeu_select']->type == 'equipes'){ + if ($_SESSION['jeu_select']->type == 'equipes') { unset($_SESSION['equipes'][$_POST['equipejdel']][$_POST['joueurdel']]); $equipe_tmp = array(); - foreach ($_SESSION['equipes'][$_POST['equipejdel']] as $j) + foreach ($_SESSION['equipes'][$_POST['equipejdel']] as $j) { array_push($equipe_tmp, $j); + } $_SESSION['equipes'][$_POST['equipejdel']] = $equipe_tmp; header("Location:stepe1"); - } - else{ + die(); + } + else { unset($_SESSION['joueurs_select'][$_POST['joueurdel']]); $joueurs_tmp = array(); - foreach ($_SESSION['joueurs_select'] as $j) + foreach ($_SESSION['joueurs_select'] as $j) { array_push($joueurs_tmp, $j); + } $_SESSION['joueurs_select'] = $joueurs_tmp; header("Location:step1"); + die(); } } - public static function delequipe(){ + + public static function delequipe() + { session_start(); - if (!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); - if (!isset($_SESSION['equipes'])) + die(); + } + if (!isset($_SESSION['equipes'])) { header("Location:stepe1"); - if (count($_SESSION['equipes']) <= 1){ - echo "<h1>Erreur : vous ne pouvez pas supprimer la seule équipe restante.</h1>"; - die(); + die(); + } + if (count($_SESSION['equipes']) <= 1) { + self::error("<h1>Erreur : vous ne pouvez pas supprimer la seule équipe restante.</h1>", "stepe1"); + die(); } - if(!isset($_POST['equipe'])){ - echo "<h1>Erreur : variables manquantes.</h1>"; - die(); + if (!isset($_POST['equipe'])) { + self::error("<h1>Erreur : variables manquantes.</h1>", "stepe1"); + die(); } unset($_SESSION['equipes'][$_POST['equipe']]); $equipe_tmp = array(); - foreach ($_SESSION['equipes'] as $e) + foreach ($_SESSION['equipes'] as $e) { array_push($equipe_tmp, $e); + } $_SESSION['equipes'] = $equipe_tmp; header("Location:stepe1"); + die(); } - public static function addequipe(){ + public static function addequipe() + { session_start(); - if (!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); - if (count($_SESSION['equipes']) == $_SESSION['jeu_select']->max_equipes){ - echo "<h1>Erreur : vous ne pouvez pas créer d'équipe supplémentaire.</h1>"; - die(); + die(); + } + if (count($_SESSION['equipes']) == $_SESSION['jeu_select']->max_equipes) { + self::error("<h1>Erreur : vous ne pouvez pas créer d'équipe supplémentaire.</h1>", "stepe1"); + die(); } array_push($_SESSION['equipes'], array()); header("Location:stepe1"); + die(); } - public static function verifyStep1(){ + public static function verifyStep1() + { session_start(); - if(!isset($_SESSION['jeu_select'])) + if (!isset($_SESSION['jeu_select'])) { header("Location:../add_partie"); + die(); + } $jeu_actuel = $_SESSION['jeu_select']; - if ($jeu_actuel->type == 'equipes'){ - if(!isset($_SESSION['equipes'])) + if ($jeu_actuel->type == 'equipes') { + if (!isset($_SESSION['equipes'])) { header("Location:stepe1"); + die(); + } $equipes = $_SESSION['equipes']; - if (count($equipes) < $jeu_actuel->min_equipes){ - echo "<h1>Erreur : il n'y a pas assez d'équipes.</h1>"; - die(); + if (count($equipes) < $jeu_actuel->min_equipes) { + self::error("<h1>Erreur : il n'y a pas assez d'équipes.</h1>", "stepe1"); + die(); } - if (count($equipes) > $jeu_actuel->max_equipes){ - echo "<h1>Erreur : il y a trop d'équipes.</h1>"; - die(); + if (count($equipes) > $jeu_actuel->max_equipes) { + self::error("<h1>Erreur : il y a trop d'équipes.</h1>", "stepe1"); + die(); } - foreach ($equipes as $ke => $e){ - if (count($e) < $jeu_actuel->min_joueurs){ - $ke = $ke+1; - echo "<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>"; - die(); - } - if (!is_null($jeu_actuel->max_joueurs)){ - if (count($e) > $jeu_actuel->max_joueurs){ - $ke = $ke+1; - echo "<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>"; - die(); + foreach ($equipes as $ke => $e) { + if (count($e) < $jeu_actuel->min_joueurs) { + $ke = $ke + 1; + self::error("<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>", "stepe1"); + die(); } + if (!is_null($jeu_actuel->max_joueurs)) { + if (count($e) > $jeu_actuel->max_joueurs) { + $ke = $ke + 1; + self::error("<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>", "stepe1"); + die(); + } } } header("Location:stepe2"); + die(); } - else{ - if(!isset($_SESSION['joueurs_select'])) + else { + if (!isset($_SESSION['joueurs_select'])) { header("Location:step1"); + die(); + } $joueurs = $_SESSION['joueurs_select']; - if (count($joueurs) < $jeu_actuel->min_joueurs){ - echo "<h1>Erreur : il n'y a pas assez de joueurs.</h1>"; - die(); + if (count($joueurs) < $jeu_actuel->min_joueurs) { + self::error("<h1>Erreur : il n'y a pas assez de joueurs.</h1>", "step1"); + die(); } - if (count($joueurs) > $jeu_actuel->max_joueurs){ - echo "<h1>Erreur : il y a trop de joueurs.</h1>"; - die(); + if (count($joueurs) > $jeu_actuel->max_joueurs) { + self::error("<h1>Erreur : il y a trop de joueurs.</h1>", "step1"); + die(); } header('Location:step2'); + die(); } - - - } - public function verifyStep2(){ + public function verifyStep2() + { session_start(); - if(!isset($_SESSION['jeu_select'])) - header("Location:../add_partie"); + if (!isset($_SESSION['jeu_select'])) { + self::error("<h1>Erreur : le jeu doit être renseigné.</h1>", "step0"); + die(); + } $jeu = $_SESSION['jeu_select']; if ($jeu->type == 'equipes') { - if (!isset($_SESSION['equipes'])) + if (!isset($_SESSION['equipes'])){ header("Location:stepe1"); + die(); + } } - else{ - if(!isset($_SESSION['joueurs_select'])) - header("Location:../add_partie/step1"); + else { + if (!isset($_SESSION['joueurs_select'])) { + header("Location:step1"); + die(); + } } - if(!isset($_POST['scores'])) { - //appeler une fonction d'erreur - echo "<h1>Erreur : variables absentes</h1>"; - die(); + if (!isset($_POST['scores'])) { + if ($jeu->type == 'equipes') { + self::error("<h1>Erreur : variables absentes</h1>", "stepe2"); + die(); + } + else { + self::error("<h1>Erreur : variables absentes</h1>", "step2"); + die(); + } } $scores = $_POST["scores"]; - foreach ($scores as $s){ - if(!is_numeric($s)) { - echo "<h1>Erreur : les scores doivent être des nombres.</h1>"; - die(); + foreach ($scores as $s) { + if (!is_numeric($s)) { + if ($jeu->type == 'equipes') { + self::error("<h1>Erreur : les scores doivent être des nombres.</h1>", "stepe2"); + die(); + } + else { + self::error("<h1>Erreur : les scores doivent être des nombres.</h1>", "step2"); + die(); + } } } if ($jeu->type == 'equipes') { $equipes = $_SESSION['equipes']; $ns = count($scores); $nj = count($equipes); - if ($ns != $nj){ - //appeler une fonction d'erreur - echo "<h1>Erreur : scores et joueurs incohérents</h1>"; - die(); + if ($ns != $nj) { + self::error("<h1>Erreur : scores et joueurs incohérents</h1>", "stepe2"); + die(); } $pb = Partie::addPartie($equipes, $scores, $jeu); - if(!$pb) { + if (!$pb) { unset($_SESSION['equipes']); unset($_SESSION['jeu_select']); header('Location:valid'); // Redirection vers la page OK + die(); } switch ($pb) { case 2: - echo "<h1>Erreur de connexion à la BD.</h1>"; - die(); + self::error("<h1>Erreur de connexion à la BD.</h1>", "stepe2"); + die(); break; default: - echo "<h1>Erreur non gérée.</h1>"; - die(); + self::error("<h1>Erreur non gérée.</h1>", "stepe2"); + die(); break; } - } - else{ + } + else { $joueurs = $_SESSION['joueurs_select']; $ns = count($scores); $nj = count($joueurs); - if ($ns != $nj){ - //appeler une fonction d'erreur - print_r($scores); - echo "<h1>Erreur : scores et joueurs incohérents</h1>"; - die(); - } - $pb = Partie::addPartie($joueurs, $scores, $jeu); - if(!$pb) { - unset($_SESSION['jeu_select']); - unset($_SESSION['joueurs_select']); - header('Location:valid'); // Redirection vers la page OK - } - switch ($pb) { - case 2: - echo "<h1>Erreur de connexion à la BD.</h1>"; - die(); - break; - default: - echo "<h1>Erreur non gérée.</h1>"; - die(); - break; - } + if ($ns != $nj) { + self::error("<h1>Erreur : scores et joueurs incohérents</h1>", "step2"); + die(); + } + $pb = Partie::addPartie($joueurs, $scores, $jeu); + if (!$pb) { + unset($_SESSION['jeu_select']); + unset($_SESSION['joueurs_select']); + //self::error("<h1>DEBUGGING</h1>", "step2"); + //die(); + header('Location:valid'); // Redirection vers la page OK + die(); + } + switch ($pb) { + case 2: + self::error("<h1>Erreur de connexion à la BD.</h1>", "step2"); + die(); + break; + default: + self::error("<h1>Erreur non gérée.</h1>", "step2"); + die(); + break; + } } } } \ No newline at end of file diff --git a/app/kernel/Router.php b/app/kernel/Router.php index 00fc88f638856a6910eadbdc0d05477d064e2644..d74851724ba6d03ff526a008e9320a069d296ae3 100644 --- a/app/kernel/Router.php +++ b/app/kernel/Router.php @@ -197,6 +197,10 @@ class Router $result["controller"] = "Partie"; $result["action"] = "delequipe"; } + else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "clearstep1") { + $result["controller"] = "Partie"; + $result["action"] = "clearstep1"; + } // à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit ! diff --git a/app/model/Partie.php b/app/model/Partie.php index 6ec08a224ac58c088001b63ab912d161b3b56466..044bdb113b730ed5a86ea6d75904a050f9c1387f 100644 --- a/app/model/Partie.php +++ b/app/model/Partie.php @@ -23,7 +23,7 @@ class Partie extends Model public static function getList() { - $db = Database::getInstance() ; + $db = Database::getInstance(); $sql = "SELECT * FROM R_partie"; $stmt = $db->query($sql); $stmt->setFetchMode(PDO::FETCH_CLASS, "Partie"); @@ -72,16 +72,14 @@ class Partie extends Model if ($stmt2->execute(array(":classement" => $i, ":joueur" => $row['joueur'], ":jeu" => $jeu->slug))) { } else { - echo "pb updateClassement"; - die(); + return 2; } $i++; } } else { - echo "pb updateClassement"; - die(); + return 2; } - + return 0; } public static function addPartie($joueurs, $scores, $jeu) @@ -111,62 +109,59 @@ class Partie extends Model $old_score = array_fill(0, $m, 0); $old_score_e = array(); - foreach ($joueurs as $k => $joueur){ + foreach ($joueurs as $k => $joueur) { // version avec équipes - if ($jeu->type == 'equipes'){ + if ($jeu->type == 'equipes') { $old_score_e[$k] = array(); - foreach ($joueur as $kj => $j){ + foreach ($joueur as $kj => $j) { if ($stmt3->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug))) { if ($row = $stmt3->fetch()) { // Le joueur a déja joué à ce jeu - $old_score_e[$k][$kj]= $row[0]; + $old_score_e[$k][$kj] = $row[0]; } else { // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation. - $old_score_e[$k][$kj]= 1000; + $old_score_e[$k][$kj] = 1000; $stmtN = $db->prepare($sqlN); if ($stmtN->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) { } else return 2; } - $old_score[$k] = array_sum($old_score_e[$k])/count($old_score_e[$k]); } } - } - else{ + $old_score[$k] = array_sum($old_score_e[$k]) / count($old_score_e[$k]); + } else { // récupération du score actuel de chaque joueur - if ($stmt3->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug))) { - if ($row = $stmt3->fetch()) { - // Le joueur a déja joué à ce jeu - $old_score[$k] = $row[0]; - } else { - // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation. - $old_score[$k] = 1000; - $stmtN = $db->prepare($sqlN); - if ($stmtN->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) { + if ($stmt3->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug))) { + if ($row = $stmt3->fetch()) { + // Le joueur a déja joué à ce jeu + $old_score[$k] = $row[0]; + } else { + // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation. + $old_score[$k] = 1000; + $stmtN = $db->prepare($sqlN); + if ($stmtN->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) { - } else - return 2; - } + } else + return 2; + } - } + } } } // Calcul de la nouvelle différence de scores et du classement de chacun dans la partie $diff_scores = ELO_scores($old_score, $scores, 32); $classement = self::calcul_classement($diff_scores); - print_r($joueurs); - print_r($old_score_e); foreach ($joueurs as $k => $joueur) { if ($jeu->type == 'equipes') { - foreach ($joueur as $kj => $j){ + foreach ($joueur as $kj => $j) { // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie) // pour chaque joueur if ($stmt4->execute(array(":partie" => $id_partie, ":joueur" => $j->slug, ":classement" => $classement[$k], ":score" => $old_score_e[$k][$kj])) ) { - $newS = $old_score[$k][$kj] + $diff_scores[$k]; + $newS = $old_score_e[$k][$kj] + $diff_scores[$k]; // On met à jour le score du joueur actuel dans sa relation avec le jeu if ($stmt5->execute(array(":new_score" => $newS, ":id_jeu" => $jeu->slug, ":id_joueur" => $j->slug)) @@ -176,8 +171,7 @@ class Partie extends Model } else return 2; } - } - else { + } else { // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie) // pour chaque joueur if ($stmt4->execute(array(":partie" => $id_partie, @@ -198,7 +192,6 @@ class Partie extends Model } else return 2; // met à jour le classement de tous les joueurs - self::updateClassement($jeu); - return 0; + return self::updateClassement($jeu); } } diff --git a/app/view/Partie/displayStep0.html b/app/view/Partie/displayStep0.html index 8d5b6d4ba4fe77296da1aaeed1aa9b838a213f44..0b95e1e2a8b017becb88763fe32ccdbe72c6afed 100644 --- a/app/view/Partie/displayStep0.html +++ b/app/view/Partie/displayStep0.html @@ -1,5 +1,5 @@ <?php - session_start(); + // session déjà lancée dans le contrôleur if(!isset($_SESSION['connected']) || $_SESSION['connected'] != true) { header('Location:'.BASE_URL); @@ -8,7 +8,9 @@ $page_title = "Formulaire d'ajout de partie"; include(ROOT."/app/view/Includes/header.include.html"); ?> - +<?php if (!is_null($this->errMsg)){ ?> +<article class="msg-erreur"><?php echo $this->errMsg;?></article> +<?php } ?> <article> <h2>Formulaire d'ajout de partie</h2> <h3>Sélection d'un jeu</h3> diff --git a/app/view/Partie/displayStep1.html b/app/view/Partie/displayStep1.html index ebeeaae4c80ec459cb8be67129a795455553aa9f..c1e125ac650d78104d0b0ea5ed87aaa9b8941eae 100644 --- a/app/view/Partie/displayStep1.html +++ b/app/view/Partie/displayStep1.html @@ -3,43 +3,50 @@ include(ROOT."/app/view/Includes/header.include.html"); ?> <?php $jeuactuel = $this->jeuactuel ?> - <article> - <h2>Formulaire d'ajout de partie</h2> - <h3>Sélection des joueurs</h3> - <div class="addjeu-form"> +<?php if (!is_null($this->errMsg)){ ?> +<article class="msg-erreur"><?php echo $this->errMsg;?></article> +<?php } ?> +<article> + <h2>Formulaire d'ajout de partie</h2> + <h3>Sélection des joueurs</h3> + <div class="addjeu-form"> - Jeu : <?php echo $jeuactuel->nom; ?><br /> - Joueurs :<br /> - <form method="post" action="addjoueurs1"> - <label for="joueur">Ajouter un joueur (pseudo) :</label> - <input type="text" id="joueur" name="joueur" /> - <input type="submit" name="submit" value="ajouter un joueur" /> - </form> - <?php if (isset($_SESSION['joueurs_select'])) { ?> - Joueurs actuellement sélectionnés : - <ul> + <h4>Jeu : <?php echo $jeuactuel->nom; ?></h4> + <h4>De <?php echo $jeuactuel->min_joueurs; ?> à <?php echo $this->max; ?> joueurs</h4> + <form method="post" action="addjoueurs1"> + <label for="joueur">Ajouter un joueur (pseudo) :</label> + <input type="text" id="joueur" name="joueur"/> + <input type="submit" name="submit" value="ajouter un joueur"/> + </form> + <?php if (isset($_SESSION['joueurs_select'])) { ?> + <h5>Joueurs actuellement sélectionnés :</h5> + <ul> <?php foreach($_SESSION['joueurs_select'] as $k => $j){ ?> <li> <?php echo $j->pseudo; ?> + + <form method="post" action="deljoueurs1"> <input type="hidden" value="<?php echo $k;?>" name="joueurdel"> - <input type="submit" name="submit" value="supprimer ce joueur" /> + <input type="submit" name="submit" value="supprimer ce joueur"/> </form> </li> <?php } ?> - </ul> - - <form method="post" action="verifystep1"> - <div class="submit"> - <input type="reset" name="reset" value="Réinitialiser" /> - <input type="submit" name="submit" value="Étape suivante" /> - </div> - </form> <?php } ?> + </ul> + <div class="submit"> + <form method="post" action="clearstep1"> + <input type="submit" name="submit" value="Réinitialiser"/> + </form> + <form method="post" action="verifystep1"> + <input type="submit" name="submit" value="Étape suivante"/> + </form> + <form action="../add_partie"> - <input type="submit" name="submit" value="Étape précédente" /> + <input type="submit" name="submit" value="Étape précédente"/> </form> - </div> - </article> + </div> + </div> +</article> <?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Partie/displayStep2.html b/app/view/Partie/displayStep2.html index c63162b2667e78aed4ea9a9e21f620a174a88cb8..83f9e07cdf6d5b2297d5815754c338f4581bcd7a 100644 --- a/app/view/Partie/displayStep2.html +++ b/app/view/Partie/displayStep2.html @@ -3,29 +3,45 @@ include(ROOT."/app/view/Includes/header.include.html"); ?> <?php $jeuactuel = $this->jeuactuel ?> - <article> - <h2>Formulaire d'ajout de partie</h2> - <h3>Entrée des scores</h3> - <div class="addjeu-form"> - <form method="post" action="verifystep2"> - Jeu : <?php echo $jeuactuel->nom; ?><br /> - Joueurs : - <ul> - <?php foreach($this->listejactuel as $joueur){ ?> - <li><?php echo $joueur->pseudo; ?> Score obtenu : <input type="text" title="score" name="scores[]" /></li> +<?php if (!is_null($this->errMsg)){ ?> +<article class="msg-erreur"><?php echo $this->errMsg;?></article> +<?php } ?> +<article> + <h2>Formulaire d'ajout de partie</h2> + <h3>Entrée des scores</h3> + <div class="addjeu-form"> + <form method="post" action="verifystep2"> + Jeu : <?php echo $jeuactuel->nom; ?><br/> + Joueurs : + <ul> + <?php foreach($this->listejactuel as $joueur){ ?> + <li><?php echo $joueur->pseudo; ?> + <?php if($jeuactuel->type_scores == 'scores'){ ?> + Score obtenu : <input type="text" title="score" required="" name="scores[]"/> + <?php } else { ?> + Classement obtenu : <select title="score" required="" name="scores[]"> + <?php for ($j=1;$j<=count($this->listejactuel);$j++){ ?> + <option value="<?php echo count($this->listejactuel)-$j;?>"><?php echo $j;?></option> + + <?php } ?> + </select> <?php } ?> - </ul> - <br /> - <div class="submit"> + </li> + <?php } ?> + </ul> + <br/> + <div class="submit"> - <input type="reset" name="reset" value="Réinitialiser" /> - <input type="submit" name="submit" value="Demander l'ajout" /> - </div> - </form> + <input type="reset" name="reset" value="Réinitialiser"/> + <input type="submit" name="submit" value="Demander l'ajout"/> + </div> + </form> + <div class="submit"> <form action="step1"> - <input type="submit" name="submit" value="Étape précédente" /> + <input type="submit" name="submit" value="Étape précédente"/> </form> - </div> - </article> + </div> + </div> +</article> <?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Partie/displayStepe1.html b/app/view/Partie/displayStepe1.html index f133dc1ececaac7a67da0b61b330b8a24de976d6..8133544788def29ae2b0c990cc09d56c85413cb0 100644 --- a/app/view/Partie/displayStepe1.html +++ b/app/view/Partie/displayStepe1.html @@ -3,15 +3,19 @@ include(ROOT."/app/view/Includes/header.include.html"); ?> <?php $jeuactuel = $this->jeuactuel ?> +<?php if (!is_null($this->errMsg)){ ?> +<article class="msg-erreur"><?php echo $this->errMsg;?></article> +<?php } ?> <article> <h2>Formulaire d'ajout de partie</h2> <h3>Sélection des joueurs</h3> <div class="addjeu-form"> - Jeu : <?php echo $jeuactuel->nom; ?><br/> - Équipes :<br/> + <h4>Jeu : <?php echo $jeuactuel->nom; ?></h4> + <h4>De <?php echo $jeuactuel->min_equipes; ?> à <?php echo $this->maxe; ?>équipes (de <?php echo $jeuactuel->min_joueurs; ?> à <?php echo $this->maxj; ?> joueurs)</h4> + <?php foreach($this->equipes as $ke => $e) { ?> - <h4>Équipe <?php echo $ke+1; ?> </h4> + <h5>Équipe <?php echo $ke+1; ?> </h5> <ul> <?php foreach($e as $k => $j){ ?> @@ -27,7 +31,7 @@ <?php } ?> <form method="post" action="addjoueurs1"> <label for="joueur">Ajouter un joueur à l'équipe <?php echo $ke+1;?> :</label> - <input type="text" id="joueur" name="joueur" /> + <input type="text" id="joueur" name="joueur"/> <input type="hidden" value="<?php echo $ke;?>" name="equipejadd" id="equipejadd"/> <input type="submit" name="submit" value="Ajouter un joueur"/> </form> @@ -37,19 +41,24 @@ </form> </ul> <?php } ?> - <form method="post" action="addequipe"> - <input type="submit" name="submit" value="Ajouter une équipe"/> - </form> + <div class="submit"> + <form method="post" action="addequipe"> + <input type="submit" name="submit" value="Ajouter une équipe"/> + </form> + + <form method="post" action="clearstep1"> + <input type="submit" name="submit" value="Réinitialiser"/> + </form> + <form method="post" action="verifystep1"> + - <form method="post" action="verifystep1"> - <div class="submit"> - <input type="reset" name="reset" value="Réinitialiser"/> <input type="submit" name="submit" value="Étape suivante"/> - </div> - </form> - <form action="../add_partie"> - <input type="submit" name="submit" value="Étape précédente"/> - </form> + + </form> + <form action="../add_partie"> + <input type="submit" name="submit" value="Étape précédente"/> + </form> + </div> </div> </article> diff --git a/app/view/Partie/displayStepe2.html b/app/view/Partie/displayStepe2.html index fdfd21d90b1e67bf10b4369906da695911810f4c..ecf8b2a6d88efa9ee1c5fa265a6a67bd179f1686 100644 --- a/app/view/Partie/displayStepe2.html +++ b/app/view/Partie/displayStepe2.html @@ -3,34 +3,47 @@ include(ROOT."/app/view/Includes/header.include.html"); ?> <?php $jeuactuel = $this->jeuactuel ?> - <article> - <h2>Formulaire d'ajout de partie</h2> - <h3>Entrée des scores</h3> - <div class="addjeu-form"> - <form method="post" action="verifystep2"> - Jeu : <?php echo $jeuactuel->nom; ?><br /> - Équipes :<br/> - <?php foreach($this->equipes as $ke => $e) { ?> - <h4>Équipe <?php echo $ke+1; ?> </h4> - <ul> - <?php +<?php if (!is_null($this->errMsg)){ ?> +<article class="msg-erreur"><?php echo $this->errMsg;?></article> +<?php } ?> +<article> + <h2>Formulaire d'ajout de partie</h2> + <h3>Entrée des scores</h3> + <div class="addjeu-form"> + <form method="post" action="verifystep2"> + Jeu : <?php echo $jeuactuel->nom; ?><br/> + Équipes :<br/> + <?php foreach($this->equipes as $ke => $e) { ?> + <h4>Équipe <?php echo $ke+1; ?> </h4> + <ul> + <?php foreach($e as $k => $j){ ?> - <li> - <?php echo $j->pseudo; ?> - </li> - <?php } ?> - </ul> - Score obtenu : <input type="text" title="score" name="scores[]" /> + <li> + <?php echo $j->pseudo; ?> + </li> <?php } ?> - <div class="submit"> - <input type="reset" name="reset" value="Réinitialiser"/> - <input type="submit" name="submit" value="Demander l'ajout"/> - </div> - </form> - <form action="../add_partie/stepe1"> - <input type="submit" name="submit" value="Étape précédente"/> - </form> + </ul> + <?php if($jeuactuel->type_scores == 'scores'){ ?> + Score obtenu : <input type="text" title="score" required="" name="scores[]"/> + <?php } else { ?> + Classement obtenu : <select title="score" required="" name="scores[]"> + <?php for ($j=1;$j<= count($this->equipes);$j++){ ?> + <option value="<?php echo count($this->equipes)-$j;?>"><?php echo $j;?></option> + <?php } ?> + </select> + <?php } ?> + <?php } ?> + <div class="submit"> + <input type="reset" name="reset" value="Réinitialiser"/> + <input type="submit" name="submit" value="Demander l'ajout"/> + </div> + </form> + <div class="submit"> + <form action="../add_partie/stepe1"> + <input type="submit" name="submit" value="Étape précédente"/> + </form> </div> - </article> + </div> +</article> <?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/valeurs.sql b/valeurs.sql index 68537978e8caf73ba7156c44fd32ba2ca4e9d0ff..6498eaee968495f677157281a4f41e5b5cd8c955 100644 --- a/valeurs.sql +++ b/valeurs.sql @@ -1,5 +1,5 @@ INSERT INTO R_jeu (nom, description, slug, est_valide, min_joueurs, max_joueurs, min_equipes, max_equipes, type, type_scores) VALUES -('Rencontres Cosmiques', 'Jeu de plateau de 3 à 6 joueurs dont le but consiste à remporter cinq planètes adverses.', 'rencontres-cosmiques', 1, 3, 5, NULL, NULL, 'duels', 'scores'), +('Rencontres Cosmiques', 'Jeu de plateau de 3 à 6 joueurs dont le but consiste à remporter cinq planètes adverses.', 'rencontres-cosmiques', 1, 3, 5, NULL, NULL, 'duels', 'classement'), ('Jeu Équipes', 'cats', 'jeu-equipes', 0, 0, NULL, 0, 4, 'equipes', 'scores'); INSERT INTO R_joueur (slug, pseudo, password, nom, prenom, email, description, avatar) VALUES