diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..723ef36f4e4f32c4560383aa5987c575a30c6535 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file diff --git a/app/controller/JeuController.php b/app/controller/JeuController.php index e6d070a6890423e7fecd22c323651a5dfb979a79..52d8547a6d3b731a857116c10f6823a51008488e 100644 --- a/app/controller/JeuController.php +++ b/app/controller/JeuController.php @@ -1,10 +1,14 @@ <?php class JeuController extends Controller { - public function display() { - $slug = $this->route["params"]["slug"]; - $this->view->jeu = Jeu::getFromSlug($slug); - $this->view->display(); - } - + public function display() { + $slug = $this->route["params"]["slug"]; + $this->view->jeu = Jeu::getFromSlug($slug); + $this->view->display(); + } + + public function displayListe() { + $this->view->liste = Jeu::getList(); + $this->view->display(); + } } diff --git a/app/kernel/Router.php b/app/kernel/Router.php index a2b339b029cdca9c8da9916b6032d7569c199589..7918cd3432d5757fb57d4297a0380835c1f9c424 100644 --- a/app/kernel/Router.php +++ b/app/kernel/Router.php @@ -16,11 +16,16 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes } else { // sinon, on a des infos sur la page demandée $parts = explode("/", $query); // on sépare la requête selon les /, et on regarde ce qu'on connait comme ordres dedans - if($parts[0] == "jeu" && count($parts) == 2) { // on veut consulter la fiche d'un jeu (je sais pas si y'a ça de prévu, mais ça servira d'exemple) + if($parts[0] == "jeu" && count($parts) == 2) { // on veut consulter la fiche d'un jeu $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat $result["action"] = "display"; // on veut afficher les informations d'un jeu, donc on donne l'action "display" $result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le nom/id du jeu), on le stocke aussi } + else if($parts[0] == "listejeux") { // on veut consulter la liste des jeux + $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat + $result["action"] = "displayListe"; // on veut afficher la liste des jeux, donc on donne l'action "displayListe" + // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"] + } else if($parts[0] == "profil" && count($parts) == 2) { // autre possibilité : on veut consulter un profil (le premier bout de la requête est "profil", et on a au moins un paramètre derrière) $result["controller"] = "Profil"; // le contrôleur à instancier sera "ProfilController", on met donc "Profil" dans la variable de résultat $result["action"] = "display"; // on veut afficher le profil de quelqu'un, donc on donne l'action "display" diff --git a/app/model/Jeu.php b/app/model/Jeu.php index df1905a4f8a0edbde3eaa42ec191ab8f6ac952d3..614dd375e977ba97f3e1fbe4428dc551ba8978ab 100644 --- a/app/model/Jeu.php +++ b/app/model/Jeu.php @@ -7,7 +7,7 @@ class Jeu extends Model { $db = Database::getInstance(); $sql = "SELECT * FROM jeux WHERE slug = :slug"; $stmt = $db->prepare($sql); - $stmt->setFetchMode(PDO::FETCH_CLASS, "Jeu"); + $stmt->setFetchMode(PDO::FETCH_CLASS, "Jeu"); // règle le type dans lequel on doit mettre les données (PDO va chercher les attributs de la classe de même nom que ses colonnes de BDD et mettre dedans les valeurs correspondantes) $stmt->execute(array(":slug" => $slug)); return $stmt->fetch(); } diff --git a/app/model/Profil.php b/app/model/Profil.php index 5e854c7c8f10818bc6632f6e69f853dcd22a166a..0efe32f5890c581cb890af366f51ecc0443453f6 100644 --- a/app/model/Profil.php +++ b/app/model/Profil.php @@ -7,7 +7,7 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils $db = Database::getInstance(); // on récupère la connexion à la BDD $sql = "SELECT * FROM profils WHERE slug = :slug"; // on définit la requête qu'on enverra $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->setFetchMode(PDO::FETCH_CLASS, "Profil"); // règle le mode de parcours des résultats + $req->setFetchMode(PDO::FETCH_CLASS, "Profil"); // règle le type dans lequel on doit mettre les données (PDO va chercher les attributs de la classe de même nom que ses colonnes de BDD et mettre dedans les valeurs correspondantes) $req->execute(array(":slug" => $slug)); // on remplace le "::slug" par sa valeur dans la requête return $req->fetch(); // on retourne le premier (et normalement unique) résultat en BDD } diff --git a/app/view/index/display.html b/app/view/index/display.html index 41b8eeda8d014aaf4fab673b8beb49222d8a6809..a835a6517153c0b9756fc4cb9d222da95b9d5a1a 100644 --- a/app/view/index/display.html +++ b/app/view/index/display.html @@ -11,10 +11,10 @@ </header> <h2>On peut faire plein de trucs avec ça !</h2> - <h2>Liste de jeux</h2> + <h2><a href="listejeux">Liste de jeux</a></h2> <ul> <?php foreach($this->list as $jeu) : ?> - <li><a href="jeu/<?php echo $jeu->slug;?>"><?php echo $jeu->description;?></a></li> + <li><a href="jeu/<?php echo $jeu->slug;?>"><?php echo $jeu->nom;?></a></li> <?php endforeach;?> </ul> diff --git a/app/view/jeu/display.html b/app/view/jeu/display.html index f3d467e7e5c214c71e1b47571df60c1192826a4a..4fdaaac0a9dfaf3a55a835ce1dc8173946d097f0 100644 --- a/app/view/jeu/display.html +++ b/app/view/jeu/display.html @@ -2,15 +2,14 @@ <html> <head> <meta charset="utf-8"/> - <title>Affichage d'un jeu</title> + <title>Fiche d'un jeu</title> <base href="http://localhost/projet-web-2016/www/"/> </head> <body> <header> - <h1>Exemple d'affichage d'un jeu</h1> + <h1>Fiche du jeu <?php echo $this->jeu->nom; ?></h1> </header> - <h2><?php echo $this->jeu->nom; ?></h2> - <h3><?php echo $this->jeu->description; ?></h3> + <p><em>Description : </em><?php echo $this->jeu->description; ?></p> <footer> <p>Pied de page...</p> </footer> diff --git a/app/view/jeu/displayListe.html b/app/view/jeu/displayListe.html new file mode 100644 index 0000000000000000000000000000000000000000..7babd344b39a5745e531e66c90ac05023a00fcff --- /dev/null +++ b/app/view/jeu/displayListe.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"/> + <title>Liste des jeux</title> + <base href="http://localhost/projet-web-2016/www/"/> +</head> +<body> + <header> + <h1>La liste de nos jeux</h1> + </header> + <ul> + <?php foreach($this->liste as $jeu) : ?> + <li><a href="jeu/<?php echo $jeu->slug;?>"><?php echo $jeu->nom;?></a></li> + <?php endforeach;?> + </ul> + <footer> + <p>Pied de page...</p> + </footer> +</body> + + +</html>