You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.01-QCM_MuscuMaths/Website/controllers/ControllerAdminChapters.php

115 lines
3.4 KiB

<?php
namespace controllers;
use \Exception;
use \PDOException;
use models\ModelChapter;
class ControllerAdminChapters
{
private $mdChapter;
private $twig;
private $vues;
function __construct()
{
global $vues, $twig;
session_start();
try {
if ($_SESSION["idAdminConnected"] != null) {
$this->twig = $twig;
$this->vues = $vues;
$this->mdChapter = new ModelChapter();
$chapters = $this->mdChapter->getChapters();
echo $twig->render($vues["adminChapters"], [
'chapters' => $chapters,
'error' => $_SESSION["error"],
]);
$_SESSION["error"] = null;
} else {
header("Location:/loginAdmin");
}
} catch (PDOException $e) {
// Gérez les erreurs PDO ici
} catch (Exception $e2) {
// Gérez d'autres erreurs ici
}
}
function delete($param)
{
$this->mdChapter->deleteChapter($param["id"]);
header("Location:/admin/chapters");
}
function add($param)
{
$trimmedName = trim($_POST['name']);
if (isset($_POST['name']) && !empty($_POST['name']) && !empty($trimmedName)) {
$name = $_POST['name'];
$Chapter = [
'name' => $name,
];
$this->mdChapter->addChapter($Chapter);
header("Location:/admin/chapters");
} else {
$_SESSION["error"] = "Veuillez remplir le champ";
header("Location:/admin/chapters");
return;
}
}
function updatemodal($param)
{
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
$_SESSION["error"] = "Méthode non autorisée.";
header("Location:/admin/chapters");
} else {
$chapter = $this->mdChapter->getChapterByID($param["id"]) ?? null;
if ($chapter == null) {
$_SESSION["error"] = "Chapitre introuvable.";
header("Location:/admin/chapters");
} else {
echo $this->twig->render($this->vues["adminChaptersModal"], [
'chapter' => $chapter,
]);
}
}
}
function update($param)
{
var_dump($_SESSION["error"]);
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
$_SESSION["error"] = "Méthode non autorisée.";
header("Location:/admin/chapters");
} else {
$id = $_POST['id'];
$name = $_POST['name'];
$trimmedName = trim($_POST['name']);
if (!isset($name) || empty($name) || empty($trimmedName)) {
$_SESSION["error"] = "Veuillez remplir le champ.";
header("Location:/admin/chapters");
} else {
$chapter = $this->mdChapter->verifyChapterByName($name) ?? null;
if ($chapter != null) {
$_SESSION["error"] = "Ce chapitre existe déjà.";
header("Location:/admin/chapters");
} else {
$Chapter = [
'name' => $name,
];
$this->mdChapter->updateChapter($id, $Chapter);
header("Location:/admin/chapters");
}
}
}
}
}