Select Git revision
ControleurLivre.php
ControleurLivre.php 4.90 KiB
<?php
require_once "ControleurObjet.php";
require_once("models/Livre.php");
class ControleurLivre extends ControleurObjet
{
protected static string $object = "Livre";
/**
* Charge la page de la liste des adhérents.
* @return string
* @throws Exception
*/
public static function lireLivres(): string
{
$livres = Livre::getAllLivres();
$objects = [];
foreach ($livres as $livre) {
$object['idName'] = "numLivre";
$object['idValue'] = $livre->numLivre;
$object['type'] = "Livre";
$object['title'] = $livre->titre;
$object['desc'] = "ID: $livre->numLivre<br>Année de parution: $livre->anneeParution";
$object['url'] = "index.php?action=lireLivre&numLivre=$livre->numLivre";
$object['specialLink']['text'] = '<span><i class="fa fa-users"></i> Définir les auteurs</span>';
$object['specialLink']['url'] = "index.php?action=definirAuteurs&numLivre=$livre->numLivre";
$objects[] = $object;
}
return view('data-grid', [
'pageTitle' => 'Liste des livres',
'pageDesc' => 'Voici la liste de tous les livres',
'objects' => $objects
]);
}
/**
* Charge la page du détail d'un adhérent.
* @return string
* @throws Exception
*/
public static function lireLivre(): string
{
if (empty($_GET["numLivre"])) {
die("Le paramètre numLivre n'est pas spécifié.");
}
$livre = Livre::getLivreByNumLivre($_GET["numLivre"]);
return view('simple-data', [
'pageTitle' => 'Information du livre',
'pageContent' => $livre->afficher()
]);
}
public static function definirAuteurs(): string
{
if (!empty($_GET["numLivre"])){
$autors = Auteur::getAllAuteurs();
$bookAutors = Auteur::getAuteursByNumLivre($_GET["numLivre"]);
$book = Livre::getLivreByNumLivre($_GET["numLivre"]);
$autorsList = [];
foreach ($autors as $auteur){
$isBookAutor = false;
foreach ($bookAutors as $bookAutor){
if($auteur->numAuteur == $bookAutor->numAuteur){
$isBookAutor = true;
break;
}
}
$autorsList[] = [
"numAuteur" => $auteur->numAuteur,
"nom" => $auteur->nom,
"prenom" => $auteur->prenom,
"anneeNaissance" => $auteur->anneeNaissance,
"isBookAutor" => $isBookAutor
];
}
return view('livre.definir-auteur', [
"autorsList" => $autorsList,
"book" => $book
]);
}else{
return view('return-message', [
'pageTitle' => "Définir les auteurs d'un livre",
'returnMessage' => [
"status" => "danger",
"title" => "Erreur",
"message" => "Il manque des paramètres dans l'url"
]
]);
}
}
public static function supprimerAuteurDuLivre(): string
{
if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])){
Livre::deleteAuteurForLivre($_GET["numLivre"], $_GET["numAuteur"]);
return view('return-message', [
'pageTitle' => "Supprimer un auteur d'un livre",
'returnMessage' => [
"status" => "success",
"title" => "Supprimer un auteur d'un livre",
"message" => "Suppression de l'auteur réussie."
]
]);
}
return view('return-message', [
'pageTitle' => "Supprimer un auteur d'un livre",
'returnMessage' => [
"status" => "danger",
"title" => "Erreur",
"message" => "Il manque des paramètres dans l'url"
]
]);
}
public static function ajouterAuteurDuLivre(): string
{
if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])){
Livre::addAuteurForLivre($_GET["numLivre"], $_GET["numAuteur"]);
return view('return-message', [
'pageTitle' => "ajouter un auteur à un livre",
'returnMessage' => [
"status" => "success",
"title" => "Supprimer un auteur d'un livre",
"message" => "Suppression de l'auteur réussie."
]
]);
}
return view('return-message', [
'pageTitle' => "ajouter un auteur à un livre",
'returnMessage' => [
"status" => "danger",
"title" => "Erreur",
"message" => "Il manque des paramètres dans l'url"
]
]);
}
}