Skip to content
Snippets Groups Projects
Select Git revision
  • 7bbb0e5cc2364ca68061233f984ff2f99094d960
  • main default protected
2 results

ControleurLivre.php

Blame
  • 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"
                ]
            ]);
        }
    }