From 4563dde6ebf9b97cce836339e58aa75f085ac05b Mon Sep 17 00:00:00 2001
From: Table <romain.drouin@ensiie.fr>
Date: Sun, 8 May 2016 11:35:57 +0200
Subject: [PATCH] Ajout de la gestion des joueurs

---
 app/controller/AdminController.php          | 17 ++++++-
 app/kernel/Router.php                       | 17 +++++++
 app/model/Admin.php                         | 13 ++++++
 app/view/Admin/display.html                 |  2 +-
 app/view/Admin/displayJoueur.html           | 50 +++++++++++++++++++++
 app/view/Admin/displaySupprimeJoueurOK.html | 17 +++++++
 6 files changed, 114 insertions(+), 2 deletions(-)
 create mode 100644 app/view/Admin/displayJoueur.html
 create mode 100644 app/view/Admin/displaySupprimeJoueurOK.html

diff --git a/app/controller/AdminController.php b/app/controller/AdminController.php
index 2e06505..bc3d236 100644
--- a/app/controller/AdminController.php
+++ b/app/controller/AdminController.php
@@ -90,4 +90,19 @@ class AdminController extends Controller {
         Admin::setModifJeu($slug, $data);
         header("Location:ok");
     }
-}
\ No newline at end of file
+    
+    public function displayJoueur() {
+        $this->view->joueurs = Profil::getList();
+        $this->view->display();
+    }
+    public function supprimeJoueur() {
+        $slug = $this->route["params"]["slug"];
+        Admin::supprJoueur($slug);
+        unlink(ROOT."/www/images/avatar/".$slug.".jpg");
+        header("Location:supprime/ok");
+    }
+
+    public function displaySupprimeJoueurOK() {
+        $this->view->display();
+    }
+}
diff --git a/app/kernel/Router.php b/app/kernel/Router.php
index 2973aa3..11b8c00 100644
--- a/app/kernel/Router.php
+++ b/app/kernel/Router.php
@@ -247,6 +247,23 @@ class Router
 				$result["params"]["slug"] = $parts[2];
 			}
 
+			else if($parts[0] == "admin" && count($parts) == 2 && $parts[1] == 'joueur') {
+				$result["controller"] = 'Admin';
+				$result['action'] = "displayJoueur";
+			}
+
+			else if($parts[0] == "admin" && count($parts) == 4 && $parts[1] == 'joueur' && $parts[3] == 'supprime') {
+				$result["controller"] = 'Admin';
+				$result['action'] = "supprimeJoueur";
+				$result["params"]["slug"] = $parts[2];
+			}
+
+			else if($parts[0] == "admin" && count($parts) == 5 && $parts[1] == 'joueur' && $parts[3] == 'supprime' && $parts[4] == 'ok') {
+				$result["controller"] = 'Admin';
+				$result['action'] = "displaySupprimeJoueurOK";
+				$result["params"]["slug"] = $parts[2];
+			}
+
             else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addjoueurs1") {
                 $result["controller"] = "Partie";
                 $result["action"] = "addjoueurs1";
diff --git a/app/model/Admin.php b/app/model/Admin.php
index 227e6a4..73df4e4 100644
--- a/app/model/Admin.php
+++ b/app/model/Admin.php
@@ -84,4 +84,17 @@ class Admin extends Model {
                                     ':min_equipes' => $data['min_equipes'],
                                     ':type_scores' => $data['type_scores']));
     }
+
+    public static function supprJoueur($slug) {
+        $db = Database::getInstance();
+        $sql= "DELETE FROM R_joueur_partie WHERE joueur = :slug";
+        $req = $db->prepare($sql);
+        $req->execute(array(':slug' => $slug));
+        $sql= "DELETE FROM R_joueur_jeu WHERE joueur = :slug";
+        $req = $db->prepare($sql);
+        $req->execute(array(':slug' => $slug));
+        $sql = "DELETE FROM R_joueur WHERE slug = :slug";
+        $req = $db->prepare($sql);
+        $req->execute(array(':slug' => $slug));
+    }
 }
\ No newline at end of file
diff --git a/app/view/Admin/display.html b/app/view/Admin/display.html
index 0e7afc1..ad92559 100644
--- a/app/view/Admin/display.html
+++ b/app/view/Admin/display.html
@@ -10,7 +10,7 @@ include(ROOT."/app/view/Includes/header.include.html");
             <a href="admin/jeu">Gestion des jeux</a>
         </h3>
         <h3>
-            Gestion des Joueurs
+            <a href="admin/joueur">Gestion des Joueurs</a>
         </h3>
         <h3>
             Gestion des Parties
diff --git a/app/view/Admin/displayJoueur.html b/app/view/Admin/displayJoueur.html
new file mode 100644
index 0000000..68fbf4b
--- /dev/null
+++ b/app/view/Admin/displayJoueur.html
@@ -0,0 +1,50 @@
+<?php
+	$page_title = "Page d'administration";
+include(ROOT."/app/view/Includes/header.include.html");
+?>
+
+<?php if(isset($_SESSION['user']) && Admin::estAdmin($_SESSION['user']->slug)) { ?>
+
+<article>
+    <h3 class="stat-title">Listes des Joueur</h3>
+    <table class="jeux-preferes">
+        <tr>
+            <th>Avatar</th>
+            <th>Pseudo</th>
+            <th>Nom</th>
+            <th>Prénom</th>
+            <th>email</th>
+        </tr>
+        <?php
+            foreach($this->joueurs as $ligne) {
+        print "
+        <tr>";
+            if($ligne->avatar) { print "
+            <td><a href=\"".BASE_URL."/profil/".$ligne->slug."\"> <img src=\"".BASE_URL."/images/avatar/".$ligne->slug.".jpg\" alt=\"avatar de ".$ligne->pseudo."\" /></a></td>
+            "; } else { print "
+            <td><a href=\"".BASE_URL."/profil/".$ligne->slug."\"> <img src=\"".BASE_URL."/images/profil_42.jpg\" alt=\"avatar de ".$ligne->pseudo."\" /></a></td>
+            "; }
+            print "
+            <td><a href=\"".BASE_URL."/profil/".$ligne->slug."\">".$ligne->pseudo."</a></td>
+            <td><a href=\"".BASE_URL."/profil/".$ligne->slug."\">".$ligne->nom."</a></td>
+            <td><a href=\"".BASE_URL."/profil/".$ligne->slug."\">".$ligne->prenom."</a></td>
+            <td><a href=\"mailto:".$ligne->email."\">".$ligne->email."</a></td>
+            <td><a href=\"joueur/".$ligne->slug."/supprime\"><img src=\"".BASE_URL."/images/cancel.svg\" /></a></td>
+        </tr>
+        ";
+        }
+        ?>
+    </table>
+</article>
+
+
+
+
+
+<?php } else { ?>
+
+<article class="msg-erreur">Vous n'êtes pas connecté comme administrateur</article>'
+
+<?php } ?>
+
+<?php include(ROOT."/app/view/Includes/footer.include.html"); ?>
\ No newline at end of file
diff --git a/app/view/Admin/displaySupprimeJoueurOK.html b/app/view/Admin/displaySupprimeJoueurOK.html
new file mode 100644
index 0000000..fb72152
--- /dev/null
+++ b/app/view/Admin/displaySupprimeJoueurOK.html
@@ -0,0 +1,17 @@
+<?php
+	$page_title = "Page d'administration";
+include(ROOT."/app/view/Includes/header.include.html");
+?>
+
+<?php if(isset($_SESSION['user']) && Admin::estAdmin($_SESSION['user']->slug)) { ?>
+
+<article class="msg-valide"><h2>Suppression réussie !</h2></article>
+
+
+<?php } else { ?>
+
+<article class="msg-erreur">Vous n'êtes pas connecté comme administrateur</article>
+
+<?php } ?>
+
+<?php include(ROOT."/app/view/Includes/footer.include.html"); ?>
-- 
GitLab