From 1a1c6ba3497c91a52659292439b02c703f77fdbb Mon Sep 17 00:00:00 2001
From: Table <romain.drouin@ensiie.fr>
Date: Tue, 3 May 2016 23:21:41 +0200
Subject: [PATCH] prise en compte du classsement de la base dans la fiche d'un
 jeu

---
 app/controller/JeuController.php |  1 +
 app/model/Classement.php         | 22 +++++++++++++++-------
 app/view/Jeu/display.html        | 17 +++++++++++------
 3 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/app/controller/JeuController.php b/app/controller/JeuController.php
index 4aa041b..4aab222 100644
--- a/app/controller/JeuController.php
+++ b/app/controller/JeuController.php
@@ -4,6 +4,7 @@ class JeuController extends Controller {
 	public function display() {
 		$slug = $this->route["params"]["slug"]; //cf. le commentaire dans ProfilController.php
 		$this->view->jeu = Jeu::getFromSlug($slug);
+		$this->view->classement = Classement::getFromSlug($slug);
 		$this->view->display();
 	}
 
diff --git a/app/model/Classement.php b/app/model/Classement.php
index 4cc006b..898f298 100644
--- a/app/model/Classement.php
+++ b/app/model/Classement.php
@@ -4,13 +4,21 @@ class Classement extends Model { // classe de modèle pour l'affichage de classe
 	public $classement, $lejeu, $slug; // on définit les attributs de la classe
 	
 	public static function getFromSlug($slug) { // méthode permettant de récupérer le classement relatif à un jeu donné de la BDD
-		//$db = Database::getInstance(); // on récupère la connexion à la BDD
-		//$sql = "SELECT * FROM classements WHERE jeu = :slug"; // 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->setFetchMode(PDO::FETCH_CLASS, "Classement"); // 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
-		return array(array("pseudo"=>"debug","rank"=>$slug), array("pseudo"=>"exemple","rank"=>1), array("pseudo"=>"nestor","rank"=>42));
+		$db = Database::getInstance(); // on récupère la connexion à la BDD
+		$sql = "SELECT * FROM R_joueur_jeu WHERE jeu = :slug ORDER BY classement"; // 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->setFetchMode(PDO::FETCH_CLASS, "Classement"); // 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
+		$res = array();
+		while($ligne = $req->fetch(PDO::FETCH_ASSOC)) { // parcours toute la liste
+			$perso = Profil::getFromSlug($ligne['joueur']);
+			$res[] = array(	'slug' => $ligne['joueur'],
+							'pseudo' => $perso->pseudo,
+							'score' => $ligne['score'],
+							'classement' => $ligne['classement']);
+		}
+		return $res;
+		//return array(array("pseudo"=>"debug","rank"=>$slug), array("pseudo"=>"exemple","rank"=>1), array("pseudo"=>"nestor","rank"=>42));
 	}
 	
 	public static function getGlobal() { // méthode permettant de récupérer le classement génaral de la BDD
diff --git a/app/view/Jeu/display.html b/app/view/Jeu/display.html
index eb02f83..35a394c 100644
--- a/app/view/Jeu/display.html
+++ b/app/view/Jeu/display.html
@@ -13,17 +13,22 @@
                 </p>
             </div>
         </article>
-
         <div class="classement-card">
             <table class="classement-table">
                 <tr><th>N°</th><th colspan="2">Joueur</th><th>Score</th></tr>
-                <tr><td>1</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/dummy_web_page.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Gaston</a></td><td>3000000</td></tr>
-                <tr><td>2</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/profil_42.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Laurent</a></td><td>150000</td></tr>
-                <tr><td>3</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/dummy_web_page.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Jerémy</a></td><td>15200</td></tr>
-                <tr><td>4</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/profil_42.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Lucas</a></td><td>500</td></tr>
-                <tr><td>5</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/dummy_web_page.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Christophe</a></td><td>-400</td></tr>
+                <? foreach($this->classement as $ligne) {
+                echo "
+                <tr>
+                    <td>".$ligne['classement']."</td>
+                    <td><a href=\"../profil/".$ligne['slug']."\"><img src=\"<?php echo BASE_URL; ?>/images/dummy_web_page.jpg\" alt=\"Image de profil de ".$ligne['pseudo']."\" class=\"classement-profil-img\"></a></td>
+                    <td><a href=\"../profil/".$ligne['slug']."\">".$ligne['pseudo']."</a></td>
+                    <td>".$ligne['score']."</td>
+                </tr>";
 
+                }
+                ?>
             </table>
         </div>
+
 		
 <?php include(ROOT."/app/view/Includes/footer.include.html"); ?>
-- 
GitLab