From 29b08cf4bb476a9a24a933e8637f3c0c40a3a69e Mon Sep 17 00:00:00 2001 From: Alexis FERON Date: Wed, 25 Oct 2023 19:23:14 +0200 Subject: [PATCH] Fonctionnement avec FrontControleur --- .idea/alica.iml | 0 .idea/deployment.xml | 0 .idea/discord.xml | 0 .idea/php.xml | 0 php/.DS_Store | Bin .../a2/a28a53cf6f313f83f1634484922e1e19.php | 0 php/controleur/AdminControleur.php | 58 ++++++++++- php/controleur/FrontControleur.php | 89 +++++++++-------- php/controleur/MembreControleur.php | 56 ++++++++++- php/controleur/ModerateurControleur.php | 22 +++++ php/controleur/UtilisateurControleur.php | 91 ++++++++---------- php/css/.DS_Store | Bin php/css/{login.css => connection.css} | 0 php/css/erreur.css | 14 +++ php/css/{register.css => inscription.css} | 0 php/dal/gateway/EvenementGateway.php | 18 ++++ php/dal/gateway/OffreGateway.php | 18 ++++ php/index.php | 2 +- php/metier/Evenement.php | 6 ++ php/metier/Offre.php | 6 ++ php/modeles/ModerateurControleur.php | 8 ++ php/vues/accueil.html | 2 +- php/vues/connection.html | 6 +- php/vues/erreur.html | 7 +- php/vues/inscription.html | 50 ++++++++++ 25 files changed, 347 insertions(+), 106 deletions(-) mode change 100644 => 100755 .idea/alica.iml mode change 100644 => 100755 .idea/deployment.xml mode change 100644 => 100755 .idea/discord.xml mode change 100644 => 100755 .idea/php.xml mode change 100644 => 100755 php/.DS_Store mode change 100644 => 100755 php/cache/a2/a28a53cf6f313f83f1634484922e1e19.php create mode 100755 php/controleur/ModerateurControleur.php mode change 100644 => 100755 php/css/.DS_Store rename php/css/{login.css => connection.css} (100%) create mode 100644 php/css/erreur.css rename php/css/{register.css => inscription.css} (100%) create mode 100755 php/dal/gateway/EvenementGateway.php create mode 100755 php/dal/gateway/OffreGateway.php create mode 100755 php/metier/Evenement.php create mode 100755 php/metier/Offre.php create mode 100755 php/modeles/ModerateurControleur.php mode change 100644 => 100755 php/vues/connection.html create mode 100755 php/vues/inscription.html diff --git a/.idea/alica.iml b/.idea/alica.iml old mode 100644 new mode 100755 diff --git a/.idea/deployment.xml b/.idea/deployment.xml old mode 100644 new mode 100755 diff --git a/.idea/discord.xml b/.idea/discord.xml old mode 100644 new mode 100755 diff --git a/.idea/php.xml b/.idea/php.xml old mode 100644 new mode 100755 diff --git a/php/.DS_Store b/php/.DS_Store old mode 100644 new mode 100755 diff --git a/php/cache/a2/a28a53cf6f313f83f1634484922e1e19.php b/php/cache/a2/a28a53cf6f313f83f1634484922e1e19.php old mode 100644 new mode 100755 diff --git a/php/controleur/AdminControleur.php b/php/controleur/AdminControleur.php index 6d97769..fa74bfe 100755 --- a/php/controleur/AdminControleur.php +++ b/php/controleur/AdminControleur.php @@ -2,7 +2,61 @@ namespace controleur; -class AdminControleur +use config\Validation; + +class AdminControleur extends ModerateurControleur { + public function __construct() + { + global $twig; + if (!isset($_REQUEST["action"])) { + $action = NULL; + } else { + $action = Validation::nettoyerString($_REQUEST["action"]); + } + switch ($action) { + case "supprimerCompte": + $this->supprimerCompte(); + break; + case "consulterSignalement": + $this->consulterSignalement(); + break; + case "creerEvenement": + $this->creerEvenement(); + break; + case "supprimerEvenement": + $this->supprimerEvenement(); + break; + case "supprimerOffre": + $this->supprimerOffre(); + break; + default: + parent::__construct(); + } + } + + protected function supprimerCompte() + { + //TODO + } + + protected function consulterSignalement() + { + //TODO + } + + protected function creerEvenement() + { + //TODO + } + + protected function supprimerEvenement() + { + //TODO + } -} \ No newline at end of file + protected function supprimerOffre() + { + //TODO + } +} diff --git a/php/controleur/FrontControleur.php b/php/controleur/FrontControleur.php index 78cc736..7e1d2bb 100755 --- a/php/controleur/FrontControleur.php +++ b/php/controleur/FrontControleur.php @@ -1,57 +1,56 @@ reinit(); - break; - - default: - $dVueEreur[] = "Erreur d'appel php"; - echo $twig->render('accueil.html', ['dVueEreur' => $dVueEreur]); - break; + $dVueErreur = []; + $actions = array( + "Admin" => [ + "supprimerCompte", "consulterSignalement", "creerEvenement", "supprimerEvenement","supprimerOffre" + ], + "Modérateur" => [ + //TODO + ], + "Membre" => [ + "deconnexion","proposerOffre","consulterProfil","modifierProfil","signaler" + ], + "Utilisateur" => [ + "connection", "inscription", "accueil","consulterProfilLimite" + ] + ); + + $action = Validation::nettoyerString($_GET["action"] ?? ""); + if(in_array($action,$actions['Admin'])) { + if (false) { //TODO: tester si connecté en tant qu'admin via la session + $dVueErreur[] = 'Veuillez vous connecter'; + echo $twig->render('erreur.html', ['dVueEreur' => $dVueErreur]); + } else{ + new AdminControleur(); } - } catch (\PDOException $e) { - //si erreur BD, pas le cas ici - $dVueEreur[] = 'Erreur inattendue!!! '; - } catch (\Exception $e2) { - $dVueEreur[] = 'Erreur inattendue!!! '; - echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]); } - - //fin - exit(0); - }//fin constructeur - - public function reinit() - { - global $twig; // nécessaire pour utiliser variables globales - echo 'toto'; - $dVue = [ - 'nom' => '', - 'age' => 0, - ]; - var_dump($dVue); - - echo $twig->render('accueil.html', [ - 'dVue' => $dVue - ]); + else if(in_array($action,$actions['Modérateur'])) { + if (false) { //TODO: tester si connecté en tant que modérateur via la session + $dVueErreur[] = 'Veuillez vous connecter'; + echo $twig->render('erreur.html', ['dVueEreur' => $dVueErreur]); + } else{ + new ModerateurControleur(); + } + } + else if(in_array($action,$actions['Membre'])) { + if (isset($_SESSION["login"]) && !empty($_SESSION["login"]) == null) { + $dVueErreur[] = 'Veuillez vous connecter'; + echo $twig->render('erreur.html', ['dVueEreur' => $dVueErreur]); + } else{ + new MembreControleur(); + } + }else{ + new UtilisateurControleur(); + } } - } diff --git a/php/controleur/MembreControleur.php b/php/controleur/MembreControleur.php index f5f75bd..ef21ed6 100755 --- a/php/controleur/MembreControleur.php +++ b/php/controleur/MembreControleur.php @@ -2,7 +2,61 @@ namespace controleur; -class MembreControleur +use config\Validation; + +class MembreControleur extends UtilisateurControleur { + public function __construct() + { + global $twig; + if (!isset($_REQUEST["action"])) { + $action = NULL; + } else { + $action = Validation::nettoyerString($_REQUEST["action"]); + } + switch ($action) { + case "deconnexion": + $this->deconnexion(); + break; + case "proposerOffre": + $this->proposerOffre(); + break; + case "consulterProfil": + $this->consulterProfil(); + break; + case "modifierProfil": + $this->modifierProfil(); + break; + case "signaler": + $this->signaler(); + break; + default: + parent::__construct(); + } + } + + protected function deconnexion() + { + //TODO + } + + protected function proposerOffre() + { + //TODO + } + + protected function consulterProfil() + { + //TODO + } + + protected function modifierProfil() + { + //TODO + } + protected function signaler() + { + //TODO + } } \ No newline at end of file diff --git a/php/controleur/ModerateurControleur.php b/php/controleur/ModerateurControleur.php new file mode 100755 index 0000000..c9916b5 --- /dev/null +++ b/php/controleur/ModerateurControleur.php @@ -0,0 +1,22 @@ +reinit(); - break; - case 'connection': - $this->connection(); - break; - default: - $dVueEreur[] = "Erreur d'appel php"; - echo $twig->render('accueil.html', ['dVueEreur' => $dVueEreur]); - break; - } - } catch (\PDOException $e) { - //si erreur BD, pas le cas ici - $dVueEreur[] = 'TODO '; - } catch (\Exception $e2) { - $dVueEreur[] = 'TODO '; - echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]); + global $twig; + if (!isset($_REQUEST["action"])) { + $action = NULL; + } else { + $action = Validation::nettoyerString($_REQUEST["action"]); } + switch ($action) { + case NULL: + case "accueil": + $this->accueil(); + break; + case "connection": + $this->connection(); + break; + case "inscription": + $this->inscription(); + break; + case "consulterProfilLimite": + $this->consulterProfilLimite(); + break; + default: + $dVueErreur[] ="Action inconnue ou non autorisée"; + echo $twig->render("erreur.html",['dVueEreur' => $dVueErreur]); - //fin - exit(0); - }//fin constructeur + } + } - /** - * @throws SyntaxError - * @throws RuntimeError - * @throws LoaderError - */ - private function connection() + protected function connection() { global $twig; echo $twig->render('connection.html', []); } - public function reinit() + protected function inscription() { global $twig; - $dVue = [ - 'session' => '' - ]; - var_dump($dVue); + echo $twig->render('inscription.html', []); + } + + protected function accueil() + { + global $twig; + echo $twig->render('accueil.html', []); + } - echo $twig->render('accueil.html', [ - 'dVue' => $dVue - ]); + protected function consulterProfilLimite() + { + //TODO } } \ No newline at end of file diff --git a/php/css/.DS_Store b/php/css/.DS_Store old mode 100644 new mode 100755 diff --git a/php/css/login.css b/php/css/connection.css similarity index 100% rename from php/css/login.css rename to php/css/connection.css diff --git a/php/css/erreur.css b/php/css/erreur.css new file mode 100644 index 0000000..a644c49 --- /dev/null +++ b/php/css/erreur.css @@ -0,0 +1,14 @@ +@import url(https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Share+Tech+Mono&display=swap); +*{ + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} +body{ + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + background: #2f363e; +} \ No newline at end of file diff --git a/php/css/register.css b/php/css/inscription.css similarity index 100% rename from php/css/register.css rename to php/css/inscription.css diff --git a/php/dal/gateway/EvenementGateway.php b/php/dal/gateway/EvenementGateway.php new file mode 100755 index 0000000..6379bcf --- /dev/null +++ b/php/dal/gateway/EvenementGateway.php @@ -0,0 +1,18 @@ +con = $con; + } + + public function insert(){ + $query='INSERT INTO Evenement VALUES ()'; + $this->con->executeQuery($query, array()); + } +} \ No newline at end of file diff --git a/php/dal/gateway/OffreGateway.php b/php/dal/gateway/OffreGateway.php new file mode 100755 index 0000000..8444ebe --- /dev/null +++ b/php/dal/gateway/OffreGateway.php @@ -0,0 +1,18 @@ +con = $con; + } + + public function insert(){ + $query='INSERT INTO Offre VALUES ()'; + $this->con->executeQuery($query, array()); + } +} \ No newline at end of file diff --git a/php/index.php b/php/index.php index 7ee88f7..c327eba 100755 --- a/php/index.php +++ b/php/index.php @@ -13,4 +13,4 @@ $twig = new \Twig\Environment($loader, [ 'debug' => true ]); -$cont = new \controleur\UtilisateurControleur(); +$cont = new \controleur\FrontControleur(); diff --git a/php/metier/Evenement.php b/php/metier/Evenement.php new file mode 100755 index 0000000..e51035b --- /dev/null +++ b/php/metier/Evenement.php @@ -0,0 +1,6 @@ +Vous êtes sur la page d'accueil

Vous pouvez vous connecter ou vous inscrire

Vous pouvez aussi consulter les articles

-

Vous pouvez aussi consulter les articles

+

Vous pouvez aussi consulter les annonces

Connection :

diff --git a/php/vues/connection.html b/php/vues/connection.html old mode 100644 new mode 100755 index 515a754..9d230f9 --- a/php/vues/connection.html +++ b/php/vues/connection.html @@ -4,7 +4,7 @@ Alica - Connection - +
@@ -36,7 +36,9 @@
Mot de passe oublié -
S'inscrire +
+
+
diff --git a/php/vues/erreur.html b/php/vues/erreur.html index e0cbf8f..95ba143 100755 --- a/php/vues/erreur.html +++ b/php/vues/erreur.html @@ -3,15 +3,18 @@ - Erreur + Alica - Erreur -

ERREUR page !!!!!

+

Page d'erreur

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

{{value}}

{% endfor %} {% endif %} +
+ +
diff --git a/php/vues/inscription.html b/php/vues/inscription.html new file mode 100755 index 0000000..defbd13 --- /dev/null +++ b/php/vues/inscription.html @@ -0,0 +1,50 @@ + + + + + Alica - Inscription + + + +
+
+

S'inscrire

+
+ Identifiant +
+
+
+ +
+
+
+ Email +
+
+
+ +
+
+
+ Mot de passe +
+
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+ + + + \ No newline at end of file