diff --git a/php/composer.json b/php/composer.json index 01808c9..38be522 100644 --- a/php/composer.json +++ b/php/composer.json @@ -1,6 +1,7 @@ { "require": { "twig/twig": "^3.0", + "twig/extensions": "^1.5", "ext-pdo": "*", "ext-fileinfo": "*" }, diff --git a/php/index.php b/php/index.php index 5f9c18a..f0cf101 100755 --- a/php/index.php +++ b/php/index.php @@ -2,15 +2,21 @@ /** PC IUT - PHP 8.1 */ /** Chargement config */ + require_once __DIR__ . '/src/config/config.php'; require __DIR__ . '/vendor/autoload.php'; /** Configuration twig */ $loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/templates'); -$twig = new \Twig\Environment($loader, [ +$twig = new \Twig\Environment($loader, [ 'cache' => false, 'debug' => true ]); $twig->addExtension(new \Twig\Extension\DebugExtension()); -$cont = new \App\controleur\FrontControleur(); \ No newline at end of file +$twig->addGlobal('dir', '/SAE_2A_FA-Reseau_ALICA/php'); + + + + +$cont = new \App\controleur\FrontControleur(); diff --git a/php/src/controleur/FrontControleur.php b/php/src/controleur/FrontControleur.php index 690eddc..3ff28c5 100755 --- a/php/src/controleur/FrontControleur.php +++ b/php/src/controleur/FrontControleur.php @@ -29,8 +29,6 @@ class FrontControleur $router->map('POST','/[a:action]?','UtilisateurControleur'); - $router->map('GET', '/[a:action]?', 'UtilisateurControleur'); - $router->map('GET|POST', '/user/[i:id]/[a:action]?', 'MembreControleur'); $router->map('GET|POST', '/admin/[i:id]/[a:action]?', 'AdminControleur'); @@ -48,7 +46,6 @@ class FrontControleur if (!$match) { $dVueErreur[] = "Error 404 Page not found"; - global $twig; echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]); } @@ -60,9 +57,9 @@ class FrontControleur try { if ($controller == "MembreControleur") { - if ($_SESSION["utilisateur"] != NULL) { - echo 'not implemented'; - return; + if ($_SESSION["utilisateur"]->getRole() != "Admin" || $_SESSION["utilisateur"]->getRole() != "Membre") { + + echo $twig->render("connection.html",['msg' => 'Vous devez vous connecter pour effectuer cette action']); } } diff --git a/php/src/controleur/UtilisateurControleur.php b/php/src/controleur/UtilisateurControleur.php index 7280332..a18ffd5 100755 --- a/php/src/controleur/UtilisateurControleur.php +++ b/php/src/controleur/UtilisateurControleur.php @@ -27,7 +27,8 @@ class UtilisateurControleur $utilisateur = $userModel->connection($email, $motDePasse); if ($utilisateur instanceof Alumni) { $_SESSION['utilisateur'] = $utilisateur; - header('Location: index.php?action=accueil'); + //header('Location: index.php?action=accueil'); + echo $twig->render("inscription_success.html",[]); exit(); } else { $dVueErreur[] = "L'adresse email ou le mot de passe est incorrect."; @@ -36,7 +37,7 @@ class UtilisateurControleur echo $twig->render('connection.html', ['dVueErreur' => $dVueErreur]); } - protected function inscription() + public function inscription() { global $twig; $dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant @@ -61,7 +62,7 @@ class UtilisateurControleur $nouvelUtilisateur = $userModel->inscription($prenom,$nom,$email, $hash); if ($nouvelUtilisateur instanceof Alumni) { - header('Location: index.php?action=inscription_success'); + echo $twig->render('inscription_success.html'); exit(); } else { $dVueErreur[] = "L'inscription a échoué, veuillez réessayer."; @@ -91,6 +92,7 @@ class UtilisateurControleur public function consulterProfilLimite() { //TODO + echo 'not implemented yet'; } public function consultOffers() @@ -102,6 +104,8 @@ class UtilisateurControleur $typeContrat=null; $exp = null; + $role = $_SESSION['utilisateur']->getRole() ?? NULL; + $nbOffers = 5 ; if(isset($_GET["niveauEtudes"]) && Validation::validateTypeStudies($_GET["niveauEtudes"])) { @@ -123,6 +127,7 @@ class UtilisateurControleur 'typeContrat' => $typeContrat, 'exp' => $exp, 'niveauEtudes' => $niveauEtudes, + 'role' => $role ); $offers = $userMdl->getOffersWithFilters($params); $totalOffers = count($offers); @@ -130,11 +135,9 @@ class UtilisateurControleur $numberPages = ceil($totalOffers / 5); - if($numberPages == 0 ) - { + $msg = NULL; + if($numberPages == 0 ) { $msg = 'Aucune Offre Trouvée'; - echo $twig->render("OffersList.html",['message' => $msg]); - return; } if (isset($_GET["page"]) && intval($_GET["page"]) != null) { @@ -163,15 +166,17 @@ class UtilisateurControleur echo "filtre :".$exp."
";*/ echo $twig->render('OffersList.html', [ + 'msg' => (($msg != null) ? $msg : ""), '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 : "")) + '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 : ""), + 'role' => $role ]); } diff --git a/php/src/modele/UtilisateurModele.php b/php/src/modele/UtilisateurModele.php index c7bcfd5..a28680f 100755 --- a/php/src/modele/UtilisateurModele.php +++ b/php/src/modele/UtilisateurModele.php @@ -205,10 +205,12 @@ class UtilisateurModele foreach ($res as $row) { $resal = $alGw->ObtenirById($row['offreur']); + $profilGw = new ProfilGateway(new Connection(DB_HOST,DB_USER,DB_PASS)); $resProfl = $profilGw->getProfilById($row['offreur']); - $alumni = new Alumni($resal[0]['mail'],$resal[0]['mdp'],$resal[0]['role'],$resProfl[0]['nom'],$resProfl[0]["prenom"]); + + $alumni = new Alumni(intval($resal[0]['id']),$resal[0]['mail'],$resal[0]['mdp'],$resal[0]['role'],$resProfl[0]['nom'],$resProfl[0]["prenom"]); $date = \DateTime::createFromFormat('Y-m-d', $row['date']); diff --git a/php/templates/OffersList.html b/php/templates/OffersList.html index 475c267..39cd38e 100644 --- a/php/templates/OffersList.html +++ b/php/templates/OffersList.html @@ -5,7 +5,7 @@ Alica - Offres - +
@@ -14,13 +14,17 @@
- Publier une offre + + {% if role == 'Membre' or role == 'Admin' %} + Publier une offre + {% endif %}
+
-
+

Filtrer les offres

@@ -79,7 +83,7 @@
@@ -87,7 +91,7 @@

Offres d'emploi

-{% if message is defined %} +{% if msg %}

{{ message }}

{% endif %} @@ -96,11 +100,11 @@ {% for offre in offres %}
- logo + logo

{{ offre.getNom() }}

-

Julien Martin | {{ offre.getDateStringFr()}}

+

{{offre.getOffreur().Prenom()}}, {{offre.getOffreur().getNom() }} | {{ offre.getDateStringFr()}}

{{ offre.getDescription() }}

@@ -109,7 +113,7 @@

{{offre.getVille()}}

+ onclick="window.location.href = '{{dir}}/displayOffer?id={{offre.getId()}}'">En savoir plus {% endfor %} @@ -117,19 +121,21 @@ @@ -138,8 +144,6 @@ - - diff --git a/php/templates/OffreDetailTest.html b/php/templates/OffreDetailTest.html index 852841c..02abc88 100644 --- a/php/templates/OffreDetailTest.html +++ b/php/templates/OffreDetailTest.html @@ -20,7 +20,7 @@
  • Logo
  • Offer Image
  • -
  • Offreur: {{ offre.getOffreur().getNom() }}
  • +
  • Offreur: {{offre.getOffreur().Prenom()}} {{offre.getOffreur().getNom() }}
  • Nom de l'offre: {{ offre.getNom() }}
  • Entreprise : {{ offre.getEntreprise() }}
  • Description: {{ offre.getDescription() }}
  • diff --git a/php/templates/accueil.html b/php/templates/accueil.html index 109b171..a17b7a6 100755 --- a/php/templates/accueil.html +++ b/php/templates/accueil.html @@ -3,7 +3,7 @@ - + Alica - Accueil diff --git a/php/templates/connection.html b/php/templates/connection.html index 0b8a3fb..577551e 100755 --- a/php/templates/connection.html +++ b/php/templates/connection.html @@ -4,13 +4,16 @@ Alica - Connexion - + +{% if msg %} +

    {{msg}}

    +{% endif %}
    - +

    Connexion

    Identifiant @@ -39,7 +42,7 @@ {% if dVueErreur is not empty %} diff --git a/php/templates/creerEvenement.html b/php/templates/creerEvenement.html index 7b7b28d..74145cf 100644 --- a/php/templates/creerEvenement.html +++ b/php/templates/creerEvenement.html @@ -9,7 +9,7 @@

    Créer un Événement

    -
    +
    diff --git a/php/templates/detailEvenement.html b/php/templates/detailEvenement.html index ac3a0fe..f6e34c5 100644 --- a/php/templates/detailEvenement.html +++ b/php/templates/detailEvenement.html @@ -22,9 +22,9 @@

    Organisateur: {{ evenement.organisateurId }}

    Date: {{ evenement.date }}

    Description: {{ evenement.description }}

    - Event Image + Event Image

    Places disponibles: {{ evenement.nbPlaceMax }}

    - Retour + Retour
    {% else %}

    L'événement n'existe pas ou n'est pas disponible.

    diff --git a/php/templates/erreur.html b/php/templates/erreur.html index 332d820..d8fd4c1 100755 --- a/php/templates/erreur.html +++ b/php/templates/erreur.html @@ -3,25 +3,23 @@ - + Alica - Erreur - - {% include "menu.html" %} +
    + {% include "menu.html" %} +
    +

    Erreur

    {% if dVueErreur is defined %} {% for value in dVueErreur %}

    {{value}}

    {% endfor %} {% endif %} - +
    diff --git a/php/templates/evenement.html b/php/templates/evenement.html index 47eb0de..d293591 100644 --- a/php/templates/evenement.html +++ b/php/templates/evenement.html @@ -15,14 +15,14 @@
    -
    +

    Liste des Événements

    - Publier événement + Publier événement
      @@ -34,13 +34,13 @@

      Organisateur: {{ evenement.getNomOrganisateur() }}

      Date: {{ evenement.date }}

      Description: {{ evenement.description }}

      - {{ evenement.titre }} + {{ evenement.titre }}

      Places disponibles: {{ evenement.nbPlaceMax }}

      - Détails + Détails
    -
    +
    diff --git a/php/templates/inscription.html b/php/templates/inscription.html index 64cabea..061d6cb 100755 --- a/php/templates/inscription.html +++ b/php/templates/inscription.html @@ -4,11 +4,11 @@ Alica - Inscription - +
    -
    +

    S'inscrire

    Prénom : @@ -62,7 +62,7 @@ {% if dVueErreur is not empty %} diff --git a/php/templates/inscription_success.html b/php/templates/inscription_success.html index 8f9995d..f590fe3 100644 --- a/php/templates/inscription_success.html +++ b/php/templates/inscription_success.html @@ -3,7 +3,7 @@ Success - +

    Inscription effectuée avec succès, vous pouvez désormais vous connecter

    @@ -15,7 +15,7 @@
    diff --git a/php/templates/menu.html b/php/templates/menu.html index 4e3339a..7e48b0e 100644 --- a/php/templates/menu.html +++ b/php/templates/menu.html @@ -1,13 +1,13 @@ - +