action avoirDetailEvenement fonctionnel

evenements
Clément VERDOIRE 1 year ago
parent 80ca88b7ea
commit 39f89f0b4e

@ -19,7 +19,7 @@ class FrontControleur
"deconnexion","proposerOffre","consulterProfil","modifierProfil","signaler" "deconnexion","proposerOffre","consulterProfil","modifierProfil","signaler"
], ],
"Utilisateur" => [ "Utilisateur" => [
"connection", "inscription", "accueil","consulterProfilLimite","listerEvenement", "creerEvenement", "supprimerEvenement" "connection", "inscription", "accueil","consulterProfilLimite","listerEvenement", "creerEvenement", "supprimerEvenement", "avoirDetailEvenement"
] ]
); );

@ -61,6 +61,9 @@ class UtilisateurControleur
case "supprimerEvenement": case "supprimerEvenement":
$this->supprimerEvenement(); $this->supprimerEvenement();
break; break;
case "avoirDetailEvenement":
$this->avoirDetailEvenement();
break;
default: default:
$dVueErreur[] ="Action inconnue ou non autorisée"; $dVueErreur[] ="Action inconnue ou non autorisée";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]); echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
@ -199,4 +202,14 @@ class UtilisateurControleur
echo $twig->render('evenement.html', ['evenements' => $evenements]); echo $twig->render('evenement.html', ['evenements' => $evenements]);
} }
protected function avoirDetailEvenement()
{
$mdl = new \App\modele\UtilisateurModele();
$evenement = $mdl->getEvenementById($_GET["id"]);
global $twig;
$twig->addExtension(new TwigExtensions());
echo $twig->render('detailEvenement.html', ['evenement' => $evenement]);
}
} }

@ -50,4 +50,14 @@ class EvenementGateway
':id' => array($id, \PDO::PARAM_INT) ':id' => array($id, \PDO::PARAM_INT)
)); ));
} }
public function findById($id)
{
$query='SELECT * FROM Evenement WHERE id=:id';
$this->con->executeQuery($query, array(
':id' => array($id, \PDO::PARAM_INT)
));
$res=$this->con->getResults();
return $res;
}
} }

@ -127,4 +127,36 @@ class UtilisateurModele
$gate->deleteEvenement($id); $gate->deleteEvenement($id);
} }
public function getEvenementById(int $id) : Evenement
{
global $dsn, $username, $password;
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\EvenementGateway($con);
$gateImage = new \App\gateway\ImageGateway($con);
$data = $gate->findById($id);
$imgRaw = $gateImage->obtenirParId($data[0]['image']);
$img = new Image(
intval($imgRaw[0]["id"]),
$imgRaw[0]['nom'],
$imgRaw[0]['taille'],
$imgRaw[0]['type'],
$imgRaw[0]['blob']
);
$evenement = new \App\metier\Evenement(
$data[0]['id'],
$data[0]['organisateur'],
$data[0]['titre'],
$data[0]['description'],
$data[0]['date'],
$data[0]['nbPlaceMax'],
$img
);
return $evenement;
}
} }

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Détails de l'Événement</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="css/evenement_details.css"> <!-- You can create a separate CSS file for event details -->
</head>
<body>
<header>
{% include "menu.html" %}
</header>
<div class="container mt-4">
{% if evenement %}
<h1>Détails de l'Événement</h1>
<div class="event-details">
<h2>{{ evenement.titre }}</h2>
<p><strong>Organisateur:</strong> {{ evenement.organisateurId }}</p>
<p><strong>Date:</strong> {{ evenement.date }}</p>
<p><strong>Description:</strong> {{ evenement.description }}</p>
<img src="data:image/png;base64,{{ evenement.getImage().getBlob() | base64 }}" width="250px" class="img-fluid" alt="Event Image">
<p><strong>Places disponibles:</strong> {{ evenement.nbPlaceMax }}</p>
<a href="../public/index.php?action=listerEvenement" class="btn btn-primary">Retour</a>
</div>
{% else %}
<p>L'événement n'existe pas ou n'est pas disponible.</p>
{% endif %}
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>

@ -25,6 +25,7 @@
<p><strong>Description:</strong> {{ evenement.description }}</p> <p><strong>Description:</strong> {{ evenement.description }}</p>
<img src="data:image/png;base64,{{ evenement.getImage().getBlob() | base64 }}" width="250px" class="img-fluid"> <img src="data:image/png;base64,{{ evenement.getImage().getBlob() | base64 }}" width="250px" class="img-fluid">
<p><strong>Places disponibles:</strong> {{ evenement.nbPlaceMax }}</p> <p><strong>Places disponibles:</strong> {{ evenement.nbPlaceMax }}</p>
<a href="../public/index.php?action=avoirDetailEvenement&id={{ evenement.id }}" class="btn btn-primary">Détails</a>
</div> </div>
<a href="../public/index.php?action=supprimerEvenement&id={{ evenement.id }}" id="deleteButton"> <a href="../public/index.php?action=supprimerEvenement&id={{ evenement.id }}" id="deleteButton">
<img src="assets/close.png" alt="Supprimer" width="20px"> <img src="assets/close.png" alt="Supprimer" width="20px">

Loading…
Cancel
Save