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/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
+
+
+
+
+
+
+
+
\ No newline at end of file