action rechercherEvenement fonctionnelle

evenements
Clément Verdoire 1 year ago
parent ceede5dfde
commit 1b0f96ac9e

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

@ -2,6 +2,7 @@
namespace App\controleur;
use App\config\Validation;
use App\gateway\Connection;
use App\gateway\ImageGateway;
use App\gateway\OffreGateway;
@ -64,6 +65,9 @@ class UtilisateurControleur
case "avoirDetailEvenement":
$this->avoirDetailEvenement();
break;
case "rechercherEvenement":
$this->rechercherEvenement();
break;
default:
$dVueErreur[] ="Action inconnue ou non autorisée";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
@ -212,4 +216,20 @@ class UtilisateurControleur
echo $twig->render('detailEvenement.html', ['evenement' => $evenement]);
}
protected function rechercherEvenement()
{
$mdl = new \App\modele\UtilisateurModele();
$evenements = $mdl->getEvenement();
if(isset($_POST["recherche"]) AND !empty($_POST["recherche"]))
{
$recherche = \App\config\Validation::nettoyerString($_POST["recherche"]);
$evenements = $mdl->getEvenementByTitre($recherche);
}
global $twig;
$twig->addExtension(new TwigExtensions());
echo $twig->render('evenement.html', ['evenements' => $evenements]);
}
}

@ -60,4 +60,14 @@ class EvenementGateway
$res=$this->con->getResults();
return $res;
}
public function findByTitle($titre)
{
$query='SELECT * FROM Evenement WHERE titre LIKE "%'.$titre.'%"';
$this->con->executeQuery($query, array(
':titre' => array($titre, \PDO::PARAM_STR)
));
$res=$this->con->getResults();
return $res;
}
}

@ -159,4 +159,40 @@ class UtilisateurModele
return $evenement;
}
public function getEvenementByTitre(string $titre) : array
{
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->findByTitle($titre);
$evenement = array();
foreach($data as $row)
{
$imgRaw = $gateImage->obtenirParId($row['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(
$row['id'],
$row['organisateur'],
$row['titre'],
$row['description'],
$row['date'],
$row['nbPlaceMax'],
$img
);
}
return $evenement;
}
}

@ -3,7 +3,9 @@
<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>
{% if evenement %}
<title>{{evenement.titre}}</title>
{% endif %}
<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>
@ -15,9 +17,8 @@
<div class="container mt-4">
{% if evenement %}
<h1>Détails de l'Événement</h1>
<h1>Détails de l'Événement : {{evenement.titre}}</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>

@ -15,13 +15,16 @@
<div class="container mt-4">
<div class="div_titres">
<a href="../public/index.php?action=recherherEvenement" >
<img src="assets/search.svg" alt="rechercher" width="30px">
</a>
<form action="../public/index.php?action=rechercherEvenement" method="post">
<input type="text" name="recherche" id="recherche" placeholder="Rechercher un événement">
<button type="submit">
<img src="assets/search.svg" alt="rechercher" width="30px">
</button>
</form>
<h1>Liste des Événements</h1>
<a href="../public/index.php?action=creerEvenement" class="btn btn-primary">Publier événement</a>
</div>
<ul class="list-group">
<!-- <ul class="list-group">
{% for evenement in evenements %}
<li class="list-group-item">
<div class="infos">
@ -38,6 +41,28 @@
</a>
</li>
{% endfor %}
</ul> -->
<ul class="list-group">
{% if evenements is not empty %}
{% for evenement in evenements %}
<li class="list-group-item">
<div class="infos">
<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">
<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>
<a href="../public/index.php?action=supprimerEvenement&id={{ evenement.id }}" id="deleteButton">
<img src="assets/close.png" alt="Supprimer" width="20px">
</a>
</li>
{% endfor %}
{% else %}
<li class="list-group-item">Aucun événement trouvé.</li>
{% endif %}
</ul>
</div>

Loading…
Cancel
Save