Skip to content
Snippets Groups Projects
Commit 2313b3d2 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Conversion de la page de la liste des auteurs en la nouvelle norme.

parent e50aa969
No related branches found
No related tags found
No related merge requests found
...@@ -3,23 +3,10 @@ require_once("models/Auteur.php"); ...@@ -3,23 +3,10 @@ require_once("models/Auteur.php");
class ControleurAuteur class ControleurAuteur
{ {
public static function lireAuteurs() public static function lireAuteurs()
{ {
$titre = "les auteurs"; $auteurs = Auteur::getAllAuteurs();
$tableau = Auteur::getAllAuteurs(); return view('auteurs.liste-auteurs', ['auteurs' => $auteurs]);
$tableauAffichage = array();
foreach ($tableau as $auteur) {
$numAuteur = $auteur->getNumAuteur();
$nom = $auteur->getNom();
$prenom = $auteur->getPrenom();
$lienDetails = "<a class='bouton' href=\"index.php?controller=controleurAuteur&action=lireAuteur&numAuteur=$numAuteur\"> détails </a>";
$tableauAffichage[] = "<div class='ligne'><div>Auteur $prenom $nom</div><div> $lienDetails</div></div>";
}
include("resources/views/debut.php");
include("resources/views/menu.html");
include("resources/views/lesAuteurs.php");
include("resources/views/fin.html");
} }
public static function lireAuteur() public static function lireAuteur()
......
<?php <?php
function view(string $viewName, array $args): bool function view(string $viewName, array $args = []): bool
{ {
$viewPathParts = explode(".", $viewName); $viewPathParts = explode(".", $viewName);
$viewPath = ""; $viewPath = "";
......
<?php <?php
class Auteur {
class Auteur
{
// attributs // attributs
private $numAuteur; private int $numAuteur;
private $nom; private string $nom;
private $prenom; private string $prenom;
private $anneeNaissance; private ?int $anneeNaissance;
// getter // getter
public function getNumAuteur() {return $this->numAuteur;}
public function getNom() {return $this->nom;}
public function getPrenom() {return $this->prenom;}
public function getAnneeNaissance() {return $this->anneeNaissance;}
// setter public function __construct($nu = NULL, $n = NULL, $p = NULL, $a = NULL)
public function setNumAuteur($nu) {$this->numAuteur = $nu;} {
public function setNom($n) {$this->nom = $n;}
public function setPrenom($p) {$this->prenom = $p;}
public function setAnneeNaissance($a) {$this->anneeNaissance = $a;}
// un constructeur
public function __construct($nu = NULL, $n = NULL, $p = NULL, $a = NULL) {
if (!is_null($nu)) { if (!is_null($nu)) {
$this->numAuteur = $nu; $this->numAuteur = $nu;
$this->nom = $n; $this->nom = $n;
...@@ -29,13 +20,8 @@ class Auteur { ...@@ -29,13 +20,8 @@ class Auteur {
} }
} }
// une methode d'affichage. public static function getAllAuteurs()
public function afficher() { {
echo "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
}
// méthode static qui retourne les auteurs en un tableau d'objets
public static function getAllAuteurs() {
// écriture de la requête // écriture de la requête
$requete = "SELECT * FROM Auteur;"; $requete = "SELECT * FROM Auteur;";
// envoi de la requête et stockage de la réponse // envoi de la requête et stockage de la réponse
...@@ -46,8 +32,8 @@ class Auteur { ...@@ -46,8 +32,8 @@ class Auteur {
return $tableau; return $tableau;
} }
// méthode static qui retourne un auteur identifié par son numAuteur public static function getAuteurByNum($numAuteur)
public static function getAuteurByNum($numAuteur) { {
// écriture de la requête // écriture de la requête
$requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;"; $requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;";
$req_prep = Database::pdo()->prepare($requetePreparee); $req_prep = Database::pdo()->prepare($requetePreparee);
...@@ -67,5 +53,61 @@ class Auteur { ...@@ -67,5 +53,61 @@ class Auteur {
} }
} }
public function getNumAuteur()
{
return $this->numAuteur;
}
// setter
public function setNumAuteur($nu)
{
$this->numAuteur = $nu;
}
public function getNom()
{
return $this->nom;
} }
public function setNom($n)
{
$this->nom = $n;
}
public function getPrenom()
{
return $this->prenom;
}
// un constructeur
public function setPrenom($p)
{
$this->prenom = $p;
}
// une methode d'affichage.
public function getAnneeNaissance()
{
return $this->anneeNaissance;
}
// méthode static qui retourne les auteurs en un tableau d'objets
public function setAnneeNaissance($a)
{
$this->anneeNaissance = $a;
}
// méthode static qui retourne un auteur identifié par son numAuteur
public function afficher()
{
echo "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
}
}
?> ?>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Liste des auteurs</title>
<?=view('layouts.head')?>
</head>
<body class="">
<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">
<?php 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?controller=controleurAuteur&action=lireAuteur&numAuteur=<?=$auteur->getNumAuteur()?>">
Lire les détails
</a>
</div>
</div>
<?php } ?>
</div>
</div>
<?=view('layouts.footer')?>
</body>
</html>
\ No newline at end of file
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
\ No newline at end of file
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment