From 1b0f96ac9ea8624e8764c3b6cdc468c63c47287c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Verdoire?= Date: Tue, 14 Nov 2023 18:29:23 +0100 Subject: [PATCH] action rechercherEvenement fonctionnelle --- php/src/controleur/FrontControleur.php | 2 +- php/src/controleur/UtilisateurControleur.php | 20 +++++++++++ php/src/gateway/EvenementGateway.php | 10 ++++++ php/src/modele/UtilisateurModele.php | 36 ++++++++++++++++++++ php/templates/detailEvenement.html | 7 ++-- php/templates/evenement.html | 33 +++++++++++++++--- 6 files changed, 100 insertions(+), 8 deletions(-) diff --git a/php/src/controleur/FrontControleur.php b/php/src/controleur/FrontControleur.php index 29d7825..b8b503d 100755 --- a/php/src/controleur/FrontControleur.php +++ b/php/src/controleur/FrontControleur.php @@ -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" ] ); diff --git a/php/src/controleur/UtilisateurControleur.php b/php/src/controleur/UtilisateurControleur.php index 953eecb..d7031d3 100755 --- a/php/src/controleur/UtilisateurControleur.php +++ b/php/src/controleur/UtilisateurControleur.php @@ -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]); + } + } \ No newline at end of file diff --git a/php/src/gateway/EvenementGateway.php b/php/src/gateway/EvenementGateway.php index 28f7e72..0f3dd96 100755 --- a/php/src/gateway/EvenementGateway.php +++ b/php/src/gateway/EvenementGateway.php @@ -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; + } } \ No newline at end of file diff --git a/php/src/modele/UtilisateurModele.php b/php/src/modele/UtilisateurModele.php index ff66514..92a16fb 100755 --- a/php/src/modele/UtilisateurModele.php +++ b/php/src/modele/UtilisateurModele.php @@ -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; + } } \ No newline at end of file diff --git a/php/templates/detailEvenement.html b/php/templates/detailEvenement.html index 0ba19bf..93cd519 100644 --- a/php/templates/detailEvenement.html +++ b/php/templates/detailEvenement.html @@ -3,7 +3,9 @@ - Détails de l'Événement + {% if evenement %} + {{evenement.titre}} + {% endif %} @@ -15,9 +17,8 @@
{% if evenement %} -

Détails de l'Événement

+

Détails de l'Événement : {{evenement.titre}}

-

{{ evenement.titre }}

Organisateur: {{ evenement.organisateurId }}

Date: {{ evenement.date }}

Description: {{ evenement.description }}

diff --git a/php/templates/evenement.html b/php/templates/evenement.html index 544cb08..c5e6c86 100644 --- a/php/templates/evenement.html +++ b/php/templates/evenement.html @@ -15,13 +15,16 @@
- - rechercher - +
+ + +

Liste des Événements

Publier événement
-
    + +
      + {% if evenements is not empty %} + {% for evenement in evenements %} +
    • +
      +

      {{ evenement.titre }}

      +

      Organisateur: {{ evenement.organisateurId}}

      +

      Date: {{ evenement.date }}

      +

      Description: {{ evenement.description }}

      + +

      Places disponibles: {{ evenement.nbPlaceMax }}

      + Détails +
      + + Supprimer + +
    • + {% endfor %} + {% else %} +
    • Aucun événement trouvé.
    • + {% endif %}