From a1bf81ed2d93aa8f1a5462f87c41320c194202aa Mon Sep 17 00:00:00 2001 From: Eliah REBSTOCK <eliah.rebstock@ensiie.fr> Date: Fri, 6 May 2016 00:00:39 +0200 Subject: [PATCH] =?UTF-8?q?d=C3=A9but=20d'ajout=20d'un=20formulaire=20sp?= =?UTF-8?q?=C3=A9cial=20=C3=A9quipes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/PartieController.php | 102 ++++++++++++++++++++++++++-- app/kernel/Router.php | 14 ++++ app/view/Partie/displayStepe1.html | 56 +++++++++++++++ app/view/Partie/displayStepe2.html | 31 +++++++++ 4 files changed, 197 insertions(+), 6 deletions(-) create mode 100644 app/view/Partie/displayStepe1.html create mode 100644 app/view/Partie/displayStepe2.html diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php index 91584de..f745624 100644 --- a/app/controller/PartieController.php +++ b/app/controller/PartieController.php @@ -36,6 +36,29 @@ class PartieController extends Controller $this->view->display(); } + public function displayStepe1(){ + session_start(); + if(!isset($_SESSION['jeu_select']) || !isset($_SESSION['equipes'])) + header("Location:../add_partie"); + + $this->view->jeuactuel = $_SESSION['jeu_select']; + $this->view->listej = Profil::getList(); + $this->view->display(); + } + + public function displayStepe2(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + if(!isset($_SESSION['equipes'])) + header("Location:../add_partie/stepe1"); + + + $this->view->jeuactuel = $_SESSION['jeu_select']; + $this->view->listejactuel = $_SESSION['joueurs_select']; + $this->view->display(); + } + public function displayValid(){ $this->view->display(); } @@ -57,7 +80,12 @@ class PartieController extends Controller $jeu = Jeu::getFromNom($jeu); session_start(); $_SESSION['jeu_select'] = $jeu; - header('Location:step1'); + if($jeu->type == 'equipes'){ + $_SESSION['equipes'] = array(array()); + header('Location:stepe1'); + } + else + header('Location:step1'); } public static function addjoueurs1(){ @@ -68,6 +96,7 @@ class PartieController extends Controller echo "<h1>Erreur : pas de joueur entré.</h1>"; die(); } + $jeu = $_SESSION['jeu_select']; $joueur = $_POST["joueur"]; if(Profil::checkExists($joueur)){ @@ -77,6 +106,19 @@ class PartieController extends Controller echo "<h1>Erreur : le joueur est introuvable dans la base de données.</h1>"; die(); } + + 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(); + } + } + 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>"; @@ -91,23 +133,69 @@ class PartieController extends Controller } echo "<h1>L'ajout s'est bien passé.</h1>"; header("Location:step1"); - + } } public static function deljoueurs1(){ session_start(); if(!isset($_SESSION['jeu_select'])) header("Location:../add_partie"); - if(!isset($_SESSION['joueurs_select'])) - header("Location:step1"); + + if($_SESSION['jeu_select']->type == 'duels') { + if (!isset($_SESSION['joueurs_select'])) + header("Location:step1"); + } + if($_SESSION['jeu_select']->type == 'equipes') { + if (!isset($_SESSION['equipes'])) + header("Location:stepe1"); + } + if(!isset($_POST['joueurdel'])) { echo "<h1>Erreur : variables manquantes.</h1>"; die(); } - unset($_SESSION['joueurs_select'][$_POST['joueurdel']]); - header("Location:step1"); + if($_SESSION['jeu_select']->type == 'equipes'){ + unset($_SESSION['equipes'][$_POST['equipejdel']][$_POST['joueurdel']]); + header("Location:stepe1"); + } + else{ + unset($_SESSION['joueurs_select'][$_POST['joueurdel']]); + header("Location:step1"); + } + } + public static function delequipe(){ + session_start(); + if (!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + 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(); + } + + if(!isset($_POST['equipe'])){ + echo "<h1>Erreur : variables manquantes.</h1>"; + die(); + } + + unset($_SESSION['equipes'][$_POST['equipe']]); + header("Location:stepe1"); + } + + public static function addequipe(){ + session_start(); + 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(); + } + + array_push($_SESSION['equipes'], array()); + header("Location:stepe1"); } public static function verifyStep1(){ @@ -129,6 +217,8 @@ class PartieController extends Controller } header('Location:step2'); } + + public function verifyStep2(){ session_start(); if(!isset($_SESSION['jeu_select'])) diff --git a/app/kernel/Router.php b/app/kernel/Router.php index 9100041..c829429 100644 --- a/app/kernel/Router.php +++ b/app/kernel/Router.php @@ -88,6 +88,12 @@ class Router } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "step2") { $result["controller"] = "Partie"; $result["action"] = "displayStep2"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "stepe1") { + $result["controller"] = "Partie"; + $result["action"] = "displayStepe1"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "stepe2") { + $result["controller"] = "Partie"; + $result["action"] = "displayStepe2"; } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep0") { $result["controller"] = "Partie"; $result["action"] = "verifyStep0"; @@ -106,6 +112,14 @@ class Router $result["controller"] = "Partie"; $result["action"] = "deljoueurs1"; } + else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addequipe") { + $result["controller"] = "Partie"; + $result["action"] = "addequipe"; + } + else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "delequipe") { + $result["controller"] = "Partie"; + $result["action"] = "delequipe"; + } // à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit ! diff --git a/app/view/Partie/displayStepe1.html b/app/view/Partie/displayStepe1.html new file mode 100644 index 0000000..c6ce500 --- /dev/null +++ b/app/view/Partie/displayStepe1.html @@ -0,0 +1,56 @@ +<?php + $page_title = "Formulaire d'ajout de partie"; + 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"> + + Jeu : <?php echo $jeuactuel->nom; ?><br/> + Équipes :<br/> + <?php foreach($_SESSION['equipes'] as $ke => $e) { ?> + <h4>Équipe <?php echo $ke+1; ?> </h4> + <ul> + <?php + foreach($e as $k => $j){ ?> + <li> + <?php echo $j->pseudo; ?> + <form method="post" action="deljoueurs1"> + <input type="hidden" value="<?php echo $k;?>" name="joueurdel"/> + <input type="hidden" value="<?php echo $ke;?>" name="equipejdel"/> + <input type="submit" name="submit" value="supprimer ce joueur"/> + </form> + + </li> + <?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="hidden" value="<?php echo $ke;?>" name="equipejadd" id="equipejadd"/> + <input type="submit" name="submit" value="Ajouter un joueur"/> + </form> + <form method="post" action="delequipe"> + <input type="hidden" value="<?php echo $ke;?>" name="equipe"/> + <input type="submit" name="submit" value="Supprimer l'équipe <?php echo $ke;?>"/> + </form> + </ul> + <?php } ?> + <form method="post" action="addequipe"> + <input type="submit" name="submit" value="Ajouter une équipe"/> + </form> + + <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> + </div> +</article> + +<?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Partie/displayStepe2.html b/app/view/Partie/displayStepe2.html new file mode 100644 index 0000000..c63162b --- /dev/null +++ b/app/view/Partie/displayStepe2.html @@ -0,0 +1,31 @@ +<?php + $page_title = "Formulaire d'ajout de partie"; + 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 } ?> + </ul> + <br /> + <div class="submit"> + + <input type="reset" name="reset" value="Réinitialiser" /> + <input type="submit" name="submit" value="Demander l'ajout" /> + </div> + </form> + <form action="step1"> + <input type="submit" name="submit" value="Étape précédente" /> + </form> + </div> + </article> + +<?php include(ROOT."/app/view/Includes/footer.include.html"); ?> -- GitLab