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