diff --git a/app/controller/AdminController.php b/app/controller/AdminController.php index 2ec7d37aa5e9b8b6b1df414a4a241110a769b5a7..e2952968c205c8c092fa7b0ad327d502269e86fb 100644 --- a/app/controller/AdminController.php +++ b/app/controller/AdminController.php @@ -8,7 +8,48 @@ class AdminController extends Controller { public function displayJeu() { $this->view->nonValide = Admin::getListeJeuNonValide(); + $this->view->Valide = Admin::getListeJeuValide(); $this->view->display(); } + + public function acceptJeu() { + $slug = $this->route["params"]["slug"]; + if(Admin::acceptJeu($slug)) { + header("Location:valide/ok"); + } else { + session_start(); + $_SESSION['adminErr'] = 1; + header("Location:../../jeu"); + } + } + + public function displayAcceptJeuOK() { + $this->view->display(); + } + + public function supprimeJeu() { + $slug = $this->route["params"]["slug"]; + Admin::supprJeu($slug); + unlink(ROOT."/www/images/jeu/".$slug.".jpg"); + header("Location:supprime/ok"); + } + public function displaySupprimeJeuOK() { + $this->view->display(); + } + + public function unAcceptJeu() { + $slug = $this->route["params"]["slug"]; + if(Admin::unacceptJeu($slug)) { + header("Location:unvalide/ok"); + } else { + session_start(); + $_SESSION['adminErr'] = 1; + header("Location:../../jeu"); + } + } + + public function displayUnAcceptJeuOK() { + $this->view->display(); + } } \ No newline at end of file diff --git a/app/kernel/Router.php b/app/kernel/Router.php index f0850bed8cf678cb0645a69b1e849cf85eae4f54..60c0bc0561a141c36e4c2d44b393b63d985dd154 100644 --- a/app/kernel/Router.php +++ b/app/kernel/Router.php @@ -173,6 +173,42 @@ class Router $result['action'] = "displayJeu"; } + else if($parts[0] == "admin" && count($parts) == 4 && $parts[1] == 'jeu' && $parts[3] == 'valide') { + $result["controller"] = 'Admin'; + $result['action'] = "acceptJeu"; + $result["params"]["slug"] = $parts[2]; + } + + else if($parts[0] == "admin" && count($parts) == 5 && $parts[1] == 'jeu' && $parts[3] == 'valide' && $parts[4] == 'ok') { + $result["controller"] = 'Admin'; + $result['action'] = "displayAcceptJeuOK"; + $result["params"]["slug"] = $parts[2]; + } + + else if($parts[0] == "admin" && count($parts) == 4 && $parts[1] == 'jeu' && $parts[3] == 'supprime') { + $result["controller"] = 'Admin'; + $result['action'] = "supprimeJeu"; + $result["params"]["slug"] = $parts[2]; + } + + else if($parts[0] == "admin" && count($parts) == 5 && $parts[1] == 'jeu' && $parts[3] == 'supprime' && $parts[4] == 'ok') { + $result["controller"] = 'Admin'; + $result['action'] = "displaySupprimeJeuOK"; + $result["params"]["slug"] = $parts[2]; + } + + else if($parts[0] == "admin" && count($parts) == 4 && $parts[1] == 'jeu' && $parts[3] == 'unvalide') { + $result["controller"] = 'Admin'; + $result['action'] = "unAcceptJeu"; + $result["params"]["slug"] = $parts[2]; + } + + else if($parts[0] == "admin" && count($parts) == 5 && $parts[1] == 'jeu' && $parts[3] == 'unvalide' && $parts[4] == 'ok') { + $result["controller"] = 'Admin'; + $result['action'] = "displayUnAcceptJeuOK"; + $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 724a537eeced45d17970c7aad10dedb273999d81..bba11db4997e6a6a412c6ed64157b0f329b5e841 100644 --- a/app/model/Admin.php +++ b/app/model/Admin.php @@ -21,4 +21,52 @@ class Admin extends Model { return $res; } + public static function acceptJeu($slug) { + $db = Database::getInstance(); + $sql = "UPDATE R_jeu SET est_valide = 1 WHERE slug = :slug"; + $req = $db->prepare($sql); + return $req->execute(array(':slug' => $slug)); + } + + public static function supprJeu($slug) { + $db = Database::getInstance(); + $sql= "SELECT * FROM R_partie WHERE jeu = :slug"; + $req = $db->prepare($sql); + $req->execute(array(':slug' => $slug)); + $sql= "DELETE FROM R_joueur_partie WHERE partie = :partie"; + $req = $db->prepare($sql); + while($ligne = $req->fetch(PDO::FETCH_ASSOC)) { + $req->execute(array(':partie' => $ligne['id'])); + } + $sql= "DELETE FROM R_partie WHERE jeu = :slug"; + $req = $db->prepare($sql); + $req->execute(array(':slug' => $slug)); + $sql= "DELETE FROM R_joueur_jeu WHERE jeu = :slug"; + $req = $db->prepare($sql); + $req->execute(array(':slug' => $slug)); + $sql = "DELETE FROM R_jeu WHERE slug = :slug"; + $req = $db->prepare($sql); + $req->execute(array(':slug' => $slug)); + } + + public static function getListeJeuValide() { + $db = Database::getInstance(); // on récupère la connexion à la BDD + $sql = "SELECT * FROM R_jeu WHERE est_valide ORDER BY nom"; // on définit la requête qu'on enverra (on considère que le slug contient jeu/nomDuJeu pour le classement par jeu. Donc il faudrait encore faire un explode() sur le slug. + $req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs) + $req->execute(); + $res = array(); + while($ligne = $req->fetch(PDO::FETCH_ASSOC)) { // parcours toute la liste + $res[] = $ligne; + } + return $res; + } + + public static function unacceptJeu($slug) { + $db = Database::getInstance(); + $sql = "UPDATE R_jeu SET est_valide = 0 WHERE slug = :slug"; + $req = $db->prepare($sql); + return $req->execute(array(':slug' => $slug)); + } + + } \ No newline at end of file diff --git a/app/view/Admin/displayAcceptJeuOK.html b/app/view/Admin/displayAcceptJeuOK.html new file mode 100644 index 0000000000000000000000000000000000000000..e4f181cf7f618949e93c0ee5a6294ff35ffddf16 --- /dev/null +++ b/app/view/Admin/displayAcceptJeuOK.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>Ajout réussi !</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"); ?> diff --git a/app/view/Admin/displayJeu.html b/app/view/Admin/displayJeu.html index 76a24270bec28d36d6c3fcbc07e498c3ed3c6fa9..168e1040b715450dfcffd6c605f2282cf9082a88 100644 --- a/app/view/Admin/displayJeu.html +++ b/app/view/Admin/displayJeu.html @@ -5,6 +5,18 @@ include(ROOT."/app/view/Includes/header.include.html"); <?php if(isset($_SESSION['user']) && Admin::estAdmin($_SESSION['user']->slug)) { ?> +<?php + if(isset($_SESSION['addRequestErrCode'])) { // si message d'erreur + $errCode = $_SESSION['addRequestErrCode']; + if($errCode == 1) { // on détermine le message + $errMsg = '<h3>Impossible !</h3>'; + } + echo '<article class="msg-erreur">'.$errMsg.'</article>'; // on affiche le message + unset($_SESSION['addRequestErrCode']); // on retire la variable de session + } +?> + + <article> <h3 class="stat-title">Jeu(x) non Validé(s)</h3> <table class="jeux-preferes"> @@ -18,7 +30,7 @@ include(ROOT."/app/view/Includes/header.include.html"); <th>Min équipe</th> <th>Max équipe</th> </tr> - <?php + <?php foreach($this->nonValide as $ligne) { print " <tr> @@ -26,12 +38,12 @@ include(ROOT."/app/view/Includes/header.include.html"); <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['nom']."</a></td> <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['min_joueurs']."</a></td> <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['max_joueurs']."</a></td> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['type']."</a></td> <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['min_equipes']."</a></td> <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['max_equipes']."</a></td> - <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['type']."</a></td> - <td><a href=\"\"><img src=\"".BASE_URL."/images/ok.svg\" /></a></td> + <td><a href=\"jeu/".$ligne['slug']."/valide\"><img src=\"".BASE_URL."/images/ok.svg\" /></a></td> <td><a href=\"\"><img src=\"".BASE_URL."/images/modif.svg\" /></a></td> - <td><a href=\"\"><img src=\"".BASE_URL."/images/cancel.svg\" /></a></td> + <td><a href=\"jeu/".$ligne['slug']."/supprime\"><img src=\"".BASE_URL."/images/cancel.svg\" /></a></td> </tr> "; } @@ -40,6 +52,40 @@ include(ROOT."/app/view/Includes/header.include.html"); } ?> </table> + + <h3 class="stat-title">Jeu(x) Validé(s)</h3> + <table class="jeux-preferes"> + <?php if($this->nonValide != array()){ ?> + <tr> + <th>Logo</th> + <th>Nom</th> + <th>Min joueurs</th> + <th>Max joueurs</th> + <th>Type</th> + <th>Min équipe</th> + <th>Max équipe</th> + </tr> + <?php + foreach($this->Valide as $ligne) { + print " + <tr> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\"> <img src=\"".BASE_URL."/images/jeu/".$ligne['slug'].".jpg\" alt=\"logo de ".$ligne['nom']."\" /></a></td> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['nom']."</a></td> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['min_joueurs']."</a></td> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['max_joueurs']."</a></td> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['type']."</a></td> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['min_equipes']."</a></td> + <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['max_equipes']."</a></td> + <td><a href=\"\"><img src=\"".BASE_URL."/images/modif.svg\" /></a></td> + <td><a href=\"jeu/".$ligne['slug']."/unvalide\"><img src=\"".BASE_URL."/images/cancel.svg\" /></a></td> + </tr> + "; + } + } else { + print "Il n'y a pas de jeu validé."; + } + ?> + </table> </article> <?php } else { ?> diff --git a/app/view/Admin/displaySupprimeJeuOK.html b/app/view/Admin/displaySupprimeJeuOK.html new file mode 100644 index 0000000000000000000000000000000000000000..fb721522c37496cced358d77ad7ee9a0ce26b1a6 --- /dev/null +++ b/app/view/Admin/displaySupprimeJeuOK.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"); ?> diff --git a/app/view/Admin/displayUnAcceptJeuOK.html b/app/view/Admin/displayUnAcceptJeuOK.html new file mode 100644 index 0000000000000000000000000000000000000000..d4f0a3005a5853bbadf793b9cfcf3dffb339b8b5 --- /dev/null +++ b/app/view/Admin/displayUnAcceptJeuOK.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>Rejet réussi !</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"); ?>