From 8e64146941161c536feb31ca5594e4e9c2ed6c7d Mon Sep 17 00:00:00 2001
From: Sofiane Lasri <alasri250@gmail.com>
Date: Tue, 18 Oct 2022 10:01:45 +0200
Subject: [PATCH] =?UTF-8?q?Adh=C3=A9rent=20termin=C3=A9.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 TP4/ex1/controller/ControleurAdherent.php     | 11 +++++-
 TP4/ex1/controller/ControleurAuteur.php       |  4 +-
 TP4/ex1/models/Adherent.php                   | 38 ++++++++++++++-----
 TP4/ex1/models/Auteur.php                     |  8 ++--
 ...{liste-adherents.php => les-adherents.php} |  6 +--
 .../resources/views/adherents/un-adherent.php | 14 +++++++
 .../{liste-auteurs.php => les-auteurs.php}    |  6 +--
 .../{auteur-info.php => un-auteur.php}        |  4 +-
 .../views/{layouts => components}/footer.php  |  0
 .../views/{layouts => components}/head.php    |  0
 10 files changed, 68 insertions(+), 23 deletions(-)
 rename TP4/ex1/resources/views/adherents/{liste-adherents.php => les-adherents.php} (83%)
 create mode 100644 TP4/ex1/resources/views/adherents/un-adherent.php
 rename TP4/ex1/resources/views/auteurs/{liste-auteurs.php => les-auteurs.php} (83%)
 rename TP4/ex1/resources/views/auteurs/{auteur-info.php => un-auteur.php} (78%)
 rename TP4/ex1/resources/views/{layouts => components}/footer.php (100%)
 rename TP4/ex1/resources/views/{layouts => components}/head.php (100%)

diff --git a/TP4/ex1/controller/ControleurAdherent.php b/TP4/ex1/controller/ControleurAdherent.php
index 1cb10da..b4900c6 100644
--- a/TP4/ex1/controller/ControleurAdherent.php
+++ b/TP4/ex1/controller/ControleurAdherent.php
@@ -6,6 +6,15 @@ class ControleurAdherent
     public static function lireAdherents()
     {
         $adherents = Adherent::getAllAdherents();
-        return view('adherents.liste-adherents', ['adherents' => $adherents]);
+        return view('adherents.les-adherents', ['adherents' => $adherents]);
+    }
+
+    public static function lireAdherent()
+    {
+        if (empty($_GET["login"])) {
+            die("Le paramètre login n'est pas spécifié.");
+        }
+        $adherent = Adherent::getAdherentByLogin($_GET["login"]);
+        return view('adherents.un-adherent', ['adherent' => $adherent]);
     }
 }
\ No newline at end of file
diff --git a/TP4/ex1/controller/ControleurAuteur.php b/TP4/ex1/controller/ControleurAuteur.php
index 3044773..9a80bab 100644
--- a/TP4/ex1/controller/ControleurAuteur.php
+++ b/TP4/ex1/controller/ControleurAuteur.php
@@ -6,7 +6,7 @@ class ControleurAuteur
     public static function lireAuteurs()
     {
         $auteurs = Auteur::getAllAuteurs();
-        return view('auteurs.liste-auteurs', ['auteurs' => $auteurs]);
+        return view('auteurs.les-auteurs', ['auteurs' => $auteurs]);
     }
 
     public static function lireAuteur()
@@ -15,7 +15,7 @@ class ControleurAuteur
             die("Le paramètre numAuteur n'est pas spécifié.");
         }
         $auteur = Auteur::getAuteurByNum($_GET["numAuteur"]);
-        return view('auteurs.auteur-info', ['auteur' => $auteur]);
+        return view('auteurs.un-auteur', ['auteur' => $auteur]);
     }
 
 }
diff --git a/TP4/ex1/models/Adherent.php b/TP4/ex1/models/Adherent.php
index 13026fb..9b09e4c 100644
--- a/TP4/ex1/models/Adherent.php
+++ b/TP4/ex1/models/Adherent.php
@@ -33,15 +33,6 @@ class Adherent
         $this->numCategorie = $numCategorie;
     }
 
-    public function __set($property, $value){
-        echo "test";
-        if($property === "dateAdhesion"){
-            $this->dateAdhesion = new DateTime($value);
-        }else{
-            $this->$property = $value;
-        }
-    }
-
     public static function getAllAdherents(): array
     {
         // écriture de la requête
@@ -65,6 +56,35 @@ class Adherent
         return $tableau;
     }
 
+    public static function getAdherentByLogin($login) : Adherent
+    {
+        // écriture de la requête
+        $requetePreparee = "SELECT * FROM Adherent WHERE login = :login;";
+        $req_prep = Database::pdo()->prepare($requetePreparee);
+        // le tableau des valeurs
+        $valeurs = array("login" => $login);
+        $response = null;
+        try {
+            // envoi de la requête
+            $req_prep->execute($valeurs);
+            // traitement de la réponse
+            $req_prep->setFetchmode(PDO::FETCH_ASSOC);
+            // récupération de l'auteur
+            $row = $req_prep->fetch();
+            $response = new Adherent($row['login'],
+                $row['mdp'],
+                $row['nomAdherent'],
+                $row['prenomAdherent'],
+                $row['email'],
+                new DateTime($row['dateAdhesion']),
+                $row['numCategorie']);
+
+        } catch (PDOException $e) {
+            echo $e->getMessage();
+        }
+        return $response;
+    }
+
     /**
      * @return string
      */
diff --git a/TP4/ex1/models/Auteur.php b/TP4/ex1/models/Auteur.php
index 6a96513..c73ec32 100644
--- a/TP4/ex1/models/Auteur.php
+++ b/TP4/ex1/models/Auteur.php
@@ -39,18 +39,20 @@ class Auteur
         $req_prep = Database::pdo()->prepare($requetePreparee);
         // le tableau des valeurs
         $valeurs = array("num_tag" => $numAuteur);
+        $response = null;
         try {
             // envoi de la requête
             $req_prep->execute($valeurs);
             // traitement de la réponse
             $req_prep->setFetchmode(PDO::FETCH_CLASS, 'Auteur');
             // récupération de l'auteur
-            $a = $req_prep->fetch();
+            $response = $req_prep->fetch();
             // retour
-            return $a;
-        } catch (PDEException $e) {
+
+        } catch (PDOException $e) {
             echo $e->getMessage();
         }
+        return $response;
     }
 
     public function getNumAuteur()
diff --git a/TP4/ex1/resources/views/adherents/liste-adherents.php b/TP4/ex1/resources/views/adherents/les-adherents.php
similarity index 83%
rename from TP4/ex1/resources/views/adherents/liste-adherents.php
rename to TP4/ex1/resources/views/adherents/les-adherents.php
index cc865ea..01e941b 100644
--- a/TP4/ex1/resources/views/adherents/liste-adherents.php
+++ b/TP4/ex1/resources/views/adherents/les-adherents.php
@@ -2,7 +2,7 @@
 <head>
     <meta charset="utf-8">
     <title>Liste des adhérents</title>
-    <?=view('layouts.head')?>
+    <?=view('components.head')?>
 </head>
 <body class="">
 <div class="container">
@@ -16,7 +16,7 @@
                     <p class="card-text">ID: <?=$adherent->getLogin()?><br>
                         Date de naissance: <?=$adherent->getDateAdhesion()->format("Y-m-d")?></p>
                     <a class="btn btn-primary"
-                       href="index.php?controller=controleurAuteur&action=lireAuteur&numAuteur=<?=$adherent->getLogin()?>">
+                       href="index.php?action=lireAdherent&login=<?=$adherent->getLogin()?>">
                         Lire les détails
                     </a>
                 </div>
@@ -24,6 +24,6 @@
         <?php } ?>
     </div>
 </div>
-<?=view('layouts.footer')?>
+<?=view('components.footer')?>
 </body>
 </html>
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/adherents/un-adherent.php b/TP4/ex1/resources/views/adherents/un-adherent.php
new file mode 100644
index 0000000..387bdcc
--- /dev/null
+++ b/TP4/ex1/resources/views/adherents/un-adherent.php
@@ -0,0 +1,14 @@
+<html lang="fr">
+<head>
+    <meta charset="utf-8">
+    <title>Info de l'adhérent</title>
+    <?=view('components.head')?>
+</head>
+<body class="">
+<div class="container">
+    <h1>Information de l'adhérent</h1>
+    <?=$adherent->afficher()?>
+</div>
+<?=view('components.footer')?>
+</body>
+</html><?php
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/auteurs/liste-auteurs.php b/TP4/ex1/resources/views/auteurs/les-auteurs.php
similarity index 83%
rename from TP4/ex1/resources/views/auteurs/liste-auteurs.php
rename to TP4/ex1/resources/views/auteurs/les-auteurs.php
index a756b37..d9ad923 100644
--- a/TP4/ex1/resources/views/auteurs/liste-auteurs.php
+++ b/TP4/ex1/resources/views/auteurs/les-auteurs.php
@@ -2,7 +2,7 @@
 <head>
     <meta charset="utf-8">
     <title>Liste des auteurs</title>
-    <?=view('layouts.head')?>
+    <?=view('components.head')?>
 </head>
 <body class="">
     <div class="container">
@@ -16,7 +16,7 @@
                         <p class="card-text">ID: <?=$auteur->getNumAuteur()?><br>
                         Date de naissance: <?=$auteur->getAnneeNaissance()?></p>
                         <a class="btn btn-primary"
-                           href="index.php?controller=controleurAuteur&action=lireAuteur&numAuteur=<?=$auteur->getNumAuteur()?>">
+                           href="index.php?action=lireAuteur&numAuteur=<?=$auteur->getNumAuteur()?>">
                             Lire les détails
                         </a>
                     </div>
@@ -24,6 +24,6 @@
             <?php } ?>
         </div>
     </div>
-    <?=view('layouts.footer')?>
+    <?=view('components.footer')?>
 </body>
 </html>
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/auteurs/auteur-info.php b/TP4/ex1/resources/views/auteurs/un-auteur.php
similarity index 78%
rename from TP4/ex1/resources/views/auteurs/auteur-info.php
rename to TP4/ex1/resources/views/auteurs/un-auteur.php
index b8357ea..b8ac9ab 100644
--- a/TP4/ex1/resources/views/auteurs/auteur-info.php
+++ b/TP4/ex1/resources/views/auteurs/un-auteur.php
@@ -2,13 +2,13 @@
 <head>
     <meta charset="utf-8">
     <title>Info de l'auteur</title>
-    <?=view('layouts.head')?>
+    <?=view('components.head')?>
 </head>
 <body class="">
 <div class="container">
     <h1>Information de l'auteur</h1>
     <?=$auteur->afficher()?>
 </div>
-<?=view('layouts.footer')?>
+<?=view('components.footer')?>
 </body>
 </html><?php
diff --git a/TP4/ex1/resources/views/layouts/footer.php b/TP4/ex1/resources/views/components/footer.php
similarity index 100%
rename from TP4/ex1/resources/views/layouts/footer.php
rename to TP4/ex1/resources/views/components/footer.php
diff --git a/TP4/ex1/resources/views/layouts/head.php b/TP4/ex1/resources/views/components/head.php
similarity index 100%
rename from TP4/ex1/resources/views/layouts/head.php
rename to TP4/ex1/resources/views/components/head.php
-- 
GitLab