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

Modifications de la page de classement pour gérer l'affichage du classement...

Modifications de la page de classement pour gérer l'affichage du classement global ou du classement spécifique à un jeu donné.
parent 5bd112c6
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
......@@ -3,7 +3,20 @@
class ClassementController extends Controller { // classe de contrôleur pour l'affichage des classements
public function display() {
$slug = $this->route["params"]["slug"]; // on récupère le "slug", en gros tout le reste de l'URL qui n'a pas encore servi
$this->view->classement = Classement::getFromSlug($slug); // on utilise le modèle pour aller chercher en BDD le classement relatif au jeu qui nous intéresse
//explode du slug pour savoir si on veut le classement par jeu ou global
$parts = explode("/", $slug); // 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 le classement d'un jeu
$this->view->lejeu = $parts[1];
$this->view->classement = Classement::getFromSlug($parts[1]); // on utilise le modèle pour aller chercher en BDD le classement relatif au jeu qui nous intéresse
}
else if($parts[0] == "global") { // on veut consulter le classement d'un jeu
$this->view->lejeu = "général";
$this->view->classement = Classement::getGlobal(); // on utilise le modèle pour aller chercher en BDD le classement relatif au jeu qui nous intéresse
}
// et classement/global pour le classement général
$this->view->display(); // on affiche ce classement
}
}
......@@ -31,10 +31,13 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes
$result["action"] = "display"; // on veut afficher le profil de quelqu'un, donc on donne l'action "display"
$result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le pseudo de la personne), on le stocke aussi
}
else if($parts[0] == "classement" && 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] == "classement" && count($parts) > 1) { // 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"] = "Classement"; // 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["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le pseudo de la personne), on le stocke aussi
for($k=2; $k<count($parts); $k++) {
$result["params"]["slug"] = $result["params"]["slug"].'/'.$parts[$k];
}
}
// à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit !
......
<?php
class Classement extends Model { // classe de modèle pour l'affichage de classements
public $classement, $pseudo, $slug; // on définit les attributs de la 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 ne contient que le nom du jeu, mais ce n'est pas forcément judicieux. On pourrait imaginer plutôt qqch comme classement/jeu/nomDuJeu pour le classement général et classement/global pour le classement général. Donc il faudrait encore faire un explode() sur le slug.
//$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"=>"exemple","rank"=>1), array("pseudo"=>"nestor","rank"=>42));
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
//$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"=>"gen"), array("pseudo"=>"exemple","rank"=>1), array("pseudo"=>"gimli","rank"=>2), array("pseudo"=>"phoenix","rank"=>3), array("pseudo"=>"table","rank"=>4), array("pseudo"=>"nestor","rank"=>42));
}
}
......@@ -12,6 +12,8 @@
<h2>On mettra ici le nom du jeu</h2>
<p>Et ici la tableau contenant le classement.</p>
<p>Mais pour ça on a besoin de savoir quelle est la structure de la base de données... Et on ne la connait pas encore !</p>
<h2>Classement <?php echo $this->lejeu; ?></h2>
<table style="border:1px solid black;border-collapse:collapse;text-align:center;">
<tr><th>Pseudo</th><th>Rang</th></tr>
<?php foreach($this->classement as $courant) : ?>
......
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