Skip to content
Extraits de code Groupes Projets
Valider 354d1485 rédigé par vbochet's avatar vbochet
Parcourir les fichiers

Modifications et ajout de fichiers pour ajouter une page permettant de lister les jeux du site.

parent 60f12b4a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!1Merge de dev-nestor sur dev
.idea
\ No newline at end of file
<?php <?php
class JeuController extends Controller { class JeuController extends Controller {
public function display() { public function display() {
$slug = $this->route["params"]["slug"]; $slug = $this->route["params"]["slug"];
$this->view->jeu = Jeu::getFromSlug($slug); $this->view->jeu = Jeu::getFromSlug($slug);
$this->view->display(); $this->view->display();
} }
public function displayListe() {
$this->view->liste = Jeu::getList();
$this->view->display();
}
} }
...@@ -16,11 +16,16 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes ...@@ -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 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 $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["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["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 $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) 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["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" $result["action"] = "display"; // on veut afficher le profil de quelqu'un, donc on donne l'action "display"
......
...@@ -7,7 +7,7 @@ class Jeu extends Model { ...@@ -7,7 +7,7 @@ class Jeu extends Model {
$db = Database::getInstance(); $db = Database::getInstance();
$sql = "SELECT * FROM jeux WHERE slug = :slug"; $sql = "SELECT * FROM jeux WHERE slug = :slug";
$stmt = $db->prepare($sql); $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)); $stmt->execute(array(":slug" => $slug));
return $stmt->fetch(); return $stmt->fetch();
} }
......
...@@ -7,7 +7,7 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils ...@@ -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 $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 $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 = $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 $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 return $req->fetch(); // on retourne le premier (et normalement unique) résultat en BDD
} }
......
...@@ -11,10 +11,10 @@ ...@@ -11,10 +11,10 @@
</header> </header>
<h2>On peut faire plein de trucs avec ça !</h2> <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> <ul>
<?php foreach($this->list as $jeu) : ?> <?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;?> <?php endforeach;?>
</ul> </ul>
......
...@@ -2,15 +2,14 @@ ...@@ -2,15 +2,14 @@
<html> <html>
<head> <head>
<meta charset="utf-8"/> <meta charset="utf-8"/>
<title>Affichage d'un jeu</title> <title>Fiche d'un jeu</title>
<base href="http://localhost/projet-web-2016/www/"/> <base href="http://localhost/projet-web-2016/www/"/>
</head> </head>
<body> <body>
<header> <header>
<h1>Exemple d'affichage d'un jeu</h1> <h1>Fiche du jeu <?php echo $this->jeu->nom; ?></h1>
</header> </header>
<h2><?php echo $this->jeu->nom; ?></h2> <p><em>Description : </em><?php echo $this->jeu->description; ?></p>
<h3><?php echo $this->jeu->description; ?></h3>
<footer> <footer>
<p>Pied de page...</p> <p>Pied de page...</p>
</footer> </footer>
......
<!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>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter