diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000..95a9d20
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/php/src/controleur/FrontControleur.php b/php/src/controleur/FrontControleur.php
index 594bd18..cf6292e 100755
--- a/php/src/controleur/FrontControleur.php
+++ b/php/src/controleur/FrontControleur.php
@@ -20,7 +20,7 @@ class FrontControleur
],
"Utilisateur" => [
- "connexion", "inscription", "accueil", "consulterProfilLimite", "publierOffre", "listerEvenement", "creerEvenement", "supprimerEvenement", "avoirDetailEvenement", "rechercherEvenement"
+ "connexion", "getProfilByPage","inscription", "accueil", "consulterProfilLimite", "publierOffre", "listerEvenement", "creerEvenement", "supprimerEvenement", "avoirDetailEvenement", "rechercherEvenement"
]
);
diff --git a/php/src/controleur/UtilisateurControleur.php b/php/src/controleur/UtilisateurControleur.php
index 0e277c4..7d93cde 100755
--- a/php/src/controleur/UtilisateurControleur.php
+++ b/php/src/controleur/UtilisateurControleur.php
@@ -24,6 +24,12 @@ class UtilisateurControleur
case "accueil":
$this->accueil();
break;
+ case "profil":
+ $this->profil();
+ break;
+ case "getProfilByPage":
+ $this->getProfilByPage();
+ break;
case "inscription_success":
$this->inscription_success();
break;
@@ -64,7 +70,7 @@ class UtilisateurControleur
$this->rechercherEvenement();
break;
default:
- $dVueErreur[] = "Action inconnue ou non autorisée";
+ $dVueErreur[] = "Action inconnue ou non autorisée" . $action;
echo $twig->render("erreur.html", ['dVueErreur' => $dVueErreur]);
}
}
@@ -396,4 +402,29 @@ class UtilisateurControleur
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]);
+ }
+ }
}
\ No newline at end of file
diff --git a/php/src/gateway/AlumniGateway.php b/php/src/gateway/AlumniGateway.php
index e4fb4c7..e9ae7b4 100644
--- a/php/src/gateway/AlumniGateway.php
+++ b/php/src/gateway/AlumniGateway.php
@@ -9,11 +9,13 @@ class AlumniGateway
/**
* @param $con
*/
- public function __construct(Connection $con){
+ public function __construct(Connection $con)
+ {
$this->con = $con;
}
- public function insert(string $email, string $motDePasse, string $role){
+ public function insert(string $email, string $motDePasse, string $role)
+ {
$query = 'INSERT INTO Alumni (mail, mdp, role) VALUES (:mail, :mdp, :role)';
return $this->con->executeQuery($query, array(
':mail' => array($email, PDO::PARAM_STR),
@@ -23,15 +25,16 @@ class AlumniGateway
}
- public function updateMotDePasse(int $id, string $password){
- $query='UPDATE Alumni SET motDePasse=:new WHERE id=:i';
+ public function updateMotDePasse(int $id, string $password)
+ {
+ $query = 'UPDATE Alumni SET motDePasse=:new WHERE id=:i';
$this->con->executeQuery($query, array(
':i' => array($id, PDO::PARAM_INT),
':new' => array($password, PDO::PARAM_STR)
));
}
- public function ObtenirById(int $id) : array
+ public function ObtenirById(int $id): array
{
$query = 'SELECT * FROM Alumni WHERE id=:i';
$this->con->executeQuery($query, array(
@@ -40,7 +43,8 @@ class AlumniGateway
return $this->con->getResults();
}
- public function findByEmail(string $email){
+ public function findByEmail(string $email)
+ {
$query = 'SELECT Alumni.id, Alumni.mail, Alumni.mdp, Alumni.role, Profil.nom, Profil.prenom
FROM Alumni
LEFT JOIN Profil ON Alumni.id = Profil.alumni
@@ -52,8 +56,9 @@ class AlumniGateway
}
- public function getAll(){
- $query='SELECT * FROM Alumni';
+ public function getAll()
+ {
+ $query = 'SELECT * FROM Alumni';
$this->con->executeQuery($query);
return $this->con->getResults();
}
@@ -67,4 +72,6 @@ class AlumniGateway
$res = $this->con->getResults();
return $res[0]['id'];
}
-}
\ No newline at end of file
+
+
+}
diff --git a/php/src/gateway/ProfilGateway.php b/php/src/gateway/ProfilGateway.php
index 3673b68..ab6d847 100644
--- a/php/src/gateway/ProfilGateway.php
+++ b/php/src/gateway/ProfilGateway.php
@@ -33,4 +33,15 @@ class ProfilGateway
));
return $this->con->getResults();
}
+
+ public function userByPage(int $page, int $nbParPage)
+ {
+ $start = ($page - 1) * $nbParPage; // Calcul de l'index de départ pour LIMIT
+ $query = 'SELECT * FROM Profil LIMIT :start, :nbParPage';
+ $this->con->executeQuery($query, array(
+ ':start' => array($start, PDO::PARAM_INT),
+ ':nbParPage' => array($nbParPage, PDO::PARAM_INT),
+ ));
+ return $this->con->getResults();
+ }
}
\ No newline at end of file
diff --git a/php/src/modele/UtilisateurModele.php b/php/src/modele/UtilisateurModele.php
index 9986c2a..accb46b 100755
--- a/php/src/modele/UtilisateurModele.php
+++ b/php/src/modele/UtilisateurModele.php
@@ -7,6 +7,7 @@ use App\metier\Evenement;
use App\metier\Alumni;
use App\gateway\AlumniGateway;
use App\gateway\ProfilGateway;
+use App\metier\Profil;
class UtilisateurModele
@@ -15,7 +16,7 @@ class UtilisateurModele
public function __construct()
{
- $this->con = new Connection(DB_HOST,DB_USER,DB_PASS);
+ $this->con = new Connection(DB_HOST, DB_USER, DB_PASS);
}
/**
@@ -25,24 +26,24 @@ class UtilisateurModele
* @return Alumni
*/
- public function connection(string $email, string $mdp) : ? Alumni
- {
- $con = new Connection(DB_HOST,DB_USER,DB_PASS);
- $gate = new AlumniGateway($con);
-
- // Récupation de l'utilisateur avec l'email
- $utilisateur = $gate->findByEmail($email);
- if ($utilisateur[0]!=null) {
- // L'utilisateur existe, vérification du mot de passe
- if (password_verify($mdp, $utilisateur[0]['mdp'])) {
- // Le mot de passe est correct, retournez l'utilisateur
- return new Alumni($utilisateur[0]['id'],$utilisateur[0]['mail'], $utilisateur[0]['mdp'], $utilisateur[0]['role'],$utilisateur[0]['nom'],$utilisateur[0]['prenom']);
- } else {
- return null;
- }
- } else {
- return null;
- }
+ public function connection(string $email, string $mdp): ?Alumni
+ {
+ $con = new Connection(DB_HOST, DB_USER, DB_PASS);
+ $gate = new AlumniGateway($con);
+
+ // Récupation de l'utilisateur avec l'email
+ $utilisateur = $gate->findByEmail($email);
+ if ($utilisateur[0] != null) {
+ // L'utilisateur existe, vérification du mot de passe
+ if (password_verify($mdp, $utilisateur[0]['mdp'])) {
+ // Le mot de passe est correct, retournez l'utilisateur
+ return new Alumni($utilisateur[0]['id'], $utilisateur[0]['mail'], $utilisateur[0]['mdp'], $utilisateur[0]['role'], $utilisateur[0]['nom'], $utilisateur[0]['prenom']);
+ } else {
+ return null;
+ }
+ } else {
+ return null;
+ }
}
/**
@@ -53,43 +54,43 @@ class UtilisateurModele
* @return \Alumni chargé
*/
- public function inscription(string $prenom, string $nom,string $email, string $hashpassword):? Alumni
- {
- $role = "Membre";
- $con = new Connection(DB_HOST,DB_USER,DB_PASS);
- $gate = new AlumniGateway($con);
- $profilGate = new ProfilGateway($con);
- // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway
- if ($gate->insert($email, $hashpassword, $role)) {
- $id = $gate->getID($email);
- if($profilGate->insert($id,$nom, $prenom,$email)){
- // L'insertion a réussi, retournez le nouvel utilisateur
- $nouvelUtilisateur = new Alumni($id,$email, $hashpassword, $role,$nom,$prenom);
- return $nouvelUtilisateur;
- }
- return null;
- } else {
- // L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec
- return null;
- }
- }
-
- public function getUtilisateurByEmail(string $email)
- {
- $con = new Connection(DB_HOST,DB_USER,DB_PASS);
- $gate = new AlumniGateway($con);
- // Récupérez l'utilisateur avec l'email donné en utilisant AlumniGateway
- $utilisateur = $gate->findByEmail($email);
- if ($utilisateur instanceof Alumni) {
- // L'utilisateur existe, retournez-le
- return $utilisateur;
- } else {
- // L'utilisateur n'existe pas, renvoyez null
- return null;
- }
- }
-
- public function getEvenement() : array
+ public function inscription(string $prenom, string $nom, string $email, string $hashpassword): ?Alumni
+ {
+ $role = "Membre";
+ $con = new Connection(DB_HOST, DB_USER, DB_PASS);
+ $gate = new AlumniGateway($con);
+ $profilGate = new ProfilGateway($con);
+ // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway
+ if ($gate->insert($email, $hashpassword, $role)) {
+ $id = $gate->getID($email);
+ if ($profilGate->insert($id, $nom, $prenom, $email)) {
+ // L'insertion a réussi, retournez le nouvel utilisateur
+ $nouvelUtilisateur = new Alumni($id, $email, $hashpassword, $role, $nom, $prenom);
+ return $nouvelUtilisateur;
+ }
+ return null;
+ } else {
+ // L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec
+ return null;
+ }
+ }
+
+ public function getUtilisateurByEmail(string $email)
+ {
+ $con = new Connection(DB_HOST, DB_USER, DB_PASS);
+ $gate = new AlumniGateway($con);
+ // Récupérez l'utilisateur avec l'email donné en utilisant AlumniGateway
+ $utilisateur = $gate->findByEmail($email);
+ if ($utilisateur instanceof Alumni) {
+ // L'utilisateur existe, retournez-le
+ return $utilisateur;
+ } else {
+ // L'utilisateur n'existe pas, renvoyez null
+ return null;
+ }
+ }
+
+ public function getEvenement(): array
{
$gate = new EvenementGateway($this->con);
@@ -97,8 +98,7 @@ class UtilisateurModele
$evenement = array();
- foreach($data as $row)
- {
+ foreach ($data as $row) {
$evenement[] = new Evenement(
$row['id'],
$row['organisateur'],
@@ -135,9 +135,9 @@ class UtilisateurModele
$gate->deleteEvenement($id);
}
- public function getEvenementById(int $id) : Evenement
+ public function getEvenementById(int $id): Evenement
{
- $gate = new EvenementGateway($this->con);
+ $gate = new EvenementGateway($this->con);
$data = $gate->findById($id);
@@ -154,16 +154,15 @@ class UtilisateurModele
return $evenement;
}
- public function getEvenementByTitre(string $titre) : array
+ public function getEvenementByTitre(string $titre): array
{
- $gate = new EvenementGateway($this->con);
+ $gate = new EvenementGateway($this->con);
$data = $gate->findByTitle($titre);
$evenement = array();
- foreach($data as $row)
- {
+ foreach ($data as $row) {
$evenement[] = new Evenement(
$row['id'],
$row['organisateur'],
@@ -177,4 +176,29 @@ class UtilisateurModele
return $evenement;
}
+
+ public function getUtilisateurByPage(string $page)
+ {
+ $con = new Connection(DB_HOST, DB_USER, DB_PASS);
+ $gate = new ProfilGateway($con);
+ $data = $gate->userByPage($page, 10);
+ if($data[0]!=null){
+ //Création d'une liste d'objets utilisateurs
+ $profils = array();
+ foreach ($data as $row) {
+ echo $row['nom'];
+ $profils[] = new Profil(
+ $row['nom'],
+ $row['prenom'],
+ $row['email'],
+ $row['cv'] ?? '',
+ $row['linkedinURL'] ?? '',
+ $row['githubURL'] ?? '',
+ $row['portfolioURL'] ?? ''
+ );
+ }
+ return $profils;
+ }
+ return null;
+ }
}
\ No newline at end of file
diff --git a/php/templates/profil.html b/php/templates/profil.html
new file mode 100644
index 0000000..5cd6b0a
--- /dev/null
+++ b/php/templates/profil.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+ Profils des Alumnis
+
+
+
+Les Alumnis :
+
+
+ {% for utilisateur in utilisateurs %}
+
+ {% else %}
+
Aucun profil trouvé.
+ {% endfor %}
+
+
+
+
+