diff --git a/app/controller/ProfilController.php b/app/controller/ProfilController.php new file mode 100644 index 0000000000000000000000000000000000000000..96d395396630046a65dbe5d30f8b021165cf5dd8 --- /dev/null +++ b/app/controller/ProfilController.php @@ -0,0 +1,9 @@ +<?php + +class ProfilController extends Controller { // classe de contrôleur pour l'affichage des profils + 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->profil = Profil::getFromSlug($slug); // on utilise le modèle pour aller chercher en BDD le profil qui nous intéresse + $this->view->display(); // on affiche ce profil + } +} diff --git a/app/model/Profil.php b/app/model/Profil.php new file mode 100644 index 0000000000000000000000000000000000000000..5e854c7c8f10818bc6632f6e69f853dcd22a166a --- /dev/null +++ b/app/model/Profil.php @@ -0,0 +1,25 @@ +<?php + +class Profil extends Model { // classe de modèle pour l'affichage de profils + public $pseudo, $slug; // on définit les attributs de la classe + + public static function getFromSlug($slug) { // méthode permettant de récupérer les informations relatives à un profil donné de 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 + $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->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 + } + + public static function getList() { // méthode permettant de récupérer la liste des profils de la BDD + $db = Database::getInstance(); // idem à au-dessus + $sql = "SELECT * FROM profils"; + $req = $db->query($sql); + $req->setFetchMode(PDO::FETCH_CLASS, "Profil"); + return $req->fetchAll(); + } +} + + + diff --git a/app/view/profil/display.html b/app/view/profil/display.html new file mode 100644 index 0000000000000000000000000000000000000000..846dba8b5efc9a9caee760609be4d5ae1072be53 --- /dev/null +++ b/app/view/profil/display.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"/> + <title>Exemple de profil</title> + <base href="http://localhost/projet-web-2016/www/"/> +</head> +<body> + <header> + <h1>Affichage d'un profil</h1> + </header> + <h2>Voici le profil de quelqu'un</h2> + <h3>Il s'agit du profil de <?php echo $this->profil->pseudo; ?></h3> + <p>Et on dit "Bonjour <?php echo $this->profil->pseudo; ?> ! :o)</p> + <p>Il a été appelé avec le slug : <?php echo $this->profil->slug; ?></p> + <footer> + <p>Le pied de page</p> + </footer> +</body> + + +</html>