summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-03-13 12:42:37 +0100
committerDebulois <quentin@debulois.fr>2022-03-13 12:42:37 +0100
commit473e6eb56ca1211be05d2b5fd814710f2ff78d38 (patch)
tree4544b6c5c2ecaa3198d3583520f3199d7c056ed4
parent497ce42637ebaad0c388d309d6b5bbf91db2dfa4 (diff)
Mise ç jour de pas mal de chose et ajout de la possibilité de pouvoir ajouter/supprimer des catégories d'emploi
-rw-r--r--Database/dbmain.php10
-rw-r--r--Database/meth_dbadmin.php108
-rw-r--r--Database/meth_dbmission.php59
-rw-r--r--Database/meth_dbsearch.php38
-rw-r--r--Database/meth_dbuser.php89
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwbbin13609 -> 13705 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bakbin13622 -> 13611 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.pngbin47201 -> 48598 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.sql5
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/infos_css.txt3
-rw-r--r--Statics/Css/main.css22
-rw-r--r--Views/Includes/en/message.php40
-rw-r--r--Views/Includes/en/text.php16
-rw-r--r--Views/Includes/en/title.php2
-rw-r--r--Views/Includes/fr/message.php34
-rw-r--r--Views/Includes/fr/text.php16
-rw-r--r--Views/Includes/fr/title.php2
-rw-r--r--Views/Includes/incl_form_admin.php (renamed from Views/Includes/incl_form_delete.php)48
-rw-r--r--Views/Includes/incl_form_userInfo.php8
-rw-r--r--Views/Includes/incl_global_navbar.php2
-rw-r--r--Views/Includes/incl_index_search.php2
-rw-r--r--Views/Includes/incl_table_myMission.php4
-rw-r--r--Views/admin.php (renamed from Views/delete.php)4
-rw-r--r--Wrapper/Functions/func_admin.php53
-rw-r--r--Wrapper/Functions/func_delete.php19
-rw-r--r--Wrapper/Functions/func_info.php2
-rw-r--r--Wrapper/Functions/func_login.php10
-rw-r--r--Wrapper/Functions/func_logout.php2
-rw-r--r--Wrapper/Functions/func_mission.php4
-rw-r--r--Wrapper/Functions/func_register.php2
-rw-r--r--Wrapper/Functions/func_search.php10
-rw-r--r--Wrapper/wrapper.php44
-rw-r--r--todo.txt16
33 files changed, 473 insertions, 201 deletions
diff --git a/Database/dbmain.php b/Database/dbmain.php
index 532bb7c..262c55a 100644
--- a/Database/dbmain.php
+++ b/Database/dbmain.php
@@ -12,6 +12,8 @@
// final: ne peut etre ré-écris (overload)
class DbMain {
+ // Pour gérer si "en production"
+ private $debug = True;
// Salt pour chiffrement
private $salt = "cTKXHBoN3oxymlhNem2h";
// Configuration du serveur MYSQL / MARIADB
@@ -19,10 +21,9 @@ class DbMain {
private $host = "127.0.0.1";
private $user = "root";
private $pass = "";
- private $debug = True;
- // Déclaration des tables
private $database = "alphajob";
+ // Déclaration des tables
// Timestamp auto si non renseigné
// UserAccount, infos du compte nécessaire à la connection
private $createTableUserAccount = "CREATE TABLE IF NOT EXISTS `alphajob`.`userAccount` (
@@ -65,8 +66,9 @@ class DbMain {
// Liste des categories d'emploie possible
private $createTableJobCategory = "CREATE TABLE IF NOT EXISTS `alphajob`.`jobCategory` (
- `jobCategoryId` INT UNSIGNED NOT NULL,
- `categoryName` VARCHAR(128) NOT NULL,
+ `jobCategoryId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
+ `jobCategoryNameEn` VARCHAR(128) NOT NULL,
+ `jobCategoryNameFr` VARCHAR(128) NOT NULL,
PRIMARY KEY (`jobCategoryId`)
)
ENGINE = InnoDB
diff --git a/Database/meth_dbadmin.php b/Database/meth_dbadmin.php
new file mode 100644
index 0000000..32d6077
--- /dev/null
+++ b/Database/meth_dbadmin.php
@@ -0,0 +1,108 @@
+<?php
+// ****************************************************************************
+// Description: Ensemble de méthodes pour étendre dbmain
+// afin de gérer l'administration du site
+// ****************************************************************************
+
+// Import de dbmain
+require_once(dirname( __FILE__ )."/dbmain.php");
+// Extension de cette classe avec dbmain
+class DbAdmin extends DbMain {
+
+ // Récupérer toutes les infos de la table userAccount
+ final public function get_all_users_account() {
+ $reqGetAll = "SELECT * FROM ".$this->tableUserAccount;
+ // https://www.php.net/manual/fr/pdostatement.fetch.php
+ // "PDO::FETCH_ASSOC: retourne un tableau indexé
+ // par le nom de la colonne comme retourné dans le jeu de résultats"
+ $data = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
+ return $data;
+ }
+
+ // https://stackoverflow.com/questions/1361340/how-can-i-do-insert-if-not-exists-in-mysql
+ // Suppresion d'un utilisateur
+ final public function user_del($userId) {
+ // Préparation de la requète pour voir si l'utilisateur existe
+ // https://stackoverflow.com/questions/1676551/best-way-to-test-if-a-row-exists-in-a-mysql-table
+ $reqCheckExistId = "SELECT EXISTS(SELECT 1 FROM ".$this->tableUserAccount." WHERE userId = ? LIMIT 1)";
+ // Exécution de la requète, fetchall pour avoir le résultat
+ // https://www.php.net/manual/fr/pdostatement.fetch.php
+ // struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL))
+ // PDO::FETCH_NUM : retourne un tableau indexé par le numéro de la colonne comme elle
+ // est retourné dans votre jeu de résultat, commençant à 0
+ $reqResult = $this->exec_cmd($reqCheckExistId, array($userId))->fetchAll(PDO::FETCH_NUM);
+ // Si il existe
+ if ($reqResult[0][0]) {
+ // Préparation de la requète pour suppression
+ $reqDelUser = "DELETE FROM ".$this->tableUserAccount." WHERE userId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqDelUser, array($userId));
+ // Retourne 1 pour réussite
+ return 1;
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ }
+
+ // Récupérer toutes les infos de la table jobCategory
+ final public function get_all_job_category() {
+ $reqGetAll = "SELECT * FROM ".$this->tableJobCategory;
+ $data = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
+ return $data;
+ }
+
+ // Ajout d'une categorie
+ final public function job_category_register($jobCategoryNameEn, $jobCategoryNameFr) {
+ // Préparation et execution de la requète pour voir si la categorie existe en anglais
+ $reqCheckjobCategoryNameEn = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryNameEn = ? LIMIT 1)";
+ $reqResultEn = $this->exec_cmd($reqCheckjobCategoryNameEn, array($jobCategoryNameEn))->fetchAll(PDO::FETCH_NUM);
+ // Si il n'existe pas en anglais
+ if (!$reqResultEn[0][0]) {
+ // Préparation et execution de la requète pour voir si la categorie existe en Français
+ $reqCheckjobCategoryNameFr = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryNameFr = ? LIMIT 1)";
+ $reqResultFr = $this->exec_cmd($reqCheckjobCategoryNameFr, array($jobCategoryNameFr))->fetchAll(PDO::FETCH_NUM);
+ // Si il n'existe pas en Français non plus
+ if (!$reqResultFr[0][0]) {
+ // Préparation de la requète pour l'ajout
+ $reqjobCategoryNameAdd = "INSERT INTO ".$this->tableJobCategory."
+ (jobCategoryNameEn, jobCategoryNameFr)
+ VALUES
+ (? ,?)";
+ // Exécution de la requète
+ $this->exec_cmd($reqjobCategoryNameAdd, array($jobCategoryNameEn, $jobCategoryNameFr));
+ // Retourne 1 pour réussite
+ return 1;
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ }
+
+ // Suppresion d'un utilisateur
+ final public function job_category_del($jobCategoryId) {
+ // Préparation de la requète pour voir si l'utilisateur existe
+ $reqCheckExistId = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryId = ? LIMIT 1)";
+ // Exécution de la requète, fetchall pour avoir le résultat
+ // struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL))
+ // fetch_num pour casser l'index "req" en chiffre, dict -> list
+ $reqResult = $this->exec_cmd($reqCheckExistId, array($jobCategoryId))->fetchAll(PDO::FETCH_NUM);
+ // Si il existe
+ if ($reqResult[0][0]) {
+ // Préparation de la requète pour suppression
+ $reqDelJobCategory = "DELETE FROM ".$this->tableJobCategory." WHERE jobCategoryId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqDelJobCategory, array($jobCategoryId));
+ // Retourne 1 pour réussite
+ return 1;
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ }
+}
+?> \ No newline at end of file
diff --git a/Database/meth_dbmission.php b/Database/meth_dbmission.php
new file mode 100644
index 0000000..006f572
--- /dev/null
+++ b/Database/meth_dbmission.php
@@ -0,0 +1,59 @@
+<?php
+// ****************************************************************************
+// Description: Ensemble de méthodes pour étendre dbmain afin
+// d'effectuer des recherches dans la bdd
+// ****************************************************************************
+// Infos pour les "join":
+// https://www.freecodecamp.org/news/sql-joins-tutorial/
+//
+// Import de dbmain
+require_once(dirname( __FILE__ )."/dbmain.php");
+// Extension de cette classe avec dbmain
+class DbMission extends DbMain {
+
+ // Enregistrement d'une mission
+ final public function register_mission($subject, $note, $review, $clientId, $proId) {
+ // Vérification de l'existance de l'id de consultant
+ $exist = $this->check_exist_pro($proId);
+ // Si il existe
+ if ($exist) {
+ // Préparation de la requète pour enregistrement de la mission
+ $reqAddMission = "INSERT INTO ".$this->tableMission."
+ (date, subject, note, review, clientId, proId)
+ VALUES (?, ?, ?, ?, ?, ?)";
+ // Exécution de la requète
+ $this->exec_cmd($reqAddMission,
+ array(date("Y-m-d H:i:s"), $subject,
+ $note, $review,
+ $clientId, $proId
+ )
+ );
+ // Retourne 1 pour réussite
+ return 1;
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ }
+
+ // Récupérations des missions d'un pro par son id
+ final public function get_mission_by_id($id) {
+ $reqGetAllMission = "SELECT subject, note, review, lastname FROM ".$this->tableMission."
+ LEFT JOIN ".$this->tableUserInfo."
+ ON ".$this->tableMission.".missionId = ".$this->tableUserInfo.".userId
+ WHERE proId = ?";
+ $data = $this->exec_cmd($reqGetAllMission, array($id))->fetchAll(PDO::FETCH_ASSOC);
+ return $data;
+ }
+
+ // Compte le nombre de mission d'un consultant par son nom
+ final public function count_pro_missions_by_lastname($name) {
+ $reqCountMission = "SELECT COUNT(*) FROM ".$this->tableMission."
+ INNER JOIN ".$this->tableUserInfo."
+ ON ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
+ WHERE lastname = ?";
+ $data = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
+ return $data;
+ }
+
+} \ No newline at end of file
diff --git a/Database/meth_dbsearch.php b/Database/meth_dbsearch.php
index a90925c..8a95a67 100644
--- a/Database/meth_dbsearch.php
+++ b/Database/meth_dbsearch.php
@@ -10,21 +10,15 @@
require_once(dirname( __FILE__ )."/dbmain.php");
// Extension de cette classe avec dbmain
class DbSearch extends DbMain {
- // Récupérer toutes les infos de la table userAccount
- final public function search_all() {
- $reqGetAll = "SELECT * FROM ".$this->tableUserAccount;
- $data = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
- return $data;
- }
// Récupération des infos d'un compte par son id
- final public function search_user_by_id($id) {
+ final public function get_user_account_by_id($id) {
$reqSearchUser = "SELECT userId, email, inscriptionDate, isClient, isPro, isAdmin
FROM ".$this->tableUserAccount." WHERE userId = ?";
$data = $this->exec_cmd($reqSearchUser, array($id))->fetch(PDO::FETCH_ASSOC);
return $data;
}
-
+
// Récupération des infos d'un utilisateur par son id
final public function get_user_info_by_id($id) {
$reqGetUserInfo = "SELECT lastname, firstname, job, degree,
@@ -35,9 +29,10 @@ class DbSearch extends DbMain {
return $data;
}
- // Récupération des infos d'un consultant par son nom
- final public function search_consultant_by_name($research) {
- $reqSearchConsultant = "SELECT userId, lastname, firstname, job, capability FROM ".$this->tableUserInfo."
+ // Récupération des infos d'un pro par son nom
+ final public function get_pro_info_by_lastname($research) {
+ $reqSearchConsultant = "SELECT ".$this->tableUserInfo.".userId, lastname, firstname, job, capability
+ FROM ".$this->tableUserInfo."
INNER JOIN ".$this->tableUserAccount."
ON ".$this->tableUserInfo.".userId = ".$this->tableUserAccount.".userId
WHERE isPro = '1' AND lastname LIKE CONCAT('%', ?, '%')";
@@ -46,7 +41,7 @@ class DbSearch extends DbMain {
}
// Récupération des notes d'un consultant par son nom
- final public function get_consultant_note_by_name($name) {
+ final public function get_pro_note_by_lastname($name) {
$reqCountMission = "SELECT note FROM ".$this->tableMission."
INNER JOIN ".$this->tableUserInfo."
ON ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
@@ -55,24 +50,5 @@ class DbSearch extends DbMain {
return $data;
}
- // Récupérations des missions d'un consultant par son id
- final public function get_all_mission_by_id($id) {
- $reqGetAllMission = "SELECT subject, note, review, lastname FROM ".$this->tableMission."
- LEFT JOIN ".$this->tableUserInfo."
- ON ".$this->tableMission.".missionId = ".$this->tableUserInfo.".userId
- WHERE proId = ?";
- $data = $this->exec_cmd($reqGetAllMission, array($id))->fetchAll(PDO::FETCH_ASSOC);
- return $data;
- }
-
- // Compte le nombre de mission d'un consultant par son nom
- final public function count_consultant_mission_by_name($name) {
- $reqCountMission = "SELECT COUNT(*) FROM ".$this->tableMission."
- INNER JOIN ".$this->tableUserInfo."
- ON ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId
- WHERE lastname = ?";
- $data = $this->exec_cmd($reqCountMission, array($name))->fetchAll(PDO::FETCH_ASSOC);
- return $data;
- }
}
?> \ No newline at end of file
diff --git a/Database/meth_dbuser.php b/Database/meth_dbuser.php
index cba1683..c0afb8c 100644
--- a/Database/meth_dbuser.php
+++ b/Database/meth_dbuser.php
@@ -8,8 +8,13 @@
require_once(dirname( __FILE__ )."/dbmain.php");
// Extension de cette classe avec dbmain
class DbUser extends DbMain {
+
+ // ****************************************************************************
+ // Gestion d'un utilisateur
+ // ****************************************************************************
+
// Enregistrement d'un nouvel utilisateur
- final public function add_user($email, $pass, $is_client, $is_pro, $is_admin) {
+ final public function user_register($email, $pass, $is_client, $is_pro, $is_admin) {
// On vérifie si l'email existe deja dans la bdd
$exist = $this->check_exist_email($email);
// Si non
@@ -38,28 +43,25 @@ class DbUser extends DbMain {
}
}
- // Suppresion d'un utilisateur
- final public function del_user($userId) {
- // Préparation de la requète pour voir si l'utilisateur existe
- $reqCheckExistId = "SELECT EXISTS(SELECT * FROM ".$this->tableUserAccount." WHERE userId = ?)";
- // Exécution de la requète
- $data = $this->exec_cmd($reqCheckExistId, array($userId))->fetchAll(PDO::FETCH_NUM);
- // Si il existe
- if ($data[0][0]) {
- // Préparation de la requète pour suppression
- $reqDelUser = "DELETE FROM ".$this->tableUserAccount." WHERE userId = ?";
- // Exécution de la requète
- $this->exec_cmd($reqDelUser, array($userId));
- // Retourne 1 pour réussite
- return 1;
- } else {
- // Retourne 0 pour échec
- return 0;
+ // Vérification de la combinaison email - pass pour authentification
+ final public function user_check_credential($email, $pass) {
+ // Préparation de la requète pour récupérer les infos ou l'email est présent
+ $reqCheckCredential = "SELECT userId, password
+ FROM ".$this->tableUserAccount." WHERE email = ? ";
+ // Chiffrement du mot de passe
+ $crypt = $this->crypt_pass($pass);
+ // Execution de la requète
+ $data = $this->exec_cmd($reqCheckCredential, array($email))->fetchAll(PDO::FETCH_ASSOC);
+ // Vérifiaction de correspondance email & pass
+ foreach ($data as $rows) {
+ if ($rows["password"] == $crypt) {
+ return $rows["userId"];
+ }
}
}
// Mise à jour des infos d'un utilisateur
- final public function update_user_info($lastname, $firstname, $job, $degree,
+ final public function user_infos_update($lastname, $firstname, $job, $degree,
$capability, $description, $phoneNumber,
$adress, $zipCode, $city, $userId) {
// Préparation de la requète pour mise à jour des infos
@@ -76,50 +78,13 @@ class DbUser extends DbMain {
);
}
- // Enregistrement d'une mission
- final public function register_mission($subject, $note, $review, $clientId, $proId) {
- // Vérification de l'existance de l'id de consultant
- $exist = $this->check_exist_pro($proId);
- // Si il existe
- if ($exist) {
- // Préparation de la requète pour enregistrement de la mission
- $reqAddMission = "INSERT INTO ".$this->tableMission."
- (date, subject, note, review, clientId, proId)
- VALUES (?, ?, ?, ?, ?, ?)";
- // Exécution de la requète
- $this->exec_cmd($reqAddMission,
- array(date("Y-m-d H:i:s"), $subject,
- $note, $review,
- $clientId, $proId
- )
- );
- // Retourne 1 pour réussite
- return 1;
- } else {
- // Retourne 0 pour échec
- return 0;
- }
- }
- // Vérification de la combinaison email - pass pour authentification
- final public function check_credential($email, $pass) {
- // Préparation de la requète pour récupérer les infos ou l'email est présent
- $reqCheckCredential = "SELECT userId, password
- FROM ".$this->tableUserAccount." WHERE email = ? ";
- // Chiffrement du mot de passe
- $crypt = $this->crypt_pass($pass);
- // Execution de la requète
- $data = $this->exec_cmd($reqCheckCredential, array($email))->fetchAll(PDO::FETCH_ASSOC);
- // Vérifiaction de correspondance email & pass
- foreach ($data as $rows) {
- if ($rows["password"] == $crypt) {
- return $rows["userId"];
- }
- }
- }
+ // ****************************************************************************
+ // Gestion du token-autologin
+ // ****************************************************************************
// Vérification de la combinaison email - jeton d'auto-login pour authentification
- final public function check_token_autologin($email, $token) {
+ final public function autologin_token_check($email, $token) {
// Préparation de la requète pour récupérer les infos ou l'email est présent
$reqCheckToken = "SELECT userId, tokenAutoLogin
FROM ".$this->tableUserAccount." WHERE email = ?";
@@ -134,7 +99,7 @@ class DbUser extends DbMain {
}
// Mise à jour du jeton d'auto-login
- final public function update_token_autologin($email, $token) {
+ final public function autologin_token_update($email, $token) {
// Préparation de la requète pour mise à jour du jeton d'auto-connection
$reqUpdateToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = ?
WHERE email = ?";
@@ -143,7 +108,7 @@ class DbUser extends DbMain {
}
// Supression du jeton d'auto-login
- final public function delete_token_autologin($email) {
+ final public function autologin_token_delete($email) {
// Préparation de la requète pour supression du jeton d'auto-connection
$reqDeleteToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = NULL
WHERE email = ?";
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
index 3a0658c..6d49548 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
index 5f39098..7a6e7a2 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
index 89e8df5..ea9e271 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql b/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
index d556d0a..dc0d445 100644
--- a/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
@@ -1,5 +1,5 @@
-- MySQL Script generated by MySQL Workbench
--- Wed Mar 2 13:18:27 2022
+-- Sun Mar 13 12:15:01 2022
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
@@ -39,7 +39,8 @@ DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `exophp`.`jobCategrory` (
`jobCategoryId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
- `categoryName` VARCHAR(128) NOT NULL,
+ `jobCategoryNameEn` VARCHAR(128) NOT NULL,
+ `jobCategoryNameFr` VARCHAR(128) NOT NULL,
PRIMARY KEY (`jobCategoryId`))
ENGINE = InnoDB;
diff --git a/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt b/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt
index 98eaea4..33af86c 100644
--- a/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt
+++ b/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt
@@ -1,3 +1,6 @@
+Ressources:
+https://github.com/bradtraversy/design-resources-for-developers
+https://www.photopea.com/
Tailles écrans:
https://gbksoft.com/blog/common-screen-sizes-for-responsive-web-design/
diff --git a/Statics/Css/main.css b/Statics/Css/main.css
index 65b6d89..c3fe421 100644
--- a/Statics/Css/main.css
+++ b/Statics/Css/main.css
@@ -323,7 +323,7 @@ pre {
#register,
#userInfo,
#message,
-#delete,
+#admin,
#mission,
#myMission,
#search {
@@ -348,7 +348,7 @@ pre {
#register h2,
#userInfo h2,
#message h2,
-#delete h2,
+#admin h2,
#search h2,
#mission h2,
#myMission h2 {
@@ -363,7 +363,7 @@ pre {
#userInfo form,
#register form,
#mission form,
-#delete form,
+#admin form,
#search form {
display: flex;
flex-direction: column;
@@ -374,7 +374,7 @@ pre {
}
#search form,
-#delete form {
+#admin form {
flex-direction: row;
}
@@ -382,7 +382,7 @@ pre {
#userInfo label,
#register label,
#mission label,
-#delete label,
+#admin label,
#search label {
width: 80%;
display: flex;
@@ -392,7 +392,7 @@ pre {
#userInfo i,
#register i,
#mission i,
-#delete i,
+#admin i,
#search i {
width: 90px;
height: 2em;
@@ -403,7 +403,7 @@ pre {
}
#myMission table,
-#delete table,
+#admin table,
#search table {
color: var(--text);
padding: 5%;
@@ -413,7 +413,7 @@ pre {
}
#myMission th,
-#delete th,
+#admin th,
#search th {
font-size: 15px;
border: 2px solid var(--mainSiteColor);
@@ -421,7 +421,7 @@ pre {
}
#myMission td,
-#delete td,
+#admin td,
#search td {
border: 2px solid var(--tableBorder);
@@ -459,7 +459,7 @@ pre {
#userInfo input[type="submit"],
#mission input[type="submit"],
#search input[type="submit"],
-#delete input[type="submit"],
+#admin input[type="submit"],
#register input[type="submit"] {
font-size: 17px;
font-weight: bold;
@@ -474,7 +474,7 @@ pre {
#userInfo input[type="submit"]:hover,
#mission input[type="submit"]:hover,
#search input[type="submit"]:hover,
-#delete input[type="submit"]:hover,
+#admin input[type="submit"]:hover,
#register input[type="submit"]:hover {
cursor: pointer;
color: var(--bg);
diff --git a/Views/Includes/en/message.php b/Views/Includes/en/message.php
index 4303907..6e5955f 100644
--- a/Views/Includes/en/message.php
+++ b/Views/Includes/en/message.php
@@ -9,9 +9,9 @@ $message = [
// Delete
// 0 Message réussitee
["success" => true,
- "title" => "Delete an user.",
- "info" => "User deleted !",
- "timer" => true],
+ "title" => "Delete an user.",
+ "info" => "User deleted !",
+ "timer" => true],
// 1 Message échec
["success" => false,
"title" => "Delete an user.",
@@ -54,9 +54,9 @@ $message = [
// Ajout mission
// 8 Message réussitee
["success" => true,
- "title" => "Register a mission.",
- "info" => "Mission registered !",
- "timer" => true],
+ "title" => "Register a mission.",
+ "info" => "Mission registered !",
+ "timer" => true],
// 9 Message échec
["success" => false,
"title" => "Register a mission.",
@@ -65,13 +65,35 @@ $message = [
// Ajout utilisateur
// 10 Message réussitee
["success" => true,
- "title" => "Register an user.",
- "info" => "User successfully registered !",
- "timer" => true],
+ "title" => "Register an user.",
+ "info" => "User successfully registered !",
+ "timer" => true],
// 11 Message échec
["success" => false,
"title" => "Register an user.",
"info" => "Error, user not registered.",
"timer" => true],
+ // Ajout categorie
+ // 12 Message réussitee
+ ["success" => true,
+ "title" => "Add a job category.",
+ "info" => "Category added !",
+ "timer" => true],
+ // 13 Message échec
+ ["success" => false,
+ "title" => "Add a job category.",
+ "info" => "Category not added.",
+ "timer" => true],
+ // Suppression categorie
+ // 14 Message réussitee
+ ["success" => true,
+ "title" => "Deletion of a job category.",
+ "info" => "Category deleted !",
+ "timer" => true],
+ // 15 Message échec
+ ["success" => false,
+ "title" => "Deletion of a job category.",
+ "info" => "Category not deleted !",
+ "timer" => true],
];
?> \ No newline at end of file
diff --git a/Views/Includes/en/text.php b/Views/Includes/en/text.php
index 7caf330..1111e35 100644
--- a/Views/Includes/en/text.php
+++ b/Views/Includes/en/text.php
@@ -3,10 +3,16 @@
// Description: Texte du site
// ****************************************************************************
$text = [
- "incl_form_delete" => [
- "h2" => "Delete an user",
- "id" => "ID to delete",
- "submit" => "Delete",
+ "incl_form_admin" => [
+ "h2Job" => "Manage job category",
+ "formJobAddEn" => "Name of the category in English",
+ "formJobAddFr" => "Name of the category in French",
+ "submitJobAdd" => "Add",
+ "selJobDel" => "Choose a job to delete",
+ "submitJobDel" => "Delete",
+ "h2Del" => "Delete an user",
+ "formDel" => "ID to delete",
+ "submitDel" => "Delete",
],
"incl_global_footer" => [
"main" => "Made by Debulois Quentin for my professional folder.<br>December 2021, all rights reserved.",
@@ -48,7 +54,7 @@ $text = [
"btnInfos" => "Modif. infos",
"btnMission" => "Register mission",
"btnMyMission" => "My missions",
- "btnDelete" => "Delete an user",
+ "btnAdmin" => "Administration",
"btnLogin" => "Sign-in",
"btnLogout" => "Loggout",
"btnRegister" => "Sign-up",
diff --git a/Views/Includes/en/title.php b/Views/Includes/en/title.php
index 3655a7a..d08f444 100644
--- a/Views/Includes/en/title.php
+++ b/Views/Includes/en/title.php
@@ -10,6 +10,6 @@ $title = [
"myMission" => "AlphaJob - My missions",
"register" => "AlphaJob - Register an user",
"userInfo" => "AlphaJob - My user information",
- "delete" => "AlphaJob - Delete an user"
+ "admin" => "AlphaJob - Administration of alphajob"
];
?> \ No newline at end of file
diff --git a/Views/Includes/fr/message.php b/Views/Includes/fr/message.php
index 0066cb5..408bd82 100644
--- a/Views/Includes/fr/message.php
+++ b/Views/Includes/fr/message.php
@@ -54,9 +54,9 @@ $message = [
// Ajout mission
// 8 Message réussitee
["success" => true,
- "title" => "Enregistrement d'une mission.",
- "info" => "Mission enregistrée !",
- "timer" => true],
+ "title" => "Enregistrement d'une mission.",
+ "info" => "Mission enregistrée !",
+ "timer" => true],
// 9 Message échec
["success" => false,
"title" => "Enregistrement d'une mission.",
@@ -65,13 +65,35 @@ $message = [
// Ajout utilisateur
// 10 Message réussitee
["success" => true,
- "title" => "Inscription",
- "info" => "Utilisateur inscrit !",
- "timer" => true],
+ "title" => "Inscription",
+ "info" => "Utilisateur inscrit !",
+ "timer" => true],
// 11 Message échec
["success" => false,
"title" => "Inscription.",
"info" => "Erreur, utilisateur non enregistré.",
"timer" => true],
+ // Ajout categorie
+ // 12 Message réussitee
+ ["success" => true,
+ "title" => "Ajout d'une categorie.",
+ "info" => "Categorie ajoutée !",
+ "timer" => true],
+ // 13 Message échec
+ ["success" => false,
+ "title" => "Ajout d'une categorie.",
+ "info" => "Categorie non ajoutée.",
+ "timer" => true],
+ // Suppression categorie
+ // 14 Message réussitee
+ ["success" => true,
+ "title" => "Suppression d'une categorie.",
+ "info" => "Categorie supprimée !",
+ "timer" => true],
+ // 15 Message échec
+ ["success" => false,
+ "title" => "Suppression d'une categorie.",
+ "info" => "Categorie non supprimée.",
+ "timer" => true],
];
?> \ No newline at end of file
diff --git a/Views/Includes/fr/text.php b/Views/Includes/fr/text.php
index 8d72f26..3b7b989 100644
--- a/Views/Includes/fr/text.php
+++ b/Views/Includes/fr/text.php
@@ -3,10 +3,16 @@
// Description: Texte du site
// ****************************************************************************
$text = [
- "incl_form_delete" => [
- "h2" => "Supprimer un utilisateur",
- "id" => "ID à supprimer",
- "submit" => "Supprimer",
+ "incl_form_admin" => [
+ "h2Job" => "Gestion des categories d'emploi",
+ "formJobAddEn" => "Nom de la catégorie en Englais",
+ "formJobAddFr" => "Nom de la catégorie en Français",
+ "submitJobAdd" => "Ajouter",
+ "selJobDel" => "Choisir une categorie à suppr.",
+ "submitJobDel" => "Suppr.",
+ "h2Del" => "Supprimer un utilisateur",
+ "formDel" => "ID à supprimer",
+ "submitDel" => "Supprimer",
],
"incl_global_footer" => [
"main" => "Réalisé par Debulois Quentin pour mon dossier professionel.<br>Decembre 2021, tous droits réservés.",
@@ -48,7 +54,7 @@ $text = [
"btnInfos" => "Modif. infos",
"btnMission" => "Enreg. mission",
"btnMyMission" => "Mes missions",
- "btnDelete" => "Suppr. utilisateur",
+ "btnAdmin" => "Administration",
"btnLogin" => "Connection",
"btnLogout" => "Déconnection",
"btnRegister" => "Inscription",
diff --git a/Views/Includes/fr/title.php b/Views/Includes/fr/title.php
index f0537b2..25b6dd0 100644
--- a/Views/Includes/fr/title.php
+++ b/Views/Includes/fr/title.php
@@ -10,6 +10,6 @@ $title = [
"myMission" => "AlphaJob - Mes missions",
"register" => "AlphaJob - Inscription",
"userInfo" => "AlphaJob - Mes informations",
- "delete" => "AlphaJob - Supprimer un utilisateur"
+ "admin" => "AlphaJob - Administration d'alphajob"
];
?> \ No newline at end of file
diff --git a/Views/Includes/incl_form_delete.php b/Views/Includes/incl_form_admin.php
index 99ce216..ef34daa 100644
--- a/Views/Includes/incl_form_delete.php
+++ b/Views/Includes/incl_form_admin.php
@@ -8,24 +8,54 @@ require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/text.php");
// Import des en-tête des tables.
require_once(dirname( __FILE__ )."/".$_SESSION["lang"]."/table.php");
// Import des metodes de la base de donnée pour les recherches.
-require_once(dirname( __FILE__ )."/../../Database/meth_dbsearch.php");
+require_once(dirname( __FILE__ )."/../../Database/meth_dbadmin.php");
+
// Instanciation de la bdd avec les méthodes de recherche.
-$dbsearch = new DbSearch;
-// Form pour la suppression et envoie au wrappeur.
+$dbadmin = new DbAdmin;
+// Form pour ajout d'une catégorie d'emploi
echo(' <!-- Separateur -->
<div class="separator"></div>
- <!-- Form pour choix de la suppression -->
- <div id="delete">
- <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+ <!-- Form pour ajout d une catégorie d emploi -->
+ <div id="admin">
+ <h2>'.$text[basename(__FILE__, ".php")]["h2Job"].'</h2>
+ <form class="flex-center" action="../../Wrapper/wrapper.php" method="post">
+ <label class="width-auto">
+ <i class="fas fa-briefcase"></i>
+ <input type="text" name="addCategoryNameEn" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["formJobAddEn"].'" required>
+ <i class="fas fa-briefcase" style="margin-left: 5%;"></i>
+ <input type="text" name="addCategoryNameFr" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["formJobAddFr"].'" required>
+ </label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submitJobAdd"].'">
+ </form>
+ <!-- Form pour suppression d une catégorie d emploi -->
+ <form class="flex-center" action="/../Wrapper/wrapper.php" method="post">
+ <label>
+ <select name="delCategoryId" required>
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["selJobDel"].'</option>'.PHP_EOL);
+
+$result = $dbadmin->get_all_job_category();
+for ($i = 0; $i < count($result); $i++){
+ echo(' <option value="'.$result[$i]["jobCategoryId"].'">'.$result[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</option>'.PHP_EOL);
+}
+
+echo(' </select>
+ </label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submitJobDel"].'">
+ </form>'.PHP_EOL);
+
+// Form pour la suppression et envoie au wrappeur.
+echo(' <!-- Form pour choix de la suppression -->
+ <h2>'.$text[basename(__FILE__, ".php")]["h2Del"].'</h2>
<form class="flex-center" action="../../Wrapper/wrapper.php" method="post">
<label class="width-auto">
<i class="fas fa-trash-alt"></i>
- <input type="text" name="userId" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["id"].'">
+ <input type="text" name="userId" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["formDel"].'" required>
</label>
- <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submitDel"].'">
</form>'.PHP_EOL);
+
// Récupération de tous les utilisateurs.
-$result = $dbsearch->search_all();
+$result = $dbadmin->get_all_users_account();
// Affichage de la table.
echo(" <!-- Tableau des utilisateurs-->
<table>
diff --git a/Views/Includes/incl_form_userInfo.php b/Views/Includes/incl_form_userInfo.php
index 4cc509c..760838d 100644
--- a/Views/Includes/incl_form_userInfo.php
+++ b/Views/Includes/incl_form_userInfo.php
@@ -56,19 +56,19 @@ echo(' <!-- Separateur -->
</label>
<label>
<i class="fas fa-mobile-alt"></i>
- <input type="text" name="phoneNumber" id="phoneNumber" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["phoneNumber"].'" value="'.$info[0]["phoneNumber"].'">
+ <input type="text" name="phoneNumber" id="phoneNumber" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["phoneNumber"].'" value="'.$info[0]["phoneNumber"].'" required>
</label>
<label>
<i class="fas fa-home"></i>
- <input type="text" name="adress" id="adress" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["adress"].'" value="'.$info[0]["adress"].'">
+ <input type="text" name="adress" id="adress" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["adress"].'" value="'.$info[0]["adress"].'" required>
</label>
<label>
<i class="fas fa-map-marker-alt"></i>
- <input type="text" name="zipCode" id="zipCode" maxlength="6" placeholder="'.$text[basename(__FILE__, ".php")]["zipCode"].'" value="'.$info[0]["zipCode"].'">
+ <input type="text" name="zipCode" id="zipCode" maxlength="6" placeholder="'.$text[basename(__FILE__, ".php")]["zipCode"].'" value="'.$info[0]["zipCode"].'" required>
</label>
<label>
<i class="fas fa-city"></i>
- <input type="text" name="city" id="city" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["city"].'" value="'.$info[0]["city"].'">
+ <input type="text" name="city" id="city" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["city"].'" value="'.$info[0]["city"].'" required>
</label>
<input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
</form>
diff --git a/Views/Includes/incl_global_navbar.php b/Views/Includes/incl_global_navbar.php
index 86241e9..1572fa6 100644
--- a/Views/Includes/incl_global_navbar.php
+++ b/Views/Includes/incl_global_navbar.php
@@ -30,7 +30,7 @@ if (isset($_SESSION["loggedIn"])
if (isset($_SESSION["isAdmin"])
&& $_SESSION["isAdmin"] == "1"
) {
- echo(' <a href="/Views/delete.php"><li><i class="fas fa-trash-alt"></i> '.$text[basename(__FILE__, ".php")]["btnDelete"].'</li></a>'.PHP_EOL);
+ echo(' <a href="/Views/admin.php"><li><i class="fas fa-cog"></i> '.$text[basename(__FILE__, ".php")]["btnAdmin"].'</li></a>'.PHP_EOL);
}
echo(' <a href="/Views/userInfo.php"><li><i class="fas fa-user"></i> '.$text[basename(__FILE__, ".php")]["btnInfos"].'</li></a>
<a href="/Views/logout.php"><li><i class="fas fa-sign-out-alt"></i> '.$text[basename(__FILE__, ".php")]["btnLogout"].'</li></a>'.PHP_EOL);
diff --git a/Views/Includes/incl_index_search.php b/Views/Includes/incl_index_search.php
index df6372a..a0e0be4 100644
--- a/Views/Includes/incl_index_search.php
+++ b/Views/Includes/incl_index_search.php
@@ -67,7 +67,7 @@ if (isset($_SESSION["search"])) {
if ($_SESSION["search"]["isResearch"]) {
echo('<td class="noBorder" >
<form action="/Wrapper/wrapper.php" method="post">
- <input type="hidden" name="searchInfo" value="'.$rows["id"].'">
+ <input type="hidden" name="searchInfo" value="'.$rows["userId"].'">
<input type="submit" value="'.$text[basename(__FILE__, ".php")]["moreInfo"].'">
</form>
</td>');
diff --git a/Views/Includes/incl_table_myMission.php b/Views/Includes/incl_table_myMission.php
index b7e4ba9..35e69d4 100644
--- a/Views/Includes/incl_table_myMission.php
+++ b/Views/Includes/incl_table_myMission.php
@@ -9,9 +9,9 @@ require_once(dirname(__FILE__)."/".$_SESSION["lang"]."/table.php");
// Import des metodes de la base de donnée pour les recherches.
require_once(dirname(__FILE__)."/../../Database/meth_dbsearch.php");
// Instanciation de la bdd avec les méthodes de recherche.
-$dbsearch = new DbSearch;
+$dbmission = new DbMission;
// Recherches des missions avec l'id de l'utilisateur actuellement connecté.
-$result = $dbsearch->get_all_mission_by_id($_SESSION["userId"]);
+$result = $dbmission->get_mission_by_id($_SESSION["userId"]);
echo(' <!-- Separateur -->
<div class="separator"></div>
<!-- Mes missions -->
diff --git a/Views/delete.php b/Views/admin.php
index c11c768..6af1c7c 100644
--- a/Views/delete.php
+++ b/Views/admin.php
@@ -1,6 +1,6 @@
<?php
// ****************************************************************************
-// Description: Page pour supprimer un utilisateur
+// Description: Page pour administrer le site web
// ****************************************************************************
// Démarrage de la session.
session_start();
@@ -28,7 +28,7 @@ if (!isset($_SESSION["loggedIn"], $_SESSION["isAdmin"])
</head>
<body>
<?php require_once(dirname( __FILE__ )."/Includes/incl_global_navbar.php"); ?>
-<?php require_once(dirname( __FILE__ )."/Includes/incl_form_delete.php"); ?>
+<?php require_once(dirname( __FILE__ )."/Includes/incl_form_admin.php"); ?>
<?php require_once(dirname( __FILE__ )."/Includes/incl_global_footer.php"); ?>
<script src="/Statics/Js/main.js"></script>
</body>
diff --git a/Wrapper/Functions/func_admin.php b/Wrapper/Functions/func_admin.php
new file mode 100644
index 0000000..05ad337
--- /dev/null
+++ b/Wrapper/Functions/func_admin.php
@@ -0,0 +1,53 @@
+<?php
+// ****************************************************************************
+// Description: Fonctions d'administration du site
+// ****************************************************************************
+function delete ($userId) {
+ $dbadmin = new DbAdmin;
+ $deleted = $dbadmin->user_del($userId);
+ // Sélection du message à affiché en fonction de réussite ou pas.
+ if ($deleted) {
+ $messageNumber = 0;
+ } else {
+ $messageNumber = 1;
+ }
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["messageNumber"] = $messageNumber;
+ header("Location: /Views/message.php");
+ die();
+}
+
+function job_category_add($jobCategoryNameEn, $jobCategoryNameFr) {
+ $dbadmin = new DbAdmin;
+ // https://www.w3schools.com/php/func_string_strtolower.asp
+ $added = $dbadmin->job_category_register(
+ ucwords(strtolower($jobCategoryNameEn)),
+ ucwords(strtolower($jobCategoryNameFr))
+ );
+ // Sélection du message à affiché en fonction de réussite ou pas.
+ if ($added) {
+ $messageNumber = 12;
+ } else {
+ $messageNumber = 13;
+ }
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["messageNumber"] = $messageNumber;
+ header("Location: /Views/message.php");
+ die();
+}
+
+function job_category_del($jobCategoryId) {
+ $dbadmin = new DbAdmin;
+ $deleted = $dbadmin->job_category_del($jobCategoryId);
+ // Sélection du message à affiché en fonction de réussite ou pas.
+ if ($deleted) {
+ $messageNumber = 14;
+ } else {
+ $messageNumber = 15;
+ }
+ // Redirection vers message avec l'index du message à afficher.
+ $_SESSION["messageNumber"] = $messageNumber;
+ header("Location: /Views/message.php");
+ die();
+}
+?> \ No newline at end of file
diff --git a/Wrapper/Functions/func_delete.php b/Wrapper/Functions/func_delete.php
deleted file mode 100644
index b118e56..0000000
--- a/Wrapper/Functions/func_delete.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-// ****************************************************************************
-// Description: Fonction de suppréssion d'un utilisateur par son ID
-// ****************************************************************************
-function delete ($userId) {
- $dbuser = new DbUser;
- $deleted = $dbuser->del_user($userId);
- // Sélection du message à affiché en fonction de réussite ou pas.
- if ($deleted) {
- $messageNumber = 0;
- } else {
- $messageNumber = 1;
- }
- // Redirection vers message avec l'index du message à afficher.
- $_SESSION["messageNumber"] = $messageNumber;
- header("Location: /Views/message.php");
- die();
-}
-?> \ No newline at end of file
diff --git a/Wrapper/Functions/func_info.php b/Wrapper/Functions/func_info.php
index d883d86..97c12c5 100644
--- a/Wrapper/Functions/func_info.php
+++ b/Wrapper/Functions/func_info.php
@@ -6,7 +6,7 @@ function modify_user_info($lastname, $firstname, $job, $degree,
$capabilty, $description, $phoneNumber,
$adress, $zipCode, $city, $userId) {
$dbuser = new DbUser;
- $dbuser->update_user_info($lastname, $firstname, $job, $degree,
+ $dbuser->user_infos_update($lastname, $firstname, $job, $degree,
$capabilty, $description, $phoneNumber,
$adress, $zipCode, $city, $userId);
// Redirection vers message avec l'index du message à afficher.
diff --git a/Wrapper/Functions/func_login.php b/Wrapper/Functions/func_login.php
index 3966301..39cf931 100644
--- a/Wrapper/Functions/func_login.php
+++ b/Wrapper/Functions/func_login.php
@@ -10,13 +10,13 @@ function login($cookie, $email = null, $pass = null, $remember = false) {
$dbuser = new DbUser;
// On vérifie si la connection se fait via le formulaire de connection ou par cookie
if (!$cookie) {
- $userId = $dbuser->check_credential($email, $pass);
+ $userId = $dbuser->user_check_credential($email, $pass);
// ou par cookie.
} else {
// On essaie une fois.
- $userId = $dbuser->check_token_autologin($cookie[0], $cookie[1]);
+ $userId = $dbuser->autologin_token_check($cookie[0], $cookie[1]);
// Et on le supprime.
- $dbuser->delete_token_autologin($cookie[0]);
+ $dbuser->autologin_token_delete($cookie[0]);
}
// Si on a un résultat valide.
if ($userId) {
@@ -24,7 +24,7 @@ function login($cookie, $email = null, $pass = null, $remember = false) {
// LoggedIn devien "true".
$_SESSION["loggedIn"] = "1";
// et on remplie les variables de la session avec les infos de l'utilisateur.
- $userInfo = $dbsearch->search_user_by_id($userId);
+ $userInfo = $dbsearch->get_user_account_by_id($userId);
foreach ($userInfo as $key => $value) {
$_SESSION[$key] = $value;
}
@@ -35,7 +35,7 @@ function login($cookie, $email = null, $pass = null, $remember = false) {
// On génère une chaine de caractère aléatoire en supprimant les caractères spéciaux de base64.
$token = str_replace(["+", "/", "="], "", base64_encode(random_bytes(32)));
// On update le nouveau token.
- $dbuser->update_token_autologin($_SESSION["email"], $token);
+ $dbuser->autologin_token_update($_SESSION["email"], $token);
// Enfin on place l'ensemble sur le navigateur du client codé en base64.
setcookie($name,
base64_encode(json_encode(array($_SESSION["email"], $token))),
diff --git a/Wrapper/Functions/func_logout.php b/Wrapper/Functions/func_logout.php
index 20de5a3..1a40235 100644
--- a/Wrapper/Functions/func_logout.php
+++ b/Wrapper/Functions/func_logout.php
@@ -9,7 +9,7 @@ function logout() {
// On instancie les méthodes de gestion de la BDD.
$dbuser = new DbUser;
// On supprime le token d'auto-connection dans la BDD.
- $dbuser->delete_token_autologin($_SESSION["email"]);
+ $dbuser->autologin_token_delete($_SESSION["email"]);
// Et le cookie
if (isset($_COOKIE["autoLogin"])) {
unset($_COOKIE["autoLogin"]);
diff --git a/Wrapper/Functions/func_mission.php b/Wrapper/Functions/func_mission.php
index 8875685..07879be 100644
--- a/Wrapper/Functions/func_mission.php
+++ b/Wrapper/Functions/func_mission.php
@@ -3,8 +3,8 @@
// Description: Fonction d'enregistrement d'une mission
// ****************************************************************************
function register_mission($subject, $note, $review, $clientId, $proId) {
- $dbuser = new DbUser;
- $registered = $dbuser->register_mission($subject,
+ $dbmission = new DbMission;
+ $registered = $dbmission->register_mission($subject,
$note,
$review,
$clientId,
diff --git a/Wrapper/Functions/func_register.php b/Wrapper/Functions/func_register.php
index 6a081a9..8482752 100644
--- a/Wrapper/Functions/func_register.php
+++ b/Wrapper/Functions/func_register.php
@@ -4,7 +4,7 @@
// ****************************************************************************
function register($email, $password, $is_client, $is_pro, $is_admin) {
$dbuser = new DbUser;
- $registered = $dbuser->add_user($email,
+ $registered = $dbuser->user_register($email,
$password,
$is_client,
$is_pro,
diff --git a/Wrapper/Functions/func_search.php b/Wrapper/Functions/func_search.php
index 3c85eab..d6cbfb2 100644
--- a/Wrapper/Functions/func_search.php
+++ b/Wrapper/Functions/func_search.php
@@ -5,24 +5,24 @@
function search($request, $isResearch) {
// Instanciation des méthodes de recherches de la BDD.
$dbsearch = new DbSearch;
+ $dbmission = new DbMission;
// Si c'est une recherche.
if ($isResearch) {
- $result = $dbsearch->search_consultant_by_name($request);
+ $result = $dbsearch->get_pro_info_by_lastname($request);
// Pour chaque utilisateur avec un nom qui "match".
foreach ($result as $key => $value) {
// récupération du nombre de mission effectué.
- $numberMission = $dbsearch->count_consultant_mission_by_name($value["lastname"]);
+ $numberMission = $dbmission->count_pro_missions_by_lastname($value["lastname"]);
$result[$key]["numberOfMissions"] = $numberMission[0]["COUNT(*)"];
// récupération des notes de l'utilisateur.
- $allNotes = $dbsearch->get_consultant_note_by_name($value["lastname"]);
+ $allNotes = $dbsearch->get_pro_note_by_lastname($value["lastname"]);
// Pour chaque note on la "push" (ajoute) dans une liste.
$notes = array();
foreach ($allNotes as $value) {
array_push($notes, $value["note"]);
}
// On fait la moyenne des notes,
- // et pour les étoiles on "coupe" tout ce qui est après la virgule.
- // J'ai préféré ce système à un "round()"
+ // et pour les étoiles on "coupe" tout ce qui est après la virgule en castant en "int".
if ($notes) {
$average = array_sum($notes) / count($notes);
$result[$key]["note"] = round($average, 2);
diff --git a/Wrapper/wrapper.php b/Wrapper/wrapper.php
index 4a39429..62077c2 100644
--- a/Wrapper/wrapper.php
+++ b/Wrapper/wrapper.php
@@ -9,12 +9,14 @@
// Import de toutes les fonctions et des méthodes pour gérer la BDD.
require_once(dirname( __FILE__ )."/../Database/meth_dbuser.php");
+require_once(dirname( __FILE__ )."/../Database/meth_dbadmin.php");
require_once(dirname( __FILE__ )."/../Database/meth_dbsearch.php");
+require_once(dirname( __FILE__ )."/../Database/meth_dbmission.php");
require_once(dirname( __FILE__ )."/Functions/func_info.php");
+require_once(dirname( __FILE__ )."/Functions/func_admin.php");
require_once(dirname( __FILE__ )."/Functions/func_login.php");
require_once(dirname( __FILE__ )."/Functions/func_logout.php");
require_once(dirname( __FILE__ )."/Functions/func_search.php");
-require_once(dirname( __FILE__ )."/Functions/func_delete.php");
require_once(dirname( __FILE__ )."/Functions/func_mission.php");
require_once(dirname( __FILE__ )."/Functions/func_register.php");
require_once(dirname( __FILE__ )."/Functions/func_language.php");
@@ -109,17 +111,37 @@ if (isset($_SESSION["src"])) {
$_POST["city"], $_SESSION["userId"]
);
- // Condition pour une suppression d'un utilisateur
- } elseif ($_SESSION["src"] == "delete"
- && isset($_SESSION["loggedIn"],
- $_SESSION["isAdmin"],
- $_POST["userId"]
- )
- && $_SESSION["loggedIn"] == true
- && $_SESSION["isAdmin"] == true
- && $_POST["userId"] !== ""
+ // Condition pour l'administration du site
+ } elseif ($_SESSION["src"] == "admin"
+ && isset($_SESSION["loggedIn"],
+ $_SESSION["isAdmin"],
+ )
+ && $_SESSION["loggedIn"] == true
+ && $_SESSION["isAdmin"] == true
+ && (isset($_POST["userId"])
+ || isset($_POST["addCategoryNameEn"],
+ $_POST["addCategoryNameFr"]
+ )
+ || isset($_POST["delCategoryId"])
+ )
) {
- delete($_POST["userId"]);
+ if (isset($_POST["userId"])
+ && $_POST["userId"] !== ""
+ ) {
+ delete($_POST["userId"]);
+ // Ajout d'un catégorie d'emploi
+ } elseif (isset($_POST["addCategoryNameEn"])
+ && isset($_POST["addCategoryNameFr"])
+ && $_POST["addCategoryNameEn"] !== ""
+ && $_POST["addCategoryNameFr"] !== ""
+ ) {
+ job_category_add($_POST["addCategoryNameEn"], $_POST["addCategoryNameFr"]);
+ // Suppression d'une categorie d'emploi
+ }elseif (isset($_POST["delCategoryId"])
+ && $_POST["delCategoryId"] !== ""
+ ) {
+ job_category_del($_POST["delCategoryId"]);
+ }
// Condition pour un enregistrement d'une mission
} elseif ($_SESSION["src"] == "mission"
diff --git a/todo.txt b/todo.txt
new file mode 100644
index 0000000..63936ec
--- /dev/null
+++ b/todo.txt
@@ -0,0 +1,16 @@
+
+#################################################
+
+- Global
+ - Système de notification ? (5)
+
+- Revoir front Client & Pro
+ - Requète de mission pour un pro sur le moteur de recherche. (3)
+ - Page mes missions, passés, en cours, terminées. (3)
+ - Revoir mes infos pour adapter aux clients & pros. (2)
+
+- Revoir front Admin
+ - Doit pouvoir supprimer une mission (4)
+ - Doit pouvoir gérer les catégories de travail (DONE)
+
+#################################################