From d2f81341c1fee7eff778ebc08d6de01c07893c18 Mon Sep 17 00:00:00 2001
From: Sofiane Lasri <alasri250@gmail.com>
Date: Thu, 27 Oct 2022 23:34:34 +0200
Subject: [PATCH] Fin de TP4 ex4.

---
 .idea/deployment.xml                          |  3 ++-
 TP4/ex1/controller/ControleurAdherent.php     | 18 +++++++++++--
 TP4/ex1/controller/ControleurAuteur.php       | 19 ++++++++++++--
 TP4/ex1/controller/ControleurLivre.php        | 20 ++++++++++++--
 TP4/ex1/models/Adherent.php                   |  6 ++---
 TP4/ex1/models/Auteur.php                     |  2 +-
 TP4/ex1/models/Livre.php                      |  6 ++---
 .../views/adherents/les-adherents.php         | 25 ------------------
 .../resources/views/adherents/un-adherent.php | 10 -------
 .../resources/views/auteurs/les-auteurs.php   | 25 ------------------
 TP4/ex1/resources/views/auteurs/un-auteur.php | 10 -------
 TP4/ex1/resources/views/data-grid.php         | 26 +++++++++++++++++++
 TP4/ex1/resources/views/livres/les-livres.php | 25 ------------------
 TP4/ex1/resources/views/livres/un-livre.php   | 10 -------
 TP4/ex1/resources/views/simple-data.php       | 10 +++++++
 15 files changed, 96 insertions(+), 119 deletions(-)
 delete mode 100644 TP4/ex1/resources/views/adherents/les-adherents.php
 delete mode 100644 TP4/ex1/resources/views/adherents/un-adherent.php
 delete mode 100644 TP4/ex1/resources/views/auteurs/les-auteurs.php
 delete mode 100644 TP4/ex1/resources/views/auteurs/un-auteur.php
 create mode 100644 TP4/ex1/resources/views/data-grid.php
 delete mode 100644 TP4/ex1/resources/views/livres/les-livres.php
 delete mode 100644 TP4/ex1/resources/views/livres/un-livre.php
 create mode 100644 TP4/ex1/resources/views/simple-data.php

diff --git a/.idea/deployment.xml b/.idea/deployment.xml
index 8368176..681238b 100644
--- a/.idea/deployment.xml
+++ b/.idea/deployment.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="PublishConfigData" autoUpload="Always" serverName="VPS 1" autoUploadExternalChanges="true">
+  <component name="PublishConfigData" autoUpload="Always" serverName="VPS 1" confirmBeforeDeletion="false" autoUploadExternalChanges="true">
+    <option name="confirmBeforeDeletion" value="false" />
     <serverData>
       <paths name="VPS 1">
         <serverdata>
diff --git a/TP4/ex1/controller/ControleurAdherent.php b/TP4/ex1/controller/ControleurAdherent.php
index 3b12d30..bf36073 100644
--- a/TP4/ex1/controller/ControleurAdherent.php
+++ b/TP4/ex1/controller/ControleurAdherent.php
@@ -11,7 +11,18 @@ class ControleurAdherent
     public static function lireAdherents(): string
     {
         $adherents = Adherent::getAllAdherents();
-        return view('adherents.les-adherents', ['adherents' => $adherents]);
+        $objects = [];
+        foreach ($adherents as $adherent){
+            $object['title'] = $adherent->getPrenomAdherent() . " " . $adherent->getNomAdherent();
+            $object['desc'] = "ID: {$adherent->getLogin()}<br>Date d'adhésion: {$adherent->getDateAdhesion()->format("Y-m-d")}";
+            $object['url'] = "index.php?action=lireAdherent&login={$adherent->getLogin()}";
+            $objects[] = $object;
+        }
+        return view('data-grid', [
+            'pageTitle' => 'Liste des adhérents',
+            'pageDesc' => 'Voici la liste de tous les adhérents',
+            'objects' => $objects
+        ]);
     }
 
     /**
@@ -25,6 +36,9 @@ class ControleurAdherent
             die("Le paramètre login n'est pas spécifié.");
         }
         $adherent = Adherent::getAdherentByLogin($_GET["login"]);
-        return view('adherents.un-adherent', ['adherent' => $adherent]);
+        return view('simple-data', [
+            'pageTitle' => 'Information du libre',
+            'pageContent' => $adherent->afficher()
+        ]);
     }
 }
\ No newline at end of file
diff --git a/TP4/ex1/controller/ControleurAuteur.php b/TP4/ex1/controller/ControleurAuteur.php
index 08a476c..ec6ce17 100644
--- a/TP4/ex1/controller/ControleurAuteur.php
+++ b/TP4/ex1/controller/ControleurAuteur.php
@@ -13,7 +13,19 @@ class ControleurAuteur
     public static function lireAuteurs() : string
     {
         $auteurs = Auteur::getAllAuteurs();
-        return view('auteurs.les-auteurs', ['auteurs' => $auteurs]);
+
+        $objects = [];
+        foreach ($auteurs as $auteur){
+            $object['title'] = $auteur->getPrenom() . " " . $auteur->getNom();
+            $object['desc'] = "ID: {$auteur->getNumAuteur()}<br>Date de naissance: {$auteur->getAnneeNaissance()}";
+            $object['url'] = "index.php?action=lireAuteur&numAuteur={$auteur->getNumAuteur()}";
+            $objects[] = $object;
+        }
+        return view('data-grid', [
+            'pageTitle' => 'Liste des auteurs',
+            'pageDesc' => 'Voici la liste de tous les auteurs',
+            'objects' => $objects
+        ]);
     }
 
     /**
@@ -26,7 +38,10 @@ class ControleurAuteur
             die("Le paramètre numAuteur n'est pas spécifié.");
         }
         $auteur = Auteur::getAuteurByNum($_GET["numAuteur"]);
-        return view('auteurs.un-auteur', ['auteur' => $auteur]);
+        return view('simple-data', [
+            'pageTitle' => 'Information du libre',
+            'pageContent' => $auteur->afficher()
+        ]);
     }
 
 }
diff --git a/TP4/ex1/controller/ControleurLivre.php b/TP4/ex1/controller/ControleurLivre.php
index 52cbc86..bdbaca9 100644
--- a/TP4/ex1/controller/ControleurLivre.php
+++ b/TP4/ex1/controller/ControleurLivre.php
@@ -11,7 +11,19 @@ class ControleurLivre
     public static function lireLivres(): string
     {
         $livres = Livre::getAllLivres();
-        return view('livres.les-livres', ['livres' => $livres]);
+
+        $objects = [];
+        foreach ($livres as $livre){
+            $object['title'] = $livre->getTitre();
+            $object['desc'] = "ID: {$livre->getNumLivre()}<br>Année de parution: {$livre->getAnneeParution()}";
+            $object['url'] = "index.php?action=lireLivre&numLivre={$livre->getNumLivre()}";
+            $objects[] = $object;
+        }
+        return view('data-grid', [
+            'pageTitle' => 'Liste des livres',
+            'pageDesc' => 'Voici la liste de tous les livres',
+            'objects' => $objects
+        ]);
     }
 
     /**
@@ -25,6 +37,10 @@ class ControleurLivre
             die("Le paramètre numLivre n'est pas spécifié.");
         }
         $livre = Livre::getLivreByNumLivre($_GET["numLivre"]);
-        return view('livres.un-livre', ['livre' => $livre]);
+
+        return view('simple-data', [
+            'pageTitle' => 'Information du libre',
+            'pageContent' => $livre->afficher()
+        ]);
     }
 }
\ No newline at end of file
diff --git a/TP4/ex1/models/Adherent.php b/TP4/ex1/models/Adherent.php
index 5b85281..218c253 100644
--- a/TP4/ex1/models/Adherent.php
+++ b/TP4/ex1/models/Adherent.php
@@ -208,11 +208,11 @@ class Adherent
     }
 
     /**
-     * @return void
+     * @return string
      */
-    public function afficher(): void
+    public function afficher(): string
     {
-        echo "<p>" . $this->prenomAdherent . " " . $this->nomAdherent . " a rejoint le "
+        return "<p>" . $this->prenomAdherent . " " . $this->nomAdherent . " a rejoint le "
             .$this->dateAdhesion->format('Y-m-d H:i:s');
     }
 }
\ No newline at end of file
diff --git a/TP4/ex1/models/Auteur.php b/TP4/ex1/models/Auteur.php
index c73ec32..e0d2c52 100644
--- a/TP4/ex1/models/Auteur.php
+++ b/TP4/ex1/models/Auteur.php
@@ -107,7 +107,7 @@ class Auteur
 
     public function afficher()
     {
-        echo "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
+        return "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
     }
 
 }
diff --git a/TP4/ex1/models/Livre.php b/TP4/ex1/models/Livre.php
index 91e7a83..40a343f 100644
--- a/TP4/ex1/models/Livre.php
+++ b/TP4/ex1/models/Livre.php
@@ -128,11 +128,11 @@ class Livre
     }
 
     /**
-     * @return void
+     * @return string
      */
-    public function afficher(): void
+    public function afficher(): string
     {
-        echo "<p>" . $this->titre . " est paru en "
+        return "<p>" . $this->titre . " est paru en "
             . $this->anneeParution;
     }
 }
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/adherents/les-adherents.php b/TP4/ex1/resources/views/adherents/les-adherents.php
deleted file mode 100644
index 49444c3..0000000
--- a/TP4/ex1/resources/views/adherents/les-adherents.php
+++ /dev/null
@@ -1,25 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', 'Liste des adhérents')
-
-@section('content')
-    <div class="container">
-        <h1>Liste de tous les adhérents</h1>
-        <p>Voici la liste de tous les adhérents</p>
-        <div class="d-flex flex-wrap justify-content-between">
-            @foreach($adherents as $adherent)
-                <div class="card mb-2" style="width: 18rem;">
-                    <div class="card-body">
-                        <h5 class="card-title">{{ $adherent->getPrenomAdherent() }} {{ $adherent->getNomAdherent() }}</h5>
-                        <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?action=lireAdherent&login={{ $adherent->getLogin() }}">
-                            Lire les détails
-                        </a>
-                    </div>
-                </div>
-            @endforeach
-        </div>
-    </div>
-@endsection
\ 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
deleted file mode 100644
index 664a991..0000000
--- a/TP4/ex1/resources/views/adherents/un-adherent.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', 'Information de l'adhérent')
-
-@section('content')
-    <div class="container">
-        <h1>Information de l'adhérent</h1>
-        {{ $adherent->afficher() }}
-    </div>
-@endsection
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/auteurs/les-auteurs.php b/TP4/ex1/resources/views/auteurs/les-auteurs.php
deleted file mode 100644
index a9e2c3b..0000000
--- a/TP4/ex1/resources/views/auteurs/les-auteurs.php
+++ /dev/null
@@ -1,25 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', 'Liste des auteurs')
-
-@section('content')
-    <div class="container">
-        <h1>Liste de tous les auteurs</h1>
-        <p>Voici la liste de tous les auteurs</p>
-        <div class="d-flex flex-wrap justify-content-between">
-            @foreach ($auteurs as $auteur)
-                <div class="card mb-2" style="width: 18rem;">
-                    <div class="card-body">
-                        <h5 class="card-title">{{ $auteur->getPrenom() }} {{ $auteur->getNom() }}</h5>
-                        <p class="card-text">ID: {{ $auteur->getNumAuteur() }}<br>
-                        Date de naissance: {{ $auteur->getAnneeNaissance() }}</p>
-                        <a class="btn btn-primary"
-                           href="index.php?action=lireAuteur&numAuteur={{ $auteur->getNumAuteur() }}">
-                            Lire les détails
-                        </a>
-                    </div>
-                </div>
-            @endforeach
-        </div>
-    </div>
-@endsection
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/auteurs/un-auteur.php b/TP4/ex1/resources/views/auteurs/un-auteur.php
deleted file mode 100644
index dcc3dc3..0000000
--- a/TP4/ex1/resources/views/auteurs/un-auteur.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', 'Information de l'auteur')
-
-@section('content')
-    <div class="container">
-        <h1>Information de l'auteur</h1>
-        {{ $auteur->afficher() }}
-    </div>
-@endsection
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/data-grid.php b/TP4/ex1/resources/views/data-grid.php
new file mode 100644
index 0000000..bab5121
--- /dev/null
+++ b/TP4/ex1/resources/views/data-grid.php
@@ -0,0 +1,26 @@
+@extends('layouts.page-layout')
+
+@section('title', '{{ $pageTitle }}')
+
+@section('content')
+<div class="container">
+    <h1>{{ $pageTitle }}</h1>
+    <p>{{ $pageDesc }}</p>
+    <div class="d-flex flex-wrap justify-content-between">
+        @foreach($objects as $object)
+        <div class="card mb-2" style="width: 18rem;">
+            <div class="card-body">
+                <h5 class="card-title">{{ $object['title'] }}</h5>
+                <p class="card-text">
+                    {{ $object['desc'] }}
+                </p>
+                <a class="btn btn-primary"
+                   href="{{ $object['url'] }}">
+                    Lire les détails
+                </a>
+            </div>
+        </div>
+        @endforeach
+    </div>
+</div>
+@endsection
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/livres/les-livres.php b/TP4/ex1/resources/views/livres/les-livres.php
deleted file mode 100644
index f33924d..0000000
--- a/TP4/ex1/resources/views/livres/les-livres.php
+++ /dev/null
@@ -1,25 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', 'Liste des livres')
-
-@section('content')
-    <div class="container">
-        <h1>Liste de tous les livres</h1>
-        <p>Voici la liste de tous les livres</p>
-        <div class="d-flex flex-wrap justify-content-between">
-            @foreach($livres as $livre)
-                <div class="card mb-2" style="width: 18rem;">
-                    <div class="card-body">
-                        <h5 class="card-title">{{ $livre->getTitre() }}</h5>
-                        <p class="card-text">ID: {{ $livre->getNumLivre() }}<br>
-                            Année de parution: {{ $livre->getAnneeParution() }}</p>
-                        <a class="btn btn-primary"
-                           href="index.php?action=lireLivre&numLivre={{ $livre->getNumLivre() }}">
-                            Lire les détails
-                        </a>
-                    </div>
-                </div>
-            @endforeach
-        </div>
-    </div>
-@endsection
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/livres/un-livre.php b/TP4/ex1/resources/views/livres/un-livre.php
deleted file mode 100644
index ef0c1b6..0000000
--- a/TP4/ex1/resources/views/livres/un-livre.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', 'Information du livre')
-
-@section('content')
-    <div class="container">
-        <h1>Information du livre</h1>
-        {{ $livre->afficher() }}
-    </div>
-@endsection
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/simple-data.php b/TP4/ex1/resources/views/simple-data.php
new file mode 100644
index 0000000..17bbe51
--- /dev/null
+++ b/TP4/ex1/resources/views/simple-data.php
@@ -0,0 +1,10 @@
+@extends('layouts.page-layout')
+
+@section('title', '{{ $pageTitle }}')
+
+@section('content')
+<div class="container">
+    <h1>{{ $pageTitle }}</h1>
+    {{ $pageContent }}
+</div>
+@endsection
\ No newline at end of file
-- 
GitLab