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 @@
-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 @@Organisateur: {{ evenement.organisateurId}}
+Date: {{ evenement.date }}
+Description: {{ evenement.description }}
+ +Places disponibles: {{ evenement.nbPlaceMax }}
+ Détails +