From 2be9ba66f2e4b12faceda321cff77f24cc903451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Verdoire?= Date: Tue, 7 Nov 2023 20:24:29 +0100 Subject: [PATCH] Action listerEvenement fonctionnelle, manque gestion d'erreur/et qlqs autres trucs surement --- php/public/index.php | 3 +- php/scripts/creerOffre.js | 32 +++++ php/src/TwigExtensions.php | 24 ++++ php/src/controleur/UtilisateurControleur.php | 138 +++++++++++++++---- php/src/gateway/AlumniGateway.php | 5 +- php/src/gateway/EvenementGateway.php | 9 ++ php/src/gateway/ImageGateway.php | 84 +++++++++++ php/src/gateway/OffreGateway.php | 49 +++++++ php/src/{modele => metier}/Alumni.php | 13 +- php/src/{modele => metier}/Article.php | 0 php/src/metier/Evenement.php | 118 ++++++++++++++++ php/src/{modele => metier}/Experience.php | 0 php/src/{modele => metier}/Formation.php | 0 php/src/metier/Image.php | 63 +++++++++ php/src/{modele => metier}/Offre.php | 103 +++++++------- php/src/{modele => metier}/Profil.php | 0 php/src/{modele => metier}/Role.php | 2 +- php/src/modele/Evenement.php | 95 ------------- php/src/modele/ImageModele.php | 53 +++++++ php/src/modele/OffreModele.php | 119 ++++++++++++++++ php/src/modele/UtilisateurModele.php | 99 ++++++++++--- php/templates/evenement.html | 21 +++ 22 files changed, 829 insertions(+), 201 deletions(-) create mode 100644 php/scripts/creerOffre.js create mode 100644 php/src/TwigExtensions.php create mode 100644 php/src/gateway/ImageGateway.php rename php/src/{modele => metier}/Alumni.php (77%) rename php/src/{modele => metier}/Article.php (100%) create mode 100755 php/src/metier/Evenement.php rename php/src/{modele => metier}/Experience.php (100%) rename php/src/{modele => metier}/Formation.php (100%) create mode 100644 php/src/metier/Image.php rename php/src/{modele => metier}/Offre.php (63%) rename php/src/{modele => metier}/Profil.php (100%) rename php/src/{modele => metier}/Role.php (77%) delete mode 100755 php/src/modele/Evenement.php create mode 100644 php/src/modele/ImageModele.php create mode 100644 php/src/modele/OffreModele.php create mode 100644 php/templates/evenement.html diff --git a/php/public/index.php b/php/public/index.php index 8a015ce..f01c29e 100755 --- a/php/public/index.php +++ b/php/public/index.php @@ -4,7 +4,7 @@ /** Chargement config */ require_once __DIR__ . '/../src/config/config.php'; require __DIR__ . '/../vendor/autoload.php'; - +require_once __DIR__ . '/../src/TwigExtensions.php'; /** Configuration twig */ $loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/../templates'); @@ -13,4 +13,5 @@ $twig = new \Twig\Environment($loader, [ 'debug' => true ]); + $cont = new \App\controleur\FrontControleur(); \ No newline at end of file diff --git a/php/scripts/creerOffre.js b/php/scripts/creerOffre.js new file mode 100644 index 0000000..ee60329 --- /dev/null +++ b/php/scripts/creerOffre.js @@ -0,0 +1,32 @@ +// change la possibilité d'entrer une ville pour l'offre +// cas où l'offre est à pourvoir en full remote +document.getElementById("fullRemote").addEventListener("change", function () { + var villeInput = document.getElementById("ville"); + villeInput.disabled = this.checked; + //var ville = document.getElementById('') +}); + +document.addEventListener("DOMContentLoaded", function() { + const form = document.querySelector("form"); + const submitButton = document.querySelector('input[type="submit"]'); + + // Fonction pour vérifier si tous les champs du formulaire sont remplis + function checkFormFields() { + const inputs = form.querySelectorAll('input, textarea, select'); + let allFieldsFilled = true; + + inputs.forEach(function(input) { + if (!input.value) { + allFieldsFilled = false; + } + }); + + submitButton.disabled = !allFieldsFilled; + } + + // Écoute les événements de saisie dans les champs du formulaire + form.addEventListener("input", checkFormFields); + + // Appelle la fonction initiale pour la première vérification + checkFormFields(); +}); \ No newline at end of file diff --git a/php/src/TwigExtensions.php b/php/src/TwigExtensions.php new file mode 100644 index 0000000..a7e9f11 --- /dev/null +++ b/php/src/TwigExtensions.php @@ -0,0 +1,24 @@ +connection(); break; - case "inscription": - $this->inscription(); + // case "inscription": + // $this->inscription(); + // break; + case "consulterOffres": + $this->consulterOffres(); break; case "consulterProfilLimite": $this->consulterProfilLimite(); break; + case "creerOffre": + //echo "test"; + $this->creerOffre(); + break; + // case "publierOffre": + // $this->publierOffre(); + // break; + case "testAction": + $this->testAction(); + break; + case "listerEvenement": + $this->listerEvenement(); + break; default: $dVueErreur[] ="Action inconnue ou non autorisée"; echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]); @@ -39,39 +68,39 @@ class UtilisateurControleur echo $twig->render('connexion.html', []); } - protected function inscription() - { - global $twig; - $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant + // protected function inscription() + // { + // global $twig; + // $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant - if (isset($_POST['email'], $_POST['username'], $_POST['password'])) { - $email = \App\config\Validation::nettoyerString($_POST['email']); - $motDePasse = \App\config\Validation::nettoyerString($_POST['password']); + // if (isset($_POST['email'], $_POST['username'], $_POST['password'])) { + // $email = \App\config\Validation::nettoyerString($_POST['email']); + // $motDePasse = \App\config\Validation::nettoyerString($_POST['password']); - // Validez les données d'inscription, par exemple, vérifiez si l'email est unique - // Vous pouvez également effectuer d'autres validations nécessaires + // // Validez les données d'inscription, par exemple, vérifiez si l'email est unique + // // Vous pouvez également effectuer d'autres validations nécessaires - $userModel = new \App\modele\UtilisateurModele(); - $nouvelUtilisateur = $userModel->inscription($email, $motDePasse); + // $userModel = new \App\modele\UtilisateurModele(); + // $nouvelUtilisateur = $userModel->inscription($email, $motDePasse); - // Si l'inscription a réussi, redirigez l'utilisateur vers une page de confirmation - // Vous pouvez également gérer les erreurs ici en cas d'échec de l'inscription + // // Si l'inscription a réussi, redirigez l'utilisateur vers une page de confirmation + // // Vous pouvez également gérer les erreurs ici en cas d'échec de l'inscription - if ($nouvelUtilisateur instanceof \App\modele\Alumni) { - // L'inscription a réussi, redirigez l'utilisateur vers une page de confirmation - // par exemple : - header('Location: index.php?action=inscription_success'); - exit(); - } else { - // L'inscription a échoué, ajoutez un message d'erreur - $dVueErreur[] = "L'inscription a échoué, veuillez réessayer."; - } - } + // if ($nouvelUtilisateur instanceof \App\metier\Alumni) { + // // L'inscription a réussi, redirigez l'utilisateur vers une page de confirmation + // // par exemple : + // header('Location: index.php?action=inscription_success'); + // exit(); + // } else { + // // L'inscription a échoué, ajoutez un message d'erreur + // $dVueErreur[] = "L'inscription a échoué, veuillez réessayer."; + // } + // } - // Affichez le formulaire d'inscription ou les erreurs le cas échéant - echo $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]); - } + // // Affichez le formulaire d'inscription ou les erreurs le cas échéant + // echo $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]); + // } protected function accueil() { @@ -84,4 +113,53 @@ class UtilisateurControleur //TODO } -} \ No newline at end of file + protected function consulterOffres() + { + global $twig; + echo $twig->render('offres.html', []); + } + protected function creerOffre() + { + + global $twig; + echo $twig->render('CreerOffre.html', []); + + // echo 'mon image';*/ + + } + + // protected function publierOffre() + // { + + + // $imgMdl = new ImageModele; + // $offreMdl = new OffreModele(); + + // $img = $imgMdl->publierImage(); + // $offreMdl->publierOffre($img); + + // global $twig; + // echo $twig->render('Offres.html', [$offreMdl->getOffres()]); + // } + + protected function testAction() + { + echo "test action "; + $con = new Connection("mysql:host=localhost;dbname=dbAlica",'test','test'); + $offreGw = new OffreGateway($con); + + if($offreGw->getMaxid() == NULL) + echo "max id == NULL"; + else echo "max id != NULL"; + } + + protected function listerEvenement() + { + $mdl = new \App\modele\UtilisateurModele(); + $evenements = $mdl->getEvenement(); + 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/AlumniGateway.php b/php/src/gateway/AlumniGateway.php index 1a00ff4..dded848 100644 --- a/php/src/gateway/AlumniGateway.php +++ b/php/src/gateway/AlumniGateway.php @@ -1,6 +1,8 @@ con->executeQuery($query, array( ':i' => array($id, PDO::PARAM_INT) )); - $res=$this->con->getResults(); - return new Alumni($res[0]['mail'],$res[0]['id'],$res[0]['mdp'],$res[0]['role']); + return $this->con->getResults(); } public function findByEmail(string $email){ diff --git a/php/src/gateway/EvenementGateway.php b/php/src/gateway/EvenementGateway.php index 1027624..5bb4897 100755 --- a/php/src/gateway/EvenementGateway.php +++ b/php/src/gateway/EvenementGateway.php @@ -1,5 +1,7 @@ con->executeQuery($query, array()); } + + public function getAllEvenement(){ + $query='SELECT * FROM Evenement'; + $this->con->executeQuery($query); + $res=$this->con->getResults(); + return $res; + } } \ No newline at end of file diff --git a/php/src/gateway/ImageGateway.php b/php/src/gateway/ImageGateway.php new file mode 100644 index 0000000..5cd380d --- /dev/null +++ b/php/src/gateway/ImageGateway.php @@ -0,0 +1,84 @@ +con = $con; + } + + + public function insertImage(Image $img) + { + $query = "INSERT INTO Image (`nom`, `taille`, `type`, `blob`) VALUES ( :n, :t, :ty, :b)"; + $this->con->executeQuery($query, array( + ':n' => array($img->getName(), PDO::PARAM_STR), + ':t' => array($img->getTaille(), PDO::PARAM_STR), + ':ty' => array($img->getType(), PDO::PARAM_STR), + ':b' => array($img->getBlob(), PDO::PARAM_STR) + )); + } + + public function delete(int $id) + { + $query = 'DELETE FROM Image WHERE id=:i'; + $this->con->executeQuery($query, array( + ':i' => array($id, PDO::PARAM_INT) + )); + } + + public function obtenirParId(int $id) : array + { + $query = 'SELECT * FROM Image WHERE id=:i'; + $this->con->executeQuery($query, array( + ':i' => array($id, PDO::PARAM_INT) + )); + return $this->con->getResults(); + } + + public function trouverParNom(string $nom) + { + $query = 'SELECT * FROM Image WHERE nom=:n'; + $this->con->executeQuery($query, array( + ':n' => array($nom, PDO::PARAM_STR) + )); + return $this->con->getResults(); + + } + + public function getNewId() : int + { + $query = 'SELECT MAX(id) FROM Image'; + $this->con->executeQuery($query); + $res = $this->con->getResults(); + if ($res[0]['MAX(id)'] === null) { + return 1; + } + return intval($res[0]['MAX(id)'])+1; + + } + + public function obtenirToutesImages() + { + $query = 'SELECT * FROM Image'; + $this->con->executeQuery($query); + $res = $this->con->getResults(); + $array = []; + foreach ($res as $r) { + $array[] = new Image($this->getNewId(),$r['nom'], $r['taille'], $r['type'], $r['blob']); + } + return $array; + } +} + +?> \ No newline at end of file diff --git a/php/src/gateway/OffreGateway.php b/php/src/gateway/OffreGateway.php index 85e4aab..b8c6fdc 100755 --- a/php/src/gateway/OffreGateway.php +++ b/php/src/gateway/OffreGateway.php @@ -1,5 +1,8 @@ con->executeQuery($query, array()); } + + public function getMaxid() : int + { + $query = 'SELECT MAX(id) FROM Offre'; + $this->con->executeQuery($query, array()); + $res = $this->con->getResults(); + if($res[0]['MAX(id)'] == null ) + return 1; + else + return intval($res[0]['MAX(id)'])+1; + } + + public function ajouterOffre(Offre $offre) + { + $query = 'INSERT INTO Offre VALUES (:i, :o, :t, :d, :img, :ty, :v, :e, :desc, :pro, :exp, :niv, :mail, :num, :web, :remote)'; + $this->con->executeQuery($query, array( + ':i' => array($offre->getId(), \PDO::PARAM_INT), + ':o' => array($offre->getOffreurId(), \PDO::PARAM_STR), + ':t' => array($offre->getNom(), \PDO::PARAM_STR), + ':d' => array($offre->getDescription(), \PDO::PARAM_STR), + 'img' => array($offre->getImgId(), \PDO::PARAM_INT), + ':ty' => array($offre->getTypeContrat(), \PDO::PARAM_STR), + ':v' => array($offre->getVille(), \PDO::PARAM_STR), + ':e' => array($offre->getEntreprise(), \PDO::PARAM_STR), + ':desc' => array($offre->getDescriptifPoste(), \PDO::PARAM_STR), + ':pro' => array($offre->getProfil(), \PDO::PARAM_STR), + ':exp' => array($offre->getExperience(), \PDO::PARAM_STR), + ':niv' => array($offre->getNiveauEtudes(), \PDO::PARAM_STR), + ':mail' => array($offre->getMailContact(), \PDO::PARAM_STR), + ':num' => array($offre->getNumero(), \PDO::PARAM_STR), + ':web' => array($offre->getSiteUrl(), \PDO::PARAM_STR), + ':remote' => array($offre->isRemote(), \PDO::PARAM_BOOL) + )); + } + + + public function obtenirOffres() : array + { + $alGw = new AlumniGateway($this->con); + $imgGw = new ImageGateway($this->con); + + $query = 'SELECT * FROM Offre'; + $this->con->executeQuery($query, array()); + $res = $this->con->getResults(); + return $res; + } } \ No newline at end of file diff --git a/php/src/modele/Alumni.php b/php/src/metier/Alumni.php similarity index 77% rename from php/src/modele/Alumni.php rename to php/src/metier/Alumni.php index 7084fba..b251d94 100644 --- a/php/src/modele/Alumni.php +++ b/php/src/metier/Alumni.php @@ -1,8 +1,11 @@ id = $id; $this->email = $email; $this->motDePasse = $motDePasse; $this->role = $role; @@ -50,4 +54,9 @@ class Alumni{ { return $this->role; } + + public function getId() : int + { + return $this->id; + } } \ No newline at end of file diff --git a/php/src/modele/Article.php b/php/src/metier/Article.php similarity index 100% rename from php/src/modele/Article.php rename to php/src/metier/Article.php diff --git a/php/src/metier/Evenement.php b/php/src/metier/Evenement.php new file mode 100755 index 0000000..0ff3018 --- /dev/null +++ b/php/src/metier/Evenement.php @@ -0,0 +1,118 @@ +id = $id; + $this->organisateur = $organisateur; + $this->titre = $titre; + $this->description = $description; + $this->date = $date; + $this->nbPlaceMax = $nbPlaceMax; + $this->image = $image; + } + + /** + * @return int + */ + public function getId(): int + { + return $this->id; + } + + /** + * @return Alumni + */ + public function getOrganisateur(): Alumni + { + return $this->organisateur; + } + + /** + * @return string + */ + public function getTitre(): string + { + return $this->titre; + } + + /** + * @return string + */ + public function getDescription(): string + { + return $this->description; + } + + /** + * @return string + */ + public function getDate(): string + { + return $this->date; + } + + /** + * @return int + */ + public function getNbPlaceMax(): int + { + return $this->nbPlaceMax; + } + + /** + * @return Image + */ + public function getImage(): Image + { + return $this->image; + } + +} \ No newline at end of file diff --git a/php/src/modele/Experience.php b/php/src/metier/Experience.php similarity index 100% rename from php/src/modele/Experience.php rename to php/src/metier/Experience.php diff --git a/php/src/modele/Formation.php b/php/src/metier/Formation.php similarity index 100% rename from php/src/modele/Formation.php rename to php/src/metier/Formation.php diff --git a/php/src/metier/Image.php b/php/src/metier/Image.php new file mode 100644 index 0000000..a6397b2 --- /dev/null +++ b/php/src/metier/Image.php @@ -0,0 +1,63 @@ +id = $id; + $this->name = $name; + $this->taille = $taille; + $this->type = $type; + $this->blob = $blob; + } + + public function getName(): string + { + return $this->name; + } + + + public function getTaille(): string + { + return $this->taille; + } + + public function getType(): string + { + return $this->type; + } + + public function getBlob(): string + { + return $this->blob; + } + + public function getId() : string + { + return $this->id; + } + + public function toString() : string { + return "Image : " . $this->name . " " . $this->taille . " " . $this->type . " blob " . $this->blob; + } + + + } \ No newline at end of file diff --git a/php/src/modele/Offre.php b/php/src/metier/Offre.php similarity index 63% rename from php/src/modele/Offre.php rename to php/src/metier/Offre.php index 5d247af..487ce00 100755 --- a/php/src/modele/Offre.php +++ b/php/src/metier/Offre.php @@ -1,28 +1,8 @@ id = $id; $this->offreur = $offreur; $this->nom = $nom; $this->description = $description; - $this->imageUrl = $imageUrl; + $this->img = $img; $this->typeContrat = $typeContrat; $this->ville = $ville; $this->entreprise = $entreprise; @@ -135,6 +131,7 @@ class Offre $this->mailContact = $mailContact; $this->numero = $numero; $this->siteUrl = $siteUrl; + $this->remote = $remote; } public function getId(): int @@ -147,6 +144,11 @@ class Offre return $this->offreur; } + public function getOffreurId() : int + { + return $this->offreur->getId(); + } + public function getNom(): string { return $this->nom; @@ -157,14 +159,19 @@ class Offre return $this->description; } - public function getImageUrl(): string + public function getImgId(): int { - return $this->imageUrl; + return $this->img->getId(); } - public function getTypeContrat(): \App\metier\TypeContrat + public function getImg() : Image { - return $this->typeContrat; + return $this->img; + } + + public function getBlob() : string + { + return $this->img->getBlob(); } public function getVille(): string @@ -182,21 +189,11 @@ class Offre return $this->descriptifPoste; } - public function getProfil(): Profil - { - return $this->profil; - } - public function getExperience(): string { return $this->experience; } - public function getNiveauEtudes(): \App\metier\NiveauEtudes - { - return $this->niveauEtudes; - } - public function getMailContact(): string { return $this->mailContact; @@ -207,8 +204,18 @@ class Offre return $this->numero; } + public function isRemote(): bool + { + return $this->remote; + } + public function getSiteUrl(): string { return $this->siteUrl; } + + public function toString() : string + { + return "Offre :,{$this->nom}, {$this->typeContrat},{$this->ville} {$this->entreprise}"; + } } \ No newline at end of file diff --git a/php/src/modele/Profil.php b/php/src/metier/Profil.php similarity index 100% rename from php/src/modele/Profil.php rename to php/src/metier/Profil.php diff --git a/php/src/modele/Role.php b/php/src/metier/Role.php similarity index 77% rename from php/src/modele/Role.php rename to php/src/metier/Role.php index a4c8368..56e4de0 100644 --- a/php/src/modele/Role.php +++ b/php/src/metier/Role.php @@ -1,5 +1,5 @@ id = $id; - $this->nom = $nom; - $this->date = $date; - $this->organisateur = $organisateur; - $this->participants = $participants; - $this->nbInscriptionMax = $nbInscriptionMax; - $this->imageUrl = $imageUrl; - } - - public function getId(): int - { - return $this->id; - } - - public function getNom() : string - { - return $this->nom; - } - - public function getDate() : string - { - return $this->date; - } - - public function getParticipants() : array - { - return $this->participants; - } - - public function getOrganisateur(): Alumni - { - return $this->organisateur; - } - - public function getNbInscriptionMax(): int - { - return $this->nbInscriptionMax; - } - - public function getImageUrl(): string - { - return $this->imageUrl; - } -} \ No newline at end of file diff --git a/php/src/modele/ImageModele.php b/php/src/modele/ImageModele.php new file mode 100644 index 0000000..9db7a6f --- /dev/null +++ b/php/src/modele/ImageModele.php @@ -0,0 +1,53 @@ +gw = new ImageGateway(new Connection("mysql:host=localhost;dbname=dbAlica","test","test")); + } + + public function publierImage() : Image + { + $img = new Image($this->gw->getNewId(), + $_FILES["image"]["name"], + $_FILES["image"]["size"], + $_FILES["image"]["type"], + file_get_contents($_FILES["image"]["tmp_name"])); + + $this->gw->insertImage($img); + + return $img; + } + + public function insertImage(Image $img) + { + $this->gw->insertImage($img); + } + + public function obtenirParId(int $id) + { + $this->gw->obtenirParId($id); + $res = $this->gw->obtenirToutesImages(); + return new Image($this->gw->getNewId(),$res[0]['nom'], $res[0]['taille'], $res[0]['type'], $res[0]['blob']); + } + + public function obtenirToutesImages() : array + { + $this->gw->obtenirToutesImages(); + $res = $this->gw->obtenirToutesImages(); + + foreach ($res as $r) { + $array[] = new Image($this->gw->getNewId(),$r['nom'], $r['taille'], $r['type'], $r['blob']); + } + return $array; + } + + +} \ No newline at end of file diff --git a/php/src/modele/OffreModele.php b/php/src/modele/OffreModele.php new file mode 100644 index 0000000..460a5fa --- /dev/null +++ b/php/src/modele/OffreModele.php @@ -0,0 +1,119 @@ +offreGw = new OffreGateway(new Connection("mysql:host=localhost;dbname=dbAlica", "test", "test")); + } + + public function publierOffre(Image $img) + { + + $desc = $_POST["description"]; + $descposte = $_POST["descriptPoste"]; + $nom = $_POST["name"]; + $ville = $_POST["ville"]; + $entreprise = $_POST["entreprise"]; + $profilRecherche = $_POST["profilRecherche"]; + $mail = $_POST["mail"]; + $num = $_POST["num"]; + $site = $_POST["site"]; + $exp = $_POST["choixExp"]; + + $typeContrat = $_POST["typeContrat"]; + /* $typeContrat = match ($_POST["typeContrat"]) { + "Stage" => TypeContrat::Stage, + "CDI" => TypeContrat::CDI, + "CDD" => TypeContrat::CDD, + "Alternance" => TypeContrat::Alternance, + default => TypeContrat::CDD, + };*/ + + $niveauEtudes = $_POST["education"]; + /* $niveauEtudes = match ($_POST["education"]) { + "Bac+2" => NiveauEtudes::Bac2, + "Bac+3" => NiveauEtudes::Bac3, + "Bac+5" => NiveauEtudes::Bac5, + default => NiveauEtudes::Indifferent, + };*/ + + if(isset($_POST["fullRemote"])) + { + $remote = true; + } + else { + $remote = false; + } + // à la place de NULL passer id utilisateur créateur offre + $offre = new Offre($this->offreGw->getMaxid(), + new Alumni(12,"test.mail@icloud.fr","password","admin"), + $nom, + $desc, + $img, + $typeContrat, + $ville, + $entreprise, + $descposte, + $profilRecherche, + $exp, + $niveauEtudes, + $mail, + $num, + $site, + $remote); + $this->offreGw->ajouterOffre($offre); + + } + public function obtenirOffres() : array + { + $alGw = new AlumniGateway(new Connection("mysql:host=localhost;dbname=dbAlica", "test", "test")); + $imgGw = new ImageGateway(new Connection("mysql:host=localhost;dbname=dbAlica", "test", "test")); + $res = $this->offreGw->obtenirOffres(); + $offres=[]; + + foreach ($res as $row) + { + $res = $imgGw->obtenirParId($row['image']); + $img = new Image(intval($res[0]["id"]),$res[0]['nom'], $res[0]['taille'], $res[0]['type'], $res[0]['blob']); + + $resal = $alGw->findById($row['offreur']); + $alumni = new Alumni($resal[0]['id'],$resal[0]['mail'],$resal[0]['mdp'],$resal[0]['role']); + + $offres[]= new Offre($row['id'], + $alumni, + $row['titre'], + $row['description'], + $img, + $row['typeContrat'], + $row['ville'], + $row["entreprise"], + $row['descriptifPoste'], + $row['profil'], + $row['experience'], + $row['niveauEtudes'], + $row['mailContact'], + $row['numero'], + $row['websiteURL'], + $row['remote']); + } + + return $offres; + } + + + +} \ No newline at end of file diff --git a/php/src/modele/UtilisateurModele.php b/php/src/modele/UtilisateurModele.php index c10944c..219fb6c 100755 --- a/php/src/modele/UtilisateurModele.php +++ b/php/src/modele/UtilisateurModele.php @@ -1,6 +1,11 @@ insert($email, $hashpassword, $role)) { + // // L'insertion a réussi, retournez le nouvel utilisateur + // $nouvelUtilisateur = new \App\metier\Alumni($email, $hashpassword, $role); + // return $nouvelUtilisateur; + // } else { + // // L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec + // return new \App\metier\Alumni(null, null, null); + // } + // } + + /** + * @Lister les evenements + * @return array evenements + */ + public function getEvenement() : array { $dsn = "mysql:host=localhost;dbname=dbAlica"; - $username = "Dev"; - $password = "Dev"; - - $role = "Utilisateur"; - $con = new \App\gateway\Connection($dsn, $username, $password); - $gate = new \App\gateway\AlumniGateway($con); - // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway - if ($gate->insert($email, $hashpassword, $role)) { - // L'insertion a réussi, retournez le nouvel utilisateur - $nouvelUtilisateur = new \App\modele\Alumni($email, $hashpassword, $role); - return $nouvelUtilisateur; - } else { - // L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec - return new \App\modele\Alumni(null, null, null); + $login = "test"; + $mdp = "test"; + + $con = new \App\gateway\Connection($dsn, $login, $mdp); + $gate = new \App\gateway\EvenementGateway($con); + $data = $gate->getAllEvenement(); + + $gateAlumni = new \App\gateway\AlumniGateway($con); + $dataAlumni = $gateAlumni->findById($data[0]['organisateur']); + + $gateImage = new \App\gateway\ImageGateway($con); + $image = $gateImage->obtenirParId($data[0]['image']); + + $organisateur = new \App\metier\Alumni( + $dataAlumni[0]['id'], + $dataAlumni[0]['mail'], + $dataAlumni[0]['mdp'], + $dataAlumni[0]['role'] + ); + + $img = new \App\metier\Image( + $image[0]['id'], + $image[0]['nom'], + $image[0]['taille'], + $image[0]['type'], + $image[0]['blob'] + ); + + foreach($data as $row) + { + $evenement[] = new \App\metier\Evenement( + $row['id'], + $organisateur, + $row['titre'], + $row['description'], + $row['date'], + $row['nbPlaceMax'], + $img + ); } + return $evenement; } -} +} \ No newline at end of file diff --git a/php/templates/evenement.html b/php/templates/evenement.html new file mode 100644 index 0000000..89f3c9d --- /dev/null +++ b/php/templates/evenement.html @@ -0,0 +1,21 @@ + + + + Liste des Événements + + +

Liste des Événements

+ + + \ No newline at end of file