From 8933d42027905e65ed9d2e28e718184cb134891c Mon Sep 17 00:00:00 2001 From: SofianeLasri <alasri250@gmail.com> Date: Tue, 29 Nov 2022 21:22:09 +0100 Subject: [PATCH] =?UTF-8?q?TP8=20Ex3=20termin=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/ControleurLivre.php | 86 +++++++++++++++++++++++- index.php | 2 + resources/views/livre/definir-auteur.php | 39 +++++++++++ 3 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 resources/views/livre/definir-auteur.php diff --git a/controller/ControleurLivre.php b/controller/ControleurLivre.php index 8d47615..1cbfc5a 100644 --- a/controller/ControleurLivre.php +++ b/controller/ControleurLivre.php @@ -54,6 +54,90 @@ class ControleurLivre extends ControleurObjet public static function definirAuteurs(): string { - return ""; + 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 $livreAuteur){ + if($auteur->numAuteur == $livreAuteur->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" + ] + ]); } } \ No newline at end of file diff --git a/index.php b/index.php index 03d008d..4825144 100644 --- a/index.php +++ b/index.php @@ -33,6 +33,8 @@ if (empty($_REQUEST["action"])) { "supprimerObjet" => ControleurObjet::supprimerObjet(), "definirAuteurs" => ControleurLivre::definirAuteurs(), "definirNationalites" => ControleurAuteur::definirNationalites(), + "supprimerAuteurDuLivre" => ControleurLivre::supprimerAuteurDuLivre(), + "ajouterAuteurDuLivre" => ControleurLivre::ajouterAuteurDuLivre(), default => ControleurAuteur::lireAuteur(), }; } catch (Exception $e) { diff --git a/resources/views/livre/definir-auteur.php b/resources/views/livre/definir-auteur.php new file mode 100644 index 0000000..91e9af5 --- /dev/null +++ b/resources/views/livre/definir-auteur.php @@ -0,0 +1,39 @@ +@extends('layouts.page-layout') + +@section('title', 'Définir les auteurs d'un livre') + +@section('content') +<div class="container mt-3"> + <h1>Définir les auteurs d'un livre</h1> + <p>Voici la liste des auteurs. Vous pouvez choisir de les associers ou de les dissociers du livre.</p> + + <table class="table"> + <thead> + <tr class="table-dark"> + <th scope="col">n°</th> + <th scope="col">Nom</th> + <th scope="col">Prénom</th> + <th scope="col">Année de naissance</th> + <th scope="col">Action</th> + </tr> + </thead> + <tbody> + @foreach($autorsList as $autor) + <tr> + <th scope="row">{{ $autor['numAuteur'] }}</th> + <td>{{ $autor['nom'] }}</td> + <td>{{ $autor['prenom'] }}</td> + <td>{{ $autor['anneeNaissance'] }}</td> + @if($autor['isBookAutor']) + <td><a href="index.php?action=supprimerAuteurDuLivre&numLivre={{ $book->numLivre }}&numAuteur={{ $autor['numAuteur'] }}" + class="btn btn-sm btn-danger">Dissocier</a> </td> + @else + <td><a href="index.php?action=ajouterAuteurDuLivre&numLivre={{ $book->numLivre }}&numAuteur={{ $autor['numAuteur'] }}" + class="btn btn-sm btn-success">Associer</a> </td> + @endif + </tr> + @endforeach + </tbody> + </table> +</div> +@endsection \ No newline at end of file -- GitLab