accueil(); break; case "profil": $this->profil(); break; case "getProfilByPage": $this->getProfilByPage(); break; case "inscription_success": $this->inscription_success(); break; case "connection": $this->connection(); break; case "inscription": $this->inscription(); break; case "consultOffers": $this->consultOffers(); break; case "consulterProfilLimite": $this->consulterProfilLimite(); break; case "createOffer": $this->createOffer(); break; case "createOfferForm": $this->createOfferForm(); break; case "displayOffer": $this->displayOffer(); break; case "listerEvenement": $this->listerEvenement(); break; case "creerEvenement": $this->creerEvenement(); break; case "supprimerEvenement": $this->supprimerEvenement(); break; case "avoirDetailEvenement": $this->avoirDetailEvenement(); break; case "rechercherEvenement": $this->rechercherEvenement(); break; default: $dVueErreur[] = "Action inconnue ou non autorisée" . $action; echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]); } } protected function connection() { global $twig; $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant $userModel = new UtilisateurModele(); if (isset($_POST['email'], $_POST['password'])) { $email = Validation::nettoyerString($_POST['email']); $motDePasse = Validation::nettoyerString($_POST['password']); $utilisateur = $userModel->connection($email, $motDePasse); if ($utilisateur instanceof Alumni) { $_SESSION['utilisateur'] = $utilisateur; header('Location: index.php?action=accueil'); exit(); } else { $dVueErreur[] = "L'adresse email ou le mot de passe est incorrect."; } } echo $twig->render('connection.html', ['dVueErreur' => $dVueErreur]); } protected function inscription() { global $twig; $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant $userModel = new UtilisateurModele(); if (isset($_POST['firstname'],$_POST['name'], $_POST['email'], $_POST['password'])) { $nom = Validation::nettoyerString($_POST['name']); $prenom = Validation::nettoyerString($_POST['firstname']); $email = Validation::nettoyerString($_POST['email']); $motDePasse = Validation::nettoyerString($_POST['password']); $hash = password_hash($motDePasse, PASSWORD_DEFAULT); // verification que l'email est valide et unique : if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $dVueErreur[] = "L'adresse email n'est pas valide ou est déjà utilisée."; } else { $utilisateur = $userModel->getUtilisateurByEmail($email); if ($utilisateur instanceof Alumni) { $dVueErreur[] = "L'adresse email est déjà utilisée."; } } try { $nouvelUtilisateur = $userModel->inscription($prenom,$nom,$email, $hash); if ($nouvelUtilisateur instanceof Alumni) { header('Location: index.php?action=inscription_success'); exit(); } else { $dVueErreur[] = "L'inscription a échoué, veuillez réessayer."; } } catch (\Exception $e) { $dVueErreur[] = "L'inscription a échoué, veuillez réessayer."; $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]); } } echo $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]); } protected function accueil() { global $twig; // Ajout d'un var_dump pour déboguer if (isset($_SESSION['utilisateur']) && $_SESSION['utilisateur'] instanceof Alumni) { $prenom = $_SESSION['utilisateur']->getPrenom(); $nom = $_SESSION['utilisateur']->getNom(); $id = $_SESSION['utilisateur']->getId(); } else{ $prenom = null; $nom = null; $id = null; } //aller sur la page d'accueil avec le nom et prenom de l'utilisateur echo $twig->render('accueil.html', ['prenom' => $prenom, 'nom' => $nom, 'id' => $id]); } protected function inscription_success() { global $twig; echo $twig->render('inscription_success.html'); } protected function consulterProfilLimite() { //TODO } protected function consultOffers() { $offerMdl = new OffreModele(); global $twig; $niveauEtudes=null; $typeContrat=null; $exp = null; $nbOffers = 5 ; if(isset($_GET["niveauEtudes"]) && Validation::validateTypeStudies($_GET["niveauEtudes"])) { $niveauEtudes = $_GET["niveauEtudes"]; } if(isset($_GET["typeContrat"]) && Validation::validateTypeContract($_GET["typeContrat"])) { $typeContrat = $_GET["typeContrat"]; } if(isset($_GET["experience"]) && Validation::validateExperience($_GET["experience"])) { $exp = $_GET["experience"]; } if ($niveauEtudes == null && $typeContrat == null && $exp == null) { $totalOffers = $offerMdl->getNbOffers(); } else { $params = array( 'typeContrat' => $typeContrat, 'exp' => $exp, 'niveauEtudes' => $niveauEtudes, ); $offers = $offerMdl->getOffersWithFilters($params); $totalOffers = count($offers); } $numberPages = ceil($totalOffers / 5); if($numberPages == 0 ) { echo $twig->render("erreur.html",['dVueErreur' => ['Aucune Offre Trouvée']]); return; } if (isset($_GET["page"]) && intval($_GET["page"]) != null) { $page = intval($_GET["page"]); if ($page > $numberPages || $page < 1) { $dVueErreur[] = "Page introuvable"; echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]); return; } } else { $page = 1; } $start = intval(($page - 1) * 5); if ($niveauEtudes == null && $typeContrat == null && $exp == null) { $offers = $offerMdl->getOfferLimit($start, $nbOffers); } else { $params['start'] = $start; $params['nbOffers'] = 5; $offers = $offerMdl->getOffersWithFilters($params); } /* echo "filtre :".$niveauEtudes."
"; echo "filtre :".$typeContrat."
"; echo "filtre :".$exp."
";*/ echo $twig->render('OffersList.html', [ 'offres' => $offers, 'numberPages' => $numberPages, 'currentPage' => $page, 'typeContrat' => (($typeContrat != null ? $typeContrat : "")), 'experience' => (($exp != null ? $exp : "")), 'niveauEtudes' => (($niveauEtudes != null ? $niveauEtudes : "")), 'valContrat' => (($typeContrat != null ? "&typeContrat=".$typeContrat : "")), 'valExp' => (($exp != null ? "&experience=".$exp : "")), 'valEtudes' => (($niveauEtudes != null ? "&niveauEtudes=".$niveauEtudes : "")) ]); } protected function createOfferForm() { global $twig; echo $twig->render("CreerOffre.html", []); } protected function createOffer() { global $twig; $taberror = []; $requiredFields = ['name', 'entreprise', 'description','typeContrat', 'descriptPoste', 'profilRecherche', 'choixExp', 'education', 'mail', 'num']; $error = false; foreach ($requiredFields as $field) { if (empty($_POST[$field])) { $error = true; $taberror[] = "Le champ {$field} est requis !"; } } if($error) { echo $twig->render("CreerOffre.html", ['tabError' => $taberror ]); return; } if(!Validation::verifierEmail($_POST["mail"])) { //echo $twig->render("CreerOffre.html", ['errMsg' => "Email non valide !" ]); $taberror[] = "Email non valide !"; } if(!Validation::validateNumber($_POST["num"])) { $taberror[] = "Numero non valide !"; //echo $twig->render("CreerOffre.html", ['errMsg' => "Numero non valide !" ]); } if (!Validation::validateImage("image")) { if(isset($_FILES['image']['name'])) {$taberror[] = "Image non valide !";} else {$taberror[] = "Inserez une image !";} } if(!Validation::validateImage("logo")) { if(isset($_FILES['logo']['name'])) {$taberror[] = "Logo non valide !";} else {$taberror[] = "Inserez un logo !";} return; } if(count($taberror) > 0) { echo $twig->render("CreerOffre.html", ['tabError' => $taberror ]); } else{ $saveImg1 = ImageSaver::SaveImage("image"); $saveImg2 = ImageSaver::SaveImage("logo"); if($saveImg1[0] && $saveImg2[0]) { $offreMdl = new OffreModele(); $offre = $offreMdl->publishOffer($saveImg1[1], $saveImg2[1]); echo $twig->render("OffreDetailTest.html", ['offre' => $offre]); } else { $taberror[] = "Erreur lors de l'upload des images"; echo $twig->render("CreerOffre.html", ['tabError' => $taberror ]); } } } public function displayOffer() { global $twig; if (isset($_GET["id"]) && intval($_GET["id"]) != null) { $offreMdl = new OffreModele(); $offre = $offreMdl->getOfferFromId(intval($_GET["id"])); if($offre != NULL) { echo $twig->render("OffreDetailTest.html",['offre' => $offre]); return; } } $dVueErreur[] = "Erreur, Offre introuvable"; echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]); } protected function listerEvenement() { $mdl = new UtilisateurModele(); $evenements = $mdl->getEvenement(); global $twig; echo $twig->render('evenement.html', ['evenements' => $evenements]); } protected function creerEvenement() { global $twig; if (isset($_FILES["image"])) { $img = ImageSaver::SaveImage('image'); if (!Validation::validerEvenement($_POST["titre"], $_POST["description"], $_POST["date"], $_POST["nbPlaceMax"], $img[1])) { $mdl = new UtilisateurModele(); $mdl->ajouterEvenement($_POST["titre"], $_POST["description"], $_POST["date"], $_POST["nbPlaceMax"], $img[1]); $this->listerEvenement(); } else { $dVueErreur[] ="Erreur lors de la création de l'évènement"; echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]); } } else { echo $twig->render('creerEvenement.html', []); } } protected function supprimerEvenement() { $mdl = new UtilisateurModele(); $mdl->deleteEvenement($_GET["id"]); $this->listerEvenement(); } protected function avoirDetailEvenement() { $mdl = new UtilisateurModele(); $evenement = $mdl->getEvenementById($_GET["id"]); global $twig; echo $twig->render('detailEvenement.html', ['evenement' => $evenement]); } protected function rechercherEvenement() { $mdl = new UtilisateurModele(); $evenements = $mdl->getEvenement(); if(isset($_POST["recherche"]) AND !empty($_POST["recherche"])) { $recherche = Validation::nettoyerString($_POST["recherche"]); $evenements = $mdl->getEvenementByTitre($recherche); } global $twig; echo $twig->render('evenement.html', ['evenements' => $evenements]); } private function getProfilByPage() { global $twig; $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant $userModel = new UtilisateurModele(); if (isset($_GET['page'])) { $page = Validation::nettoyerString($_GET['page']); $utilisateurs = $userModel->getUtilisateurByPage($page); if ($utilisateurs[0] != null) { echo $twig->render('profil.html', [ 'utilisateurs' => $utilisateurs, 'page' => $page] ); } else { $dVueErreur[] = "L'utilisateur n'existe pas."; echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); } } else { $dVueErreur[] = "L'utilisateur n'existe pas."; echo $twig->render('erreur.html', ['dVueErreur' => $dVueErreur]); } } }