From b637d625216e50602d0bde8a544c281ca00af5fa Mon Sep 17 00:00:00 2001 From: Debulois Date: Thu, 31 Mar 2022 14:56:45 +0200 Subject: Grosse maj encore avec ajout de fonctionnalités dans l'admin principalement et grosse remise en page / rennomage et preparation pour retravailler le CSS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Anciennes_versions_de_l_exercice.zip | Bin 1217591 -> 0 bytes Core/Functions/func_admin.php | 81 ++++++ Core/Functions/func_info.php | 41 +++ Core/Functions/func_language.php | 22 ++ Core/Functions/func_login.php | 78 ++++++ Core/Functions/func_logout.php | 40 +++ Core/Functions/func_mission.php | 54 ++++ Core/Functions/func_myMission.php | 58 ++++ Core/Functions/func_register.php | 30 ++ Core/Functions/func_sanitize.php | 17 ++ Core/Functions/func_search.php | 81 ++++++ Core/wrapper.php | 310 +++++++++++++++++++++ Database/dbmain.php | 30 +- Database/meth_dbadmin.php | 72 ++++- Database/meth_dbmission.php | 268 ++++++++++-------- Database/meth_dbsearch.php | 62 ++++- Database/meth_dbuser.php | 35 ++- .../Anciennes_versions_avant_git.zip | Bin 0 -> 1217591 bytes .../Structure_plan_de_site/html5_balises.jpg | Bin 0 -> 71847 bytes .../structure_projet web.jpg | Bin 163893 -> 0 bytes .../structure_projet_web.jpg | Bin 0 -> 271075 bytes Documents_et_infos/todo.txt | 16 ++ Statics/Css/main.css | 246 ++++++++++------ Statics/Js/index.js | 4 +- Statics/Js/main.js | 15 +- Statics/Js/myMission.js | 11 - Templates/Includes/en/message.php | 222 +++++++++++++++ Templates/Includes/en/table.php | 86 ++++++ Templates/Includes/en/text.php | 100 +++++++ Templates/Includes/en/title.php | 20 ++ Templates/Includes/fr/message.php | 222 +++++++++++++++ Templates/Includes/fr/table.php | 86 ++++++ Templates/Includes/fr/text.php | 100 +++++++ Templates/Includes/fr/title.php | 20 ++ Templates/Includes/incl_form_admin.php | 198 +++++++++++++ Templates/Includes/incl_form_login.php | 41 +++ Templates/Includes/incl_form_mission.php | 95 +++++++ Templates/Includes/incl_form_register.php | 42 +++ Templates/Includes/incl_form_userInfo.php | 137 +++++++++ Templates/Includes/incl_global_footer.php | 26 ++ Templates/Includes/incl_global_header.php | 22 ++ Templates/Includes/incl_global_message.php | 71 +++++ Templates/Includes/incl_global_navbar.php | 72 +++++ Templates/Includes/incl_index_search.php | 184 ++++++++++++ Templates/Includes/incl_index_slideshow.php | 34 +++ Templates/Includes/incl_table_myMission.php | 183 ++++++++++++ Templates/admin.php | 45 +++ Templates/autoLogin.php | 26 ++ Templates/login.php | 36 +++ Templates/logout.php | 24 ++ Templates/message.php | 41 +++ Templates/mission.php | 47 ++++ Templates/myMission.php | 48 ++++ Templates/register.php | 36 +++ Templates/userInfo.php | 45 +++ Views/Includes/en/message.php | 200 ------------- Views/Includes/en/table.php | 67 ----- Views/Includes/en/text.php | 93 ------- Views/Includes/en/title.php | 15 - Views/Includes/fr/message.php | 200 ------------- Views/Includes/fr/table.php | 67 ----- Views/Includes/fr/text.php | 93 ------- Views/Includes/fr/title.php | 15 - Views/Includes/incl_form_admin.php | 102 ------- Views/Includes/incl_form_login.php | 26 -- Views/Includes/incl_form_mission.php | 65 ----- Views/Includes/incl_form_register.php | 28 -- Views/Includes/incl_form_userInfo.php | 99 ------- Views/Includes/incl_global_footer.php | 13 - Views/Includes/incl_global_header.php | 15 - Views/Includes/incl_global_message.php | 33 --- Views/Includes/incl_global_navbar.php | 62 ----- Views/Includes/incl_index_search.php | 118 -------- Views/Includes/incl_index_slideshow.php | 21 -- Views/Includes/incl_table_myMission.php | 158 ----------- Views/admin.php | 35 --- Views/autoLogin.php | 18 -- Views/login.php | 26 -- Views/logout.php | 17 -- Views/message.php | 30 -- Views/mission.php | 36 --- Views/myMission.php | 38 --- Views/register.php | 26 -- Views/userInfo.php | 32 --- Wrapper/Functions/func_admin.php | 53 ---- Wrapper/Functions/func_info.php | 32 --- Wrapper/Functions/func_language.php | 16 -- Wrapper/Functions/func_login.php | 68 ----- Wrapper/Functions/func_logout.php | 30 -- Wrapper/Functions/func_mission.php | 44 --- Wrapper/Functions/func_myMission.php | 47 ---- Wrapper/Functions/func_register.php | 22 -- Wrapper/Functions/func_sanitize.php | 12 - Wrapper/Functions/func_search.php | 62 ----- Wrapper/wrapper.php | 306 -------------------- index.php | 52 ++-- todo.txt | 16 -- 97 files changed, 3633 insertions(+), 2755 deletions(-) delete mode 100644 Anciennes_versions_de_l_exercice.zip create mode 100644 Core/Functions/func_admin.php create mode 100644 Core/Functions/func_info.php create mode 100644 Core/Functions/func_language.php create mode 100644 Core/Functions/func_login.php create mode 100644 Core/Functions/func_logout.php create mode 100644 Core/Functions/func_mission.php create mode 100644 Core/Functions/func_myMission.php create mode 100644 Core/Functions/func_register.php create mode 100644 Core/Functions/func_sanitize.php create mode 100644 Core/Functions/func_search.php create mode 100644 Core/wrapper.php create mode 100644 Documents_et_infos/Anciennes_versions_avant_git.zip create mode 100644 Documents_et_infos/Structure_plan_de_site/html5_balises.jpg delete mode 100644 Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg create mode 100644 Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg create mode 100644 Documents_et_infos/todo.txt delete mode 100644 Statics/Js/myMission.js create mode 100644 Templates/Includes/en/message.php create mode 100644 Templates/Includes/en/table.php create mode 100644 Templates/Includes/en/text.php create mode 100644 Templates/Includes/en/title.php create mode 100644 Templates/Includes/fr/message.php create mode 100644 Templates/Includes/fr/table.php create mode 100644 Templates/Includes/fr/text.php create mode 100644 Templates/Includes/fr/title.php create mode 100644 Templates/Includes/incl_form_admin.php create mode 100644 Templates/Includes/incl_form_login.php create mode 100644 Templates/Includes/incl_form_mission.php create mode 100644 Templates/Includes/incl_form_register.php create mode 100644 Templates/Includes/incl_form_userInfo.php create mode 100644 Templates/Includes/incl_global_footer.php create mode 100644 Templates/Includes/incl_global_header.php create mode 100644 Templates/Includes/incl_global_message.php create mode 100644 Templates/Includes/incl_global_navbar.php create mode 100644 Templates/Includes/incl_index_search.php create mode 100644 Templates/Includes/incl_index_slideshow.php create mode 100644 Templates/Includes/incl_table_myMission.php create mode 100644 Templates/admin.php create mode 100644 Templates/autoLogin.php create mode 100644 Templates/login.php create mode 100644 Templates/logout.php create mode 100644 Templates/message.php create mode 100644 Templates/mission.php create mode 100644 Templates/myMission.php create mode 100644 Templates/register.php create mode 100644 Templates/userInfo.php delete mode 100644 Views/Includes/en/message.php delete mode 100644 Views/Includes/en/table.php delete mode 100644 Views/Includes/en/text.php delete mode 100644 Views/Includes/en/title.php delete mode 100644 Views/Includes/fr/message.php delete mode 100644 Views/Includes/fr/table.php delete mode 100644 Views/Includes/fr/text.php delete mode 100644 Views/Includes/fr/title.php delete mode 100644 Views/Includes/incl_form_admin.php delete mode 100644 Views/Includes/incl_form_login.php delete mode 100644 Views/Includes/incl_form_mission.php delete mode 100644 Views/Includes/incl_form_register.php delete mode 100644 Views/Includes/incl_form_userInfo.php delete mode 100644 Views/Includes/incl_global_footer.php delete mode 100644 Views/Includes/incl_global_header.php delete mode 100644 Views/Includes/incl_global_message.php delete mode 100644 Views/Includes/incl_global_navbar.php delete mode 100644 Views/Includes/incl_index_search.php delete mode 100644 Views/Includes/incl_index_slideshow.php delete mode 100644 Views/Includes/incl_table_myMission.php delete mode 100644 Views/admin.php delete mode 100644 Views/autoLogin.php delete mode 100644 Views/login.php delete mode 100644 Views/logout.php delete mode 100644 Views/message.php delete mode 100644 Views/mission.php delete mode 100644 Views/myMission.php delete mode 100644 Views/register.php delete mode 100644 Views/userInfo.php delete mode 100644 Wrapper/Functions/func_admin.php delete mode 100644 Wrapper/Functions/func_info.php delete mode 100644 Wrapper/Functions/func_language.php delete mode 100644 Wrapper/Functions/func_login.php delete mode 100644 Wrapper/Functions/func_logout.php delete mode 100644 Wrapper/Functions/func_mission.php delete mode 100644 Wrapper/Functions/func_myMission.php delete mode 100644 Wrapper/Functions/func_register.php delete mode 100644 Wrapper/Functions/func_sanitize.php delete mode 100644 Wrapper/Functions/func_search.php delete mode 100644 Wrapper/wrapper.php delete mode 100644 todo.txt diff --git a/Anciennes_versions_de_l_exercice.zip b/Anciennes_versions_de_l_exercice.zip deleted file mode 100644 index 4f69087..0000000 Binary files a/Anciennes_versions_de_l_exercice.zip and /dev/null differ diff --git a/Core/Functions/func_admin.php b/Core/Functions/func_admin.php new file mode 100644 index 0000000..16cf7c0 --- /dev/null +++ b/Core/Functions/func_admin.php @@ -0,0 +1,81 @@ +del_user_by_userid($userId); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($deleted) { + $message = ["adminDelUser", "success"]; + } else { + $message = ["adminDelUser", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function admin_job_add($jobNameEn, $jobNameFr) { + $dbadmin = new DbAdmin; + // https://www.w3schools.com/php/func_string_strtolower.asp + $added = $dbadmin->register_job_category( + ucwords(strtolower($jobNameEn)), + ucwords(strtolower($jobNameFr)) + ); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($added) { + $message = ["adminAddJob", "success"]; + } else { + $message = ["adminAddJob", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function admin_job_del($jobId) { + $dbadmin = new DbAdmin; + $deleted = $dbadmin->del_job_category_by_jobid($jobId); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($deleted) { + $message = ["adminDelJob", "success"]; + } else { + $message = ["adminDelJob", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function admin_mission_del($missionId) { + $dbadmin = new DbAdmin; + $deleted = $dbadmin->del_mission_by_missionid($missionId); + + // Sélection du message à affiché en fonction de réussite ou pas. + if ($deleted) { + $message = ["adminDelMission", "success"]; + } else { + $message = ["adminDelMission", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/Functions/func_info.php b/Core/Functions/func_info.php new file mode 100644 index 0000000..8464fe1 --- /dev/null +++ b/Core/Functions/func_info.php @@ -0,0 +1,41 @@ +get_pro_job_by_proid($userId); + $userJobsId = []; + for ($i = 0; $i < count($userJobs); $i++) { + array_push($userJobsId, $userJobs[$i]["jobCategoryId"]); + } + $dbuser->update_user_infos($userInfos, $userId, $isPro, $userJobsId); + } else { + $dbuser->update_user_infos($userInfos, $userId, $isPro); + } + + // Redirection vers message avec l'index du message à afficher. + $message = ["infosUpdate", "success"]; + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/Functions/func_language.php b/Core/Functions/func_language.php new file mode 100644 index 0000000..a1c1498 --- /dev/null +++ b/Core/Functions/func_language.php @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/Core/Functions/func_login.php b/Core/Functions/func_login.php new file mode 100644 index 0000000..6456ba1 --- /dev/null +++ b/Core/Functions/func_login.php @@ -0,0 +1,78 @@ +check_user_credential($email, $pass); + // ou par cookie. + } else { + // On essaie une fois. + $userId = $dbuser->check_token_autologin($cookie[0], $cookie[1]); + // Et on le supprime. + $dbuser->del_token_autologin($cookie[0]); + } + + // Si on a un résultat valide. + if ($userId) { + $dbsearch = new DbSearch; + // LoggedIn devien "true". + $_SESSION["loggedIn"] = "1"; + // et on remplie les variables de la session avec les infos de l'utilisateur. + $userInfo = $dbsearch->get_user_account_by_userid($userId); + foreach ($userInfo as $key => $value) { + $_SESSION[$key] = $value; + } + + // Si était coché remember me ou que la connection s'est faite via cookie, + // on en génère un nouveau. + if ($remember || $cookie) { + $name = "autoLogin"; + // 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); + // Enfin on place l'ensemble sur le navigateur du client codé en base64. + setcookie($name, + base64_encode(json_encode(array($_SESSION["email"], $token))), + time() + (86400 * 7), + "/" + ); + } + + // On sélectionne le bon message en fonction du type de connection. + if (!$cookie) { + $message = ["login", "success"]; + } else { + $message = ["loginCookie", "success"]; + } + } else { + // Si la connection a échoué. + if (!$cookie) { + $message = ["login", "fail"]; + // Si la connection à échoué par cookie. + } else { + // Suppression du cookie. + unset($_COOKIE["autoLogin"]); + setcookie("autoLogin", "", time() - 3600, "/"); + $message = ["loginCookie", "fail"]; + } + } + + // On redirige vers message. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/Functions/func_logout.php b/Core/Functions/func_logout.php new file mode 100644 index 0000000..dd6a411 --- /dev/null +++ b/Core/Functions/func_logout.php @@ -0,0 +1,40 @@ +del_token_autologin($_SESSION["email"]); + // Et le cookie + if (isset($_COOKIE["autoLogin"])) { + unset($_COOKIE["autoLogin"]); + setcookie("autoLogin", "", time() - 3600, "/"); + } + + // Et on en redémarre une nouvelle. + session_start(); + $_SESSION["loggedIn"] = "0"; + $_SESSION["lang"] = $lang; + + // Enfin on redirige avec le bon message. + $message = ["logout", "success"]; + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/Functions/func_mission.php b/Core/Functions/func_mission.php new file mode 100644 index 0000000..9d009c5 --- /dev/null +++ b/Core/Functions/func_mission.php @@ -0,0 +1,54 @@ + $proId, + "proJobs" => $dbsearch->get_pro_job_by_proid($proId) + ]; + header("Location: /Templates/mission.php"); + die(); +} + +function mission_register($subject, $clientId, $proId, $jobId) { + $dbmission = new DbMission; + $registered = $dbmission->register_mission($subject, $clientId, $proId, $jobId); + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($registered) { + $message = ["missionRegister", "success"]; + } else { + $message = ["missionRegister", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function mission_review($missionId, $review, $note) { + $dbmission = new DbMission; + $reviewed = $dbmission->review_mission($missionId, $review, $note); + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($reviewed) { + $message = ["missionReview", "success"]; + } else { + $message = ["missionReview", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/Functions/func_myMission.php b/Core/Functions/func_myMission.php new file mode 100644 index 0000000..3531c48 --- /dev/null +++ b/Core/Functions/func_myMission.php @@ -0,0 +1,58 @@ +accept_mission_by_missionid($missionId); + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($accepted) { + $message = ["missionAccepted", "success"]; + } else { + $message = ["missionAccepted", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +function mymission_complete_mission($missionId, $userStatus) { + $dbmission = new DbMission; + + switch ($userStatus) { + // Pro + case 1: + $validated = $dbmission->validate_mission_pro_by_missionid($missionId); + break; + // Client + case 2: + $validated = $dbmission->validate_mission_client_by_missionid($missionId); + $_SESSION["missionCompleted"] = [ + "missionId" => $missionId + ]; + header("Location: /Templates/mission.php"); + die(); + default: + break; + } + + // Sélection du message à afficher en fonction de réussite ou pas. + if ($validated) { + $message = ["missionValidated", "success"]; + } else { + $message = ["missionValidated", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/Functions/func_register.php b/Core/Functions/func_register.php new file mode 100644 index 0000000..b7c02cd --- /dev/null +++ b/Core/Functions/func_register.php @@ -0,0 +1,30 @@ +register_user($email, + $password, + $userStatus + ); + + // Sélection du message à afficher en fonction de la réussite de l'inscription. + if ($registered) { + $message = ["userAdd", "success"]; + } else { + $message = ["userAdd", "fail"]; + } + + // Redirection vers message avec l'index du message à afficher. + $_SESSION["message"] = $message; + header("Location: /Templates/message.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/Functions/func_sanitize.php b/Core/Functions/func_sanitize.php new file mode 100644 index 0000000..afee91c --- /dev/null +++ b/Core/Functions/func_sanitize.php @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/Core/Functions/func_search.php b/Core/Functions/func_search.php new file mode 100644 index 0000000..69740da --- /dev/null +++ b/Core/Functions/func_search.php @@ -0,0 +1,81 @@ +get_pro_info_by_lastname($request); + break; + case 2: + $result = $dbsearch->get_all_pro_by_jobid($request); + break; + default: + break; + } + + // Pour chaque utilisateur avec un nom qui "match". + for ($i = 0; $i < count($result); $i++) { + $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($result[$i]["userId"]); + // récupération du nombre de mission effectué. + $numberMission = $dbmission->count_pro_missions_by_proid($result[$i]["userId"]); + $result[$i]["numberOfMissions"] = $numberMission[0][0]; + // récupération des notes de l'utilisateur. + $allNotes = $dbsearch->get_pro_note_by_proid($result[$i]["userId"]); + // Pour chaque note on la "push" (ajoute) dans une liste. + $notes = array(); + for ($j = 0; $j < count($allNotes); $j++) { + if ($allNotes[$j][0]) { + array_push($notes, $allNotes[$j][0]); + } + } + + // On fait la moyenne des notes, + // 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[$i]["note"] = round($average, 2); + $result[$i]["star"] = (int)$average; + // Si il n'y a pas encore de note. + } else { + $result[$i]["note"] = 0; + $result[$i]["star"] = 0; + } + } + // Si c'est "plus d'info" et non une recherche. + } else { + $result = $dbsearch->get_user_info_by_userid($request); + for ($i = 0; $i < count($result); $i++) { + $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($request); + } + } + + // Redirection vers l'index avec le "payload" (contenu) en fonction du type de recherche. + if ($isResearch) { + $search = array( + "result" => $result, + "isResearch" => true + ); + } else { + $search = array( + "result" => $result, + "isResearch" => false + ); + } + $_SESSION["search"] = $search; + + header("Location: /index.php#separator2"); + die(); +} + +?> \ No newline at end of file diff --git a/Core/wrapper.php b/Core/wrapper.php new file mode 100644 index 0000000..89e7b96 --- /dev/null +++ b/Core/wrapper.php @@ -0,0 +1,310 @@ + $value) { + if ($key !== "password") { + $_POST[$key] = sanitize($value); + } + } + } + + +// **************************************************************************** +// LANGUE +// **************************************************************************** + // Condition pour le changement de la langue + if (isset($_POST["langSel"]) + && ($_POST["langSel"] == "en" + || $_POST["langSel"] == "fr") + ) { + language_set($_POST["langSel"]); + + +// **************************************************************************** +// RECHERCHE +// **************************************************************************** + // Condition pour une recherche +} elseif ($_SESSION["src"] == "index" + && (isset($_POST["moreInfoProId"]) && $_POST["moreInfoProId"] !== "") + || (isset($_POST["searchByName"]) && $_POST["searchbyName"] !== "") + || (isset($_POST["searchByJob"]) && $_POST["searchbyJob"] !== "") + ) { + + if ($_POST["moreInfoProId"]) { + search($_POST["moreInfoProId"], 0); + + } elseif ($_POST["searchByName"]) { + search($_POST["searchByName"], 1); + + } elseif ($_POST["searchByJob"]) { + search($_POST["searchByJob"], 2); + + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// INSCRIPTION +// **************************************************************************** + // Condition pour une inscription + } elseif ($_SESSION["src"] == "register" + && isset($_POST["email"], + $_POST["password"], + $_POST["userStatus"] + ) + && $_POST["email"] !== "" + && $_POST["password"] !== "" + ) { + register($_POST["email"], + $_POST["password"], + $_POST["userStatus"] + ); + + +// **************************************************************************** +// CONNECTION SANS ET AVEC COOKIE +// **************************************************************************** + } elseif ($_SESSION["src"] == "login" + && isset($_POST["email"], $_POST["password"]) + && $_POST["email"] !== "" + && $_POST["password"] !== "" + ) { + if (isset($_POST["rememberMe"]) && $_POST["rememberMe"] == "on") { + $_POST["rememberMe"] = 1; + } else { + $_POST["rememberMe"] = 0; + } + login(0, $_POST["email"], $_POST["password"], $_POST["rememberMe"]); + + } elseif ($_SESSION["src"] == "autoLogin" + && isset($_COOKIE["autoLogin"]) + && $_SESSION["loggedIn"] + ) { + // Si connection par cookie, on le décode avant de le passer à la fonction. + login(json_decode(base64_decode($_COOKIE["autoLogin"]))); + + +// **************************************************************************** +// DECONNECTION +// **************************************************************************** + } elseif ($_SESSION["src"] == "logout" + && isset($_SESSION["loggedIn"]) + && $_SESSION["loggedIn"] + ) { + logout(); + + +// **************************************************************************** +// MODIFICATION DES INFOS UTILISATEUR +// **************************************************************************** + // Condition pour une modification des infos + } elseif ($_SESSION["src"] == "userInfo" + // Vérification des données si client + && (isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"], + $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"], + $_POST["adress"], $_POST["zipCode"], $_POST["city"] + ) + && $_SESSION["userStatus"] == 2 + && $_POST["lastname"] !== "" && $_POST["firstname"] !== "" + && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== "" + && $_POST["zipCode"] !== "" && $_POST["city"] !== "" + // Ou si pro + || isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"], + $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"], + $_POST["adress"], $_POST["zipCode"], $_POST["city"], $_POST["jobs"], + $_POST["degree"], $_POST["capability"], $_POST["description"] + ) + && $_SESSION["userStatus"] == 1 + && $_POST["lastname"] !== "" && $_POST["firstname"] !== "" + && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== "" + && $_POST["zipCode"] !== "" && $_POST["city"] !== "" + && $_POST["degree"] !== "" && $_POST["capability"] !== "" + && $_POST["description"] !== "" + ) + ) { + info_update_user_infos($_POST, $_SESSION["userId"], $_SESSION["userStatus"]); + + +// **************************************************************************** +// MISSION - MANDATER, ENREGISTRER UNE REQUETE, VALIDER ET AVIS +// **************************************************************************** + // mandater une mission + } elseif ($_SESSION["src"] == "index" + && (isset($_POST["mandateProId"]) && $_POST["mandateProId"] !== "") + ) { + mission_initiate($_POST["mandateProId"]); + + } elseif ($_SESSION["src"] == "mission" + && isset($_SESSION["loggedIn"], $_SESSION["userStatus"], + $_POST["missionSubject"], $_POST["missionJob"], + $_POST["missionProId"] + ) + && $_SESSION["loggedIn"] + && $_SESSION["userStatus"] == 2 + && $_POST["missionSubject"] !== "" + && $_POST["missionJob"] !== "" + && $_POST["missionProId"] !== "" + ) { + mission_register($_POST["missionSubject"], + $_SESSION["userId"], + $_POST["missionProId"], + $_POST["missionJob"] + ); + + } elseif ($_SESSION["src"] == "mission" + && isset($_SESSION["loggedIn"], $_SESSION["userStatus"], + $_POST["missionCompletedId"], $_POST["review"], + $_POST["note"] + ) + && $_SESSION["loggedIn"] + && $_SESSION["userStatus"] == 2 + && $_POST["missionCompletedId"] !== "" + && $_POST["review"] !== "" + && $_POST["note"] !== "" + ) { + mission_review($_POST["missionCompletedId"], + $_POST["review"], + $_POST["note"] + ); + + +// **************************************************************************** +// GESTION DE SES MISSIONS +// **************************************************************************** + } elseif ($_SESSION["src"] == "myMission" + && isset($_SESSION["loggedIn"], + $_SESSION["userStatus"], + ) + && ($_SESSION["userStatus"] == 1 + || $_SESSION["userStatus"] == 2 + ) + ) { + + if (isset($_POST["acceptedMissionId"]) + && $_POST["acceptedMissionId"] !== "" + ) { + mymission_accept_mission($_POST["acceptedMissionId"]); + + } elseif (isset($_POST["validatedMissionId"], $_SESSION["userStatus"]) + && $_POST["validatedMissionId"] !== "" + && ($_SESSION["userStatus"] == 1 + ||$_SESSION["userStatus"] == 2 + ) + ) { + mymission_complete_mission($_POST["validatedMissionId"], $_SESSION["userStatus"]); + + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// ADMINISTRATION +// **************************************************************************** + // Condition pour l'administration du site + } elseif ($_SESSION["src"] == "admin" + && isset($_SESSION["loggedIn"], + $_SESSION["userStatus"] + ) + && $_SESSION["loggedIn"] + && $_SESSION["userStatus"] == 0 + && (isset($_POST["delUserId"]) + || isset($_POST["addJobNameEn"], + $_POST["addJobNameFr"] + ) + || isset($_POST["delJobId"]) + || isset($_POST["delMissionId"]) + ) + ) { + + // Suppression d'un utilisateur + if (isset($_POST["delUserId"]) + && $_POST["delUserId"] !== "" + ) { + admin_user_del($_POST["delUserId"]); + + // Ajout d'un catégorie d'emploi + } elseif (isset($_POST["addJobNameEn"]) + && isset($_POST["addJobNameFr"]) + && $_POST["addJobNameEn"] !== "" + && $_POST["addJobNameFr"] !== "" + ) { + admin_job_add($_POST["addJobNameEn"], $_POST["addJobNameFr"]); + + // Suppression d'une categorie d'emploi + } elseif (isset($_POST["delJobId"]) + && $_POST["delJobId"] !== "" + ) { + admin_job_del($_POST["delJobId"]); + + // Suppression d'une mission + } elseif (isset($_POST["delMissionId"]) + && $_POST["delMissionId"] !== "" + ) { + admin_mission_del($_POST["delMissionId"]); + + // sinon + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// SI ERREUR DANS $_SESSION ou $_POST +// **************************************************************************** + // Enfin, si requete invalide + } else { + http_response_code(404); + die(); + } + + +// **************************************************************************** +// SI "src" N'EST PAS DEFINI DANS $_SESSION +// **************************************************************************** +} else { + http_response_code(404); + die(); +} +?> \ No newline at end of file diff --git a/Database/dbmain.php b/Database/dbmain.php index 1f1ac24..77999f9 100644 --- a/Database/dbmain.php +++ b/Database/dbmain.php @@ -1,20 +1,27 @@ database; @@ -210,7 +221,7 @@ class DbMain { return $data[0][0]; } - // Fonction "auto", déclenchée à l'instanciation + // Constructeur, fonction "auto" déclenchée à l'instanciation final public function __construct() { // Essaie de se connecter a la BDD if ($this->debug) { @@ -220,4 +231,5 @@ class DbMain { } } } + ?> \ No newline at end of file diff --git a/Database/meth_dbadmin.php b/Database/meth_dbadmin.php index 112bce1..b41c7c5 100644 --- a/Database/meth_dbadmin.php +++ b/Database/meth_dbadmin.php @@ -1,14 +1,21 @@ exec_cmd($reqCheckjobCategoryNameEn, array($jobCategoryNameEn))->fetchAll(PDO::FETCH_NUM); + $reqResultEn = $this->exec_cmd($reqCheckjobCategoryNameEn, array($jobNameEn))->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 @@ -79,7 +89,7 @@ class DbAdmin extends DbMain { jobCategoryNameFr = ? LIMIT 1 )"; - $reqResultFr = $this->exec_cmd($reqCheckjobCategoryNameFr, array($jobCategoryNameFr))->fetchAll(PDO::FETCH_NUM); + $reqResultFr = $this->exec_cmd($reqCheckjobCategoryNameFr, array($jobNameFr))->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 @@ -90,7 +100,7 @@ class DbAdmin extends DbMain { VALUES (? ,?)"; // Exécution de la requète - $this->exec_cmd($reqjobCategoryNameAdd, array($jobCategoryNameEn, $jobCategoryNameFr)); + $this->exec_cmd($reqjobCategoryNameAdd, array($jobNameEn, $jobNameFr)); // Retourne 1 pour réussite return 1; } else { @@ -104,7 +114,7 @@ class DbAdmin extends DbMain { } // Suppresion d'un utilisateur - final public function job_category_del($jobCategoryId) { + final public function del_job_category_by_jobid($jobId) { // Préparation de la requète pour voir si l'utilisateur existe $reqCheckExistId = " SELECT EXISTS( @@ -117,7 +127,7 @@ class DbAdmin extends DbMain { // 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); + $reqResult = $this->exec_cmd($reqCheckExistId, array($jobId))->fetchAll(PDO::FETCH_NUM); // Si il existe if ($reqResult[0][0]) { // Préparation de la requète pour suppression @@ -127,7 +137,7 @@ class DbAdmin extends DbMain { WHERE jobCategoryId = ?"; // Exécution de la requète - $this->exec_cmd($reqDelJobCategory, array($jobCategoryId)); + $this->exec_cmd($reqDelJobCategory, array($jobId)); // Retourne 1 pour réussite return 1; } else { @@ -135,5 +145,41 @@ class DbAdmin extends DbMain { return 0; } } + + // **************************************************************************** + // GESTION DES MISSIONS DANS L'ADMIN + // **************************************************************************** + // Suppresion d'une mission + final public function del_mission_by_missionid($missionId) { + // Préparation de la requète pour voir si l'utilisateur existe + $reqCheckExistId = " + SELECT EXISTS( + SELECT 1 FROM + ".$this->tableMission." + WHERE + missionId = ? + LIMIT 1 + )"; + // Exécution de la requète + $reqResult = $this->exec_cmd($reqCheckExistId, array($missionId))->fetchAll(PDO::FETCH_NUM); + // Si il existe + if ($reqResult[0][0]) { + // Préparation de la requète pour suppression + $reqDelMission = " + DELETE FROM + ".$this->tableMission." + WHERE + missionId = ?"; + // Exécution de la requète + $this->exec_cmd($reqDelMission, array($missionId)); + // 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 index 92f8690..5087bc5 100644 --- a/Database/meth_dbmission.php +++ b/Database/meth_dbmission.php @@ -1,136 +1,160 @@ tableMission." - (date, subject, clientId, proId, jobCategoryId) - VALUES - (?, ?, ?, ?, ?)"; - // Exécution de la requète - $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $subject, $clientId, $proId, $jobId)); - return 1; - } + // **************************************************************************** + // ENREGISTREMENT ET VALIDATION DES MISSIONS + // **************************************************************************** + // Enregistrement d'une mission + final public function register_mission($subject, $clientId, $proId, $jobId) { + // Préparation de la requète pour enregistrement de la mission + $reqAddMission = " + INSERT INTO ".$this->tableMission." + (date, subject, clientId, proId, jobCategoryId) + VALUES + (?, ?, ?, ?, ?)"; + // Exécution de la requète + $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $subject, $clientId, $proId, $jobId)); + return 1; + } + + // Enregistrement d'une mission + final public function accept_mission_by_missionid($missionId) { + // Préparation de la requète pour enregistrement de la mission + $reqAddMission = " + UPDATE + ".$this->tableMission." + SET + acceptedByPro = ? + WHERE + missionId = ?"; + // Exécution de la requète + $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId)); + return 1; + } + + final public function validate_mission_pro_by_missionid($missionId) { + // Préparation de la requète pour enregistrement de la mission + $reqAddMission = " + UPDATE + ".$this->tableMission." + SET + validatedByPro = ? + WHERE + missionId = ?"; + // Exécution de la requète + $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId)); + return 1; + } - // Enregistrement d'une mission - final public function accept_mission($missionId) { - // Préparation de la requète pour enregistrement de la mission - $reqAddMission = " - UPDATE - ".$this->tableMission." - SET - acceptedByPro = ? - WHERE - missionId = ?"; - // Exécution de la requète - $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId)); - return 1; - } + final public function validate_mission_client_by_missionid($missionId) { + // Préparation de la requète pour enregistrement de la mission + $reqAddMission = " + UPDATE + ".$this->tableMission." + SET + validatedByClient = ? + WHERE + missionId = ?"; + // Exécution de la requète + $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId)); + return 1; + } - final public function validate_mission_by_pro($missionId) { - // Préparation de la requète pour enregistrement de la mission - $reqAddMission = " - UPDATE - ".$this->tableMission." - SET - validatedByPro = ? - WHERE - missionId = ?"; - // Exécution de la requète - $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId)); - return 1; - } + final public function review_mission($missionId, $review, $note) { + // Préparation de la requète pour enregistrement de la mission + $reqAddMission = " + UPDATE + ".$this->tableMission." + SET + review = ?, note = ? + WHERE + missionId = ?"; + // Exécution de la requète + $this->exec_cmd($reqAddMission, array($review, $note, $missionId)); + return 1; + } - final public function validate_mission_by_client($missionId) { - // Préparation de la requète pour enregistrement de la mission - $reqAddMission = " - UPDATE - ".$this->tableMission." - SET - validatedByClient = ? - WHERE - missionId = ?"; - // Exécution de la requète - $this->exec_cmd($reqAddMission, array(date("Y-m-d H:i:s"), $missionId)); - return 1; - } + // **************************************************************************** + // RECUPERATION DES INFORMATIONS RELATIVES AUX MISSIONS + // **************************************************************************** + // Récupérations des missions d'un pro par son id + final public function get_mission_by_proid($proId) { + $reqGetMissionsProId = " + SELECT + missionId, date, subject, note, review, + acceptedByPro, validatedByClient, + validatedByPro, jobCategoryId, proId, lastname + FROM + ".$this->tableMission." + LEFT JOIN + ".$this->tableUserInfo." + ON + ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId + WHERE + proId = ?"; + $result = $this->exec_cmd($reqGetMissionsProId, array($proId))->fetchAll(PDO::FETCH_ASSOC); + return $result; + } - final public function review_mission($missionId, $review, $note) { - // Préparation de la requète pour enregistrement de la mission - $reqAddMission = " - UPDATE - ".$this->tableMission." - SET - review = ?, note = ? - WHERE - missionId = ?"; - // Exécution de la requète - $this->exec_cmd($reqAddMission, array($review, $note, $missionId)); - return 1; - } + // Récupérations des missions d'un client par son id + final public function get_mission_by_clientid($clientId) { + $reqGetMissionsClientId = " + SELECT + missionId, date, subject, note, review, + acceptedByPro, validatedByClient, + validatedByPro, jobCategoryId, lastname + FROM + ".$this->tableMission." + LEFT JOIN + ".$this->tableUserInfo." + ON + ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId + WHERE + clientId = ?"; + $result = $this->exec_cmd($reqGetMissionsClientId, array($clientId))->fetchAll(PDO::FETCH_ASSOC); + return $result; + } - // Récupérations des missions d'un pro par son id - final public function get_mission_by_pro_id($proId) { - $reqGetAllMission = " - SELECT - missionId, date, subject, note, review, - acceptedByPro, validatedByClient, - validatedByPro, jobCategoryId, proId, lastname - FROM - ".$this->tableMission." - LEFT JOIN - ".$this->tableUserInfo." - ON - ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId - WHERE - proId = ?"; - $result = $this->exec_cmd($reqGetAllMission, array($proId))->fetchAll(PDO::FETCH_ASSOC); - return $result; - } + // Récupérations des missions d'un client par son id + final public function get_all_missions() { + $reqGetAllMission = " + SELECT + * + FROM + ".$this->tableMission; + $result = $this->exec_cmd($reqGetAllMission, array())->fetchAll(PDO::FETCH_NUM); + return $result; + } - // Récupérations des missions d'un client par son id - final public function get_mission_by_client_id($clientId) { - $reqGetAllMission = " - SELECT - missionId, date, subject, note, review, - acceptedByPro, validatedByClient, - validatedByPro, jobCategoryId, lastname - FROM - ".$this->tableMission." - LEFT JOIN - ".$this->tableUserInfo." - ON - ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId - WHERE - clientId = ?"; - $result = $this->exec_cmd($reqGetAllMission, array($clientId))->fetchAll(PDO::FETCH_ASSOC); - return $result; - } + // Compte le nombre de mission d'un consultant par son nom + final public function count_pro_missions_by_proid($proId) { + $reqCountMission = " + SELECT COUNT(*) FROM + ".$this->tableMission." + INNER JOIN + ".$this->tableUserInfo." + ON + ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId + WHERE + proId = ?"; + $result = $this->exec_cmd($reqCountMission, array($proId))->fetchAll(PDO::FETCH_NUM); + return $result; + } +} - // Compte le nombre de mission d'un consultant par son nom - final public function count_pro_missions_by_id($proId) { - $reqCountMission = " - SELECT COUNT(*) FROM - ".$this->tableMission." - INNER JOIN - ".$this->tableUserInfo." - ON - ".$this->tableMission.".proId = ".$this->tableUserInfo.".userId - WHERE - proId = ?"; - $result = $this->exec_cmd($reqCountMission, array($proId))->fetchAll(PDO::FETCH_NUM); - return $result; - } -} \ No newline at end of file +?> \ No newline at end of file diff --git a/Database/meth_dbsearch.php b/Database/meth_dbsearch.php index 7557583..eed9915 100644 --- a/Database/meth_dbsearch.php +++ b/Database/meth_dbsearch.php @@ -1,18 +1,26 @@ tableUserAccount." WHERE userId = ?"; - $result = $this->exec_cmd($reqSearchUser, array($id))->fetch(PDO::FETCH_ASSOC); + $result = $this->exec_cmd($reqSearchUser, array($userId))->fetch(PDO::FETCH_ASSOC); return $result; } // Récupération des infos d'un utilisateur par son id - final public function get_user_info_by_id($id) { + final public function get_user_info_by_userid($userId) { $reqGetUserInfo = " SELECT userId, lastname, firstname, degree, @@ -35,12 +43,32 @@ class DbSearch extends DbMain { ".$this->tableUserInfo." WHERE userId = ?"; - $result = $this->exec_cmd($reqGetUserInfo, array($id))->fetchAll(PDO::FETCH_ASSOC); + $result = $this->exec_cmd($reqGetUserInfo, array($userId))->fetchAll(PDO::FETCH_ASSOC); + return $result; + } + + // **************************************************************************** + // RECUPERATION DES INFORMATIONS RELATIVES AUX PROS + // **************************************************************************** + final public function get_all_pro_by_jobid($jobId) { + $reqSearchConsultant = " + SELECT + ".$this->tableUserInfo.".userId, + lastname, firstname, capability + FROM + ".$this->tableUserInfo." + INNER JOIN + ".$this->tableUserJob." + ON + ".$this->tableUserInfo.".userId = ".$this->tableUserJob.".userId + WHERE + jobCategoryId = ?"; + $result = $this->exec_cmd($reqSearchConsultant, array($jobId))->fetchAll(PDO::FETCH_ASSOC); return $result; } // Récupération des infos d'un pro par son nom - final public function get_pro_info_by_lastname($research) { + final public function get_pro_info_by_lastname($lastname) { $reqSearchConsultant = " SELECT ".$this->tableUserInfo.".userId, @@ -55,12 +83,12 @@ class DbSearch extends DbMain { userStatus = '1' AND lastname LIKE CONCAT('%', ?, '%')"; - $result = $this->exec_cmd($reqSearchConsultant, array($research))->fetchAll(PDO::FETCH_ASSOC); + $result = $this->exec_cmd($reqSearchConsultant, array($lastname))->fetchAll(PDO::FETCH_ASSOC); return $result; } // Récupération des emploies associés à un pro - final public function get_pro_job_category($proId) { + final public function get_pro_job_by_proid($proId) { $reqGetAll = " SELECT ".$this->tableUserJob.".jobCategoryId, @@ -78,7 +106,7 @@ class DbSearch extends DbMain { } // Récupération des notes d'un consultant par son nom - final public function get_pro_note_by_id($proId) { + final public function get_pro_note_by_proid($proId) { $reqCountMission = " SELECT note @@ -94,8 +122,11 @@ class DbSearch extends DbMain { return $result; } + // **************************************************************************** + // RECUPERATION DES INFORMATIONS RELATIVES AUX EMPLOIS + // **************************************************************************** // Récupérer toutes les infos de la table jobCategory - final public function get_job_category_all() { + final public function get_job_all() { $reqGetAllJobs = " SELECT * @@ -106,7 +137,7 @@ class DbSearch extends DbMain { } // Récupérer toutes les infos de la table jobCategory - final public function get_job_category_by_id($jobId) { + final public function get_job_by_jobid($jobId) { $reqGetJobinfo = " SELECT * @@ -118,4 +149,5 @@ class DbSearch extends DbMain { return $result; } } + ?> \ No newline at end of file diff --git a/Database/meth_dbuser.php b/Database/meth_dbuser.php index ea5c66e..4d983b5 100644 --- a/Database/meth_dbuser.php +++ b/Database/meth_dbuser.php @@ -1,19 +1,23 @@ check_exist_email($email); // Si non @@ -44,7 +48,7 @@ class DbUser extends DbMain { } // Vérification de la combinaison email - pass pour authentification - final public function user_check_credential($email, $pass) { + final public function check_user_credential($email, $pass) { // Préparation de la requète pour récupérer les infos ou l'email est présent $reqCheckCredential = " SELECT @@ -66,7 +70,7 @@ class DbUser extends DbMain { } // Mise à jour des infos d'un utilisateur - final public function user_infos_update($userInfos, $userId, $isPro, $userJobs = null) { + final public function update_user_infos($userInfos, $userId, $isPro, $userJobs = null) { // Préparation de la requète pour mise à jour des infos // J'ai préféré faire deux requètes distinctes et ne pas utiliser des valeurs // passées par $POST ($key => $value) pour gérer les noms des colonnes @@ -102,7 +106,7 @@ class DbUser extends DbMain { if (!$isPro) { // Exécution de la requète // https://www.php.net/manual/fr/function.array-values.php - // Pour passer de dict a list -> array_values() + // Pour passer de "dict" a "list" -> array_values() $args = array_values($userInfos); array_push($args, $userId); $this->exec_cmd($reqAddInfoClient, $args); @@ -126,10 +130,10 @@ class DbUser extends DbMain { } // **************************************************************************** - // Gestion du token-autologin + // GESTION DU TOKEN AUTOLOGIN // **************************************************************************** // Vérification de la combinaison email - jeton d'auto-login pour authentification - final public function autologin_token_check($email, $token) { + final public function check_token_autologin($email, $token) { // Préparation de la requète pour récupérer les infos ou l'email est présent $reqCheckToken = " SELECT @@ -149,7 +153,7 @@ class DbUser extends DbMain { } // Mise à jour du jeton d'auto-login - final public function autologin_token_update($email, $token) { + final public function update_token_autologin($email, $token) { // Préparation de la requète pour mise à jour du jeton d'auto-connection $reqUpdateToken = " UPDATE @@ -163,7 +167,7 @@ class DbUser extends DbMain { } // Supression du jeton d'auto-login - final public function autologin_token_delete($email) { + final public function del_token_autologin($email) { // Préparation de la requète pour supression du jeton d'auto-connection $reqDeleteToken = " UPDATE @@ -176,4 +180,5 @@ class DbUser extends DbMain { $this->exec_cmd($reqDeleteToken, array($email))->fetchAll(PDO::FETCH_ASSOC); } } + ?> \ No newline at end of file diff --git a/Documents_et_infos/Anciennes_versions_avant_git.zip b/Documents_et_infos/Anciennes_versions_avant_git.zip new file mode 100644 index 0000000..4f69087 Binary files /dev/null and b/Documents_et_infos/Anciennes_versions_avant_git.zip differ diff --git a/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg b/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg new file mode 100644 index 0000000..873958d Binary files /dev/null and b/Documents_et_infos/Structure_plan_de_site/html5_balises.jpg differ diff --git a/Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg b/Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg deleted file mode 100644 index d4564ad..0000000 Binary files a/Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg and /dev/null differ diff --git a/Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg b/Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg new file mode 100644 index 0000000..4aea17c Binary files /dev/null and b/Documents_et_infos/Structure_plan_de_site/structure_projet_web.jpg differ diff --git a/Documents_et_infos/todo.txt b/Documents_et_infos/todo.txt new file mode 100644 index 0000000..429031f --- /dev/null +++ b/Documents_et_infos/todo.txt @@ -0,0 +1,16 @@ + +################################################# + +- Global front + - Système de notification ? (5) + +- Revoir front Client & Pro + - Requète de mission pour un pro sur le moteur de recherche. (DONE) + - Page mes missions, passés, en cours, terminées. (DONE) + - Revoir mes infos pour adapter aux clients & pros. (DONE) + +- Revoir front Admin + - Doit pouvoir supprimer une mission (DONE) + - Doit pouvoir gérer les catégories de travail (DONE) + +################################################# diff --git a/Statics/Css/main.css b/Statics/Css/main.css index 12e84e0..cd3ab65 100644 --- a/Statics/Css/main.css +++ b/Statics/Css/main.css @@ -12,8 +12,9 @@ sur mon instance SearX https://searx.debulois.fr :root { /* GLOBAL */ --mainSiteColor: #c0392b; + --bodyBg: #fafafa; /* SEPARATOR */ - --separatorBg: white; + --separatorBg: #fafafa; /* NAVBAR */ --navbarText: black; --navbarBg: white; @@ -28,7 +29,7 @@ sur mon instance SearX https://searx.debulois.fr --btnHoverBg: #e74c3c; /* TABLES */ --tableText: black; - --tableBg: #f1f1f1; + --tableBg: #fafafa; --tableBorder: rgba(0, 0, 0, 0.2); --tableStarUnchecked: darkgray; --tableStarChecked: orange; @@ -105,12 +106,18 @@ sur mon instance SearX https://searx.debulois.fr transform: scale(1.3); } -.show_slide { +.show_block { /* Opacité de l'élément 0=transparent 1=opaque */ display: block !important; } /* FIN SLIDER */ +.show_flex { + /* Opacité de l'élément 0=transparent 1=opaque */ + display: flex !important; + flex-direction: column; +} + /* MESSAGE */ .success { color: green; @@ -192,24 +199,26 @@ html { body { /* Choix du font */ - font-family: SourceSansPro !important; + font-family: SourceSansPro; margin: 0px; /* taille en vh (view height) pourcentage de hauteur de fenêtre*/ min-height: 100vh; display: flex; flex-direction: column; justify-content: space-between; + background-color: var(--bodyBg); } pre { /* Permet d'aller à la ligne */ + font-family: SourceSansPro; white-space: pre-wrap; margin: 0.3em 0em; } /* Déclaration par ID */ /* NAVBAR */ -#navbar { +nav { /* Index de profondeur */ z-index: 1; height: 10vh; @@ -218,12 +227,12 @@ pre { justify-content: space-around; text-align: center; background-color: var(--navbarBg); - border-top: var(--mainSiteColor) solid 1.5vh; - border-bottom: var(--mainSiteColor) solid 0.5vh; + border-top: var(--mainSiteColor) solid 6px; + border-bottom: var(--mainSiteColor) solid 3px; color: var(--navbarText); } -#navbar ul { +nav ul { display: flex; justify-content: space-around; column-gap: 15px; @@ -235,17 +244,17 @@ pre { padding-inline-start: 0px; } -#navbar i { +nav i { margin-right: 0.4em; } -#navbar a { +nav a { color: var(--navbarText); text-decoration: none; - transition: 0.15s; + transition: all 0.15s ease-in-out; } -#navbar a:hover { +nav a:hover { color: var(--mainSiteColor); transform: scale(1.1); z-index: 2; @@ -325,14 +334,7 @@ pre { /* FIN SLIDER */ /* GLOBAL */ -#login, -#register, -#userInfo, -#message, -#admin, -#mission, -#myMission, -#search { +main { width: 80%; min-height: 70vh; /* margin left & right en auto = centré */ @@ -342,22 +344,16 @@ pre { flex-direction: column; justify-content: center; text-align: center; - border-top: 1.5vh solid var(--mainSiteColor); - border-right: 0.5vh solid var(--mainSiteColor); - border-bottom: 0.5vh solid var(--mainSiteColor); - border-left: 0.5vh solid var(--mainSiteColor); + border-top: 6px solid var(--mainSiteColor); + border-right: 3px solid var(--mainSiteColor); + border-bottom: 3px solid var(--mainSiteColor); + border-left: 3px solid var(--mainSiteColor); + border-radius: 5px; background-color: var(--bg); color: var(--text); } -#login h2, -#register h2, -#userInfo h2, -#message h2, -#admin h2, -#search h2, -#mission h2, -#myMission h2 { +main h2 { display: inline-block; margin-left: auto; margin-right: auto; @@ -365,12 +361,16 @@ pre { border-bottom: var(--mainSiteColor) 0.5vh solid; } -#login form, -#userInfo form, -#register form, -#mission form, -#admin form, -#search form { +#mainAdmin section { + display: none; +} + +#mainLogin form, +#mainUserInfo form, +#mainRegister form, +#mainMission form, +#mainAdmin form, +#mainSearch form { display: flex; flex-direction: column; justify-content: space-around; @@ -379,38 +379,39 @@ pre { align-items: center; } -#search form, -#admin form { +#mainSearch form, +#mainAdmin form { flex-direction: row; } -#login label, -#userInfo label, -#register label, -#mission label, -#admin label, -#search label { +#mainLogin label, +#mainUserInfo label, +#mainRegister label, +#mainMission label, +#mainAdmin label, +#mainSearch label { width: 80%; display: flex; } -#login i, -#userInfo i, -#register i, -#mission i, -#admin i, -#search i { +#mainLogin i, +#mainUserInfo i, +#mainRegister i, +#mainMission i, +#mainAdmin i, +#mainSearch i { width: 90px; height: 2em; line-height: 2em; font-size: 28px; color: var(--iconColor); background-color: var(--mainSiteColor); + border-radius: 5px 0px 0px 5px; } -#myMission table, -#admin table, -#search table { +#mainMyMission table, +#mainAdmin table, +#mainSearch table { color: var(--text); padding: 5%; border-collapse: collapse; @@ -418,39 +419,104 @@ pre { margin: 1em auto; } -#myMission table { +#mainMyMission table { display: none; } -#myMission th, -#admin th, -#search th { +#mainMyMission th, +#mainAdmin th, +#mainSearch th { font-size: 15px; border: 2px solid var(--mainSiteColor); background-color: var(--tableBg); } -#myMission td, -#admin td, -#search td { +#mainMyMission td, +#mainAdmin td, +#mainSearch td { border: 2px solid var(--tableBorder); background-color: var(--tableBg); } -#userInfo input[type="text"], -#mission input[type="text"], -#login input[type="email"], -#login input[type="password"], -#register input[type="email"], -#search input[type="search"], -#register input[type="password"] { +#mainUserInfo input[type="text"], +#mainMission input[type="text"], +#mainLogin input[type="email"], +#mainLogin input[type="password"], +#mainRegister input[type="email"], +#mainSearch input[type="search"], +#mainRegister input[type="password"] { width: inherit; - border: 0.5vh solid var(--mainSiteColor); - padding: 1em; + border: 3px solid var(--mainSiteColor); + border-radius: 0px 5px 5px 0px; + padding: 0.5em; +} + +#userJob { + justify-content: space-between; +} + +#userJobs i { + border-radius: 5px; +} + +#userJob select { + height: 2.5em; + line-height: 2.5em; + margin-top: auto; + margin-bottom: auto; +} + +#userJob button[type="button"] { + margin-top: auto; + margin-bottom: auto; + margin-right: 3em; + font-size: 16px; + height: 2em; + border: 2px solid var(--mainSiteColor); + background-color: var(--bg); + border-radius: 5px; + padding: 0em 1em; + transition: all 0.1s ease-in-out; +} + +#userJob button[type="button"]:hover { + cursor: pointer; + color: var(--bg); + background-color: var(--btnHoverBg); +} + +#jobsList { + border: 3px solid var(--mainSiteColor); + border-radius: 5px; + padding: 2em 5em; + list-style: circle; +} + +#jobsList > li > button { + border: none; + background-color: inherit; +} + +#jobsList > li > button > i { + background-color: inherit; + color: var(--mainSiteColor); + border: 2px solid grey; + border-radius: 4px; + font-size: 22px; + width: 1.3em; + height: 1.3em; + line-height: 1.3em; + transition: all 0.15s ease-in-out; +} + +#jobsList > li > button > i:hover { + background-color: var(--btnHoverBg); + color: whitesmoke; + cursor: pointer; } -#mission select { +#mainMission select { height: 2.5em; line-height: 2.5em; margin-top: auto; @@ -458,46 +524,48 @@ pre { margin-left: 1em; } -#userInfo textarea, -#mission textarea { +#mainUserInfo textarea, +#mainMission textarea { width: 83%; height: 3.4em; border: 0.5vh solid var(--mainSiteColor); + border-radius: 0px 5px 5px 0px; } -#login input[type="submit"], -#userInfo input[type="submit"], -#mission input[type="submit"], -#search input[type="submit"], -#admin input[type="submit"], -#register input[type="submit"] { +#mainLogin input[type="submit"], +#mainUserInfo input[type="submit"], +#mainMission input[type="submit"], +#mainSearch input[type="submit"], +#mainAdmin input[type="submit"], +#mainRegister input[type="submit"] { font-size: 17px; font-weight: bold; height: 2.5em; border: 0.15em solid var(--mainSiteColor); background-color: var(--bg); - border-radius: 3px; + border-radius: 5px; padding: 0% 0.7em; + transition: all 0.1s ease-in-out; } -#login input[type="submit"]:hover, -#userInfo input[type="submit"]:hover, -#mission input[type="submit"]:hover, -#search input[type="submit"]:hover, -#admin input[type="submit"]:hover, -#register input[type="submit"]:hover { +#mainLogin input[type="submit"]:hover, +#mainUserInfo input[type="submit"]:hover, +#mainMission input[type="submit"]:hover, +#mainSearch input[type="submit"]:hover, +#mainAdmin input[type="submit"]:hover, +#mainRegister input[type="submit"]:hover { cursor: pointer; color: var(--bg); background-color: var(--btnHoverBg); } -#message p { +#mainMessage p { font-size: 20px; } /* FIN GLOBAL */ /* FOOTER */ -#footer { +footer { min-height: 10vh; display: flex; flex-direction: column; diff --git a/Statics/Js/index.js b/Statics/Js/index.js index 805b53e..b468417 100644 --- a/Statics/Js/index.js +++ b/Statics/Js/index.js @@ -17,10 +17,10 @@ function slideshow_start(slideNumber = 1) { document.getElementById("slides").style.backgroundImage = `url("${images[slideNumber]}")`; // Untoggle les précedents // Utilisation de ternary, utilisation: condition ? Sivrai : Sifaux - document.getElementById(`slide_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("show_slide"); + document.getElementById(`slide_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("show_block"); document.getElementById(`slideDot_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("slideSelected"); // Toggle le nouveau texte & selecteur - document.getElementById(`slide_${slideNumber}`).classList.toggle("show_slide"); + document.getElementById(`slide_${slideNumber}`).classList.toggle("show_block"); document.getElementById(`slideDot_${slideNumber}`).classList.toggle("slideSelected") // +1 sauf si fin if (slideNumber < images.length - 1) { diff --git a/Statics/Js/main.js b/Statics/Js/main.js index b4d0894..6fe6dec 100644 --- a/Statics/Js/main.js +++ b/Statics/Js/main.js @@ -7,6 +7,17 @@ // https://stackoverflow.com/ // Changement de langue -document.getElementById("langSel").addEventListener("change", () => { - document.getElementById("langForm").submit(); +document.getElementById("navSelLang").addEventListener("change", () => { + document.getElementById("navFormLang").submit(); }); + +// TODO: A commenter +function show(parentId, element, id, className) { + let elements = document.getElementById(parentId).getElementsByTagName(element); + elements[id].classList.add(className); + for (i = 0; i < elements.length; i++) { + if (elements[i].id !== id) { + elements[i].classList.remove(className); + } + } +} \ No newline at end of file diff --git a/Statics/Js/myMission.js b/Statics/Js/myMission.js deleted file mode 100644 index 36c2648..0000000 --- a/Statics/Js/myMission.js +++ /dev/null @@ -1,11 +0,0 @@ - -//table id pendingTable, ongoingTable, completedTable -function show(tableId) { - let tables = document.getElementById("myMission").getElementsByTagName("table"); - tables[tableId].classList.add("show_table"); - for (i = 0; i < tables.length; i++) { - if (tables[i].id !== tableId) { - tables[i].classList.remove("show_table"); - } - } -} \ No newline at end of file diff --git a/Templates/Includes/en/message.php b/Templates/Includes/en/message.php new file mode 100644 index 0000000..aa3415f --- /dev/null +++ b/Templates/Includes/en/message.php @@ -0,0 +1,222 @@ + [ + "success" => [ + "success" => true, + "title" => "Update user information.", + "info" => "User informations updated !", + "timer" => true, + "toSrc" => true + ] + ], + // Login sans cookie + "login" => [ + "success" => [ + "success" => true, + "title" => "Login.", + "info" => "Successfully logged in!", + "timer" => true, + "toSrc" => false + ], + "fail" => [ + "success" => false, + "title" => "Login.", + "info" => "Error bad credentials.", + "timer" => true, + "toSrc" => true + ] + ], + // Login avec cookie + "loginCookie" => [ + "success" => [ + "success" => true, + "title" => "", + "info" => "", + "timer" => false, + "toSrc" => false + ], + "fail" => [ + "success" => false, + "title" => "Login cookie.", + "info" => "Error with the cookie auto-login.", + "timer" => true, + "toSrc" => false + ] + ], + // Log out + "logout" => [ + "success" => [ + "success" => true, + "title" => "Log out.", + "info" => "Successefuly logged out!", + "timer" => true, + "toSrc" => false + ] + ], + // Ajout mission + "missionRegister" => [ + "success" => [ + "success" => true, + "title" => "Register a mission.", + "info" => "Mission registered !", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Mandate a mission.", + "info" => "Error, please sign-in before.", + "timer" => true, + "toSrc" => true + ] + ], + // Acceptation d'une mission + "missionAccepted" => [ + "success" => [ + "success" => true, + "title" => "Mission info.", + "info" => "Mission accepted !", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Mandate infos.", + "info" => "Error, mission not accepted.", + "timer" => true, + "toSrc" => true + ] + ], + // Validation d'une mission + "missionValidated" => [ + "success" => [ + "success" => true, + "title" => "Mission info.", + "info" => "Mission completed!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Mandate info.", + "info" => "Error, mission not marked as completed.", + "timer" => true, + "toSrc" => true + ] + ], + // Ajout d'un commentaire & note + "missionReview" => [ + "success" => [ + "success" => true, + "title" => "Mission review.", + "info" => "Your review has been registered!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Mission review.", + "info" => "Error, your review has not been resgistered.", + "timer" => true, + "toSrc" => true + ] + ], + // Ajout utilisateur + "userAdd" => [ + "success" => [ + "success" => true, + "title" => "Register an user.", + "info" => "User successfully registered !", + "timer" => true, + "toSrc" => false + ], + "fail" => [ + "success" => false, + "title" => "Register an user.", + "info" => "Error, user not registered.", + "timer" => true, + "toSrc" => true + ] + ], + // Delete utilisateur + "adminDelUser" => [ + "success" => [ + "success" => true, + "title" => "Delete an user.", + "info" => "User deleted !", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Delete an user.", + "info" => "No user was deleted.", + "timer" => true, + "toSrc" => true + ] + ], + // Ajout categorie + "adminAddJob" => [ + "success" => [ + "success" => true, + "title" => "Add a job category.", + "info" => "Category added !", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Add a job category.", + "info" => "Category not added.", + "timer" => true, + "toSrc" => true + ] + ], + // Suppression categorie + "adminDelJob" => [ + "success" => [ + "success" => true, + "title" => "Deletion of a job category.", + "info" => "Category deleted !", + "timer" => true, + "toSrc" => true + ], + "delete" => [ + "success" => false, + "title" => "Deletion of a job category.", + "info" => "Category not deleted !", + "timer" => true, + "toSrc" => true + ] + ], + // Suppression mission + "adminDelMission" => [ + "success" => [ + "success" => true, + "title" => "Deletion of a mission.", + "info" => "Mission deleted !", + "timer" => true, + "toSrc" => true + ], + "delete" => [ + "success" => false, + "title" => "Deletion of a mission.", + "info" => "Mission not deleted !", + "timer" => true, + "toSrc" => true + ] + ] +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/en/table.php b/Templates/Includes/en/table.php new file mode 100644 index 0000000..6fe716a --- /dev/null +++ b/Templates/Includes/en/table.php @@ -0,0 +1,86 @@ + [ + "User ID", + "Email", + "Crypted Password", + "Token for auto-login", + "Inscription date", + "User status" + ], + // En-tête des colonnes du tableau des missions de l'admin. + "adminMissions" => [ + "Mission ID", + "Request Date", + "Subject", + "Note", + "Review", + "Accepted by pro date", + "Validated by client date", + "Validated by pro date", + "Client ID", + "Pro ID", + "Job" + ], + // En-tête des colonnes du tableau Search de l'index. + "search" => [ + "Last name", + "First name", + "Job", + "Capabilities", + "Number of missions", + "Note", + "Stars" + ], + // En-tête des colonnes du tableau More infos de l'index. + "moreInfos" => [ + "Last name", + "First name", + "Job", + "Degree", + "Capabilities", + "Description", + "Phone number", + "Adress", + "Zip code", + "City" + ], + // En-tête des colonnes du tableau mes missions. + "pendingMissions" => [ + "Request date", + "Pro name", + "Job", + "Subject" + ], + // En-tête des colonnes du tableau mes missions. + "ongoingMissions" => [ + "Accpeted by pro date", + "Pro name", + "Job", + "Subject", + "Validated by client date", + "Validated by pro date" + ], + // En-tête des colonnes du tableau mes missions. + "completedMissions" => [ + "Request date", + "Started date", + "Validation by client date", + "Validation by pro date", + "Pro name", + "job", + "Subject", + "Review", + "Note" + ] +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/en/text.php b/Templates/Includes/en/text.php new file mode 100644 index 0000000..3e6b981 --- /dev/null +++ b/Templates/Includes/en/text.php @@ -0,0 +1,100 @@ + [ + "btManageJob" => "Manage jobs categories", + "btManageUser" => "Manage users", + "btManageMission" => "Manage missions", + "formJobAddEn" => "Name of the category in English", + "formJobAddFr" => "Name of the category in French", + "submitJobAdd" => "Add", + "selJobDel" => "Choose a job to delete", + "submitJobDel" => "Delete", + "formDel" => "ID to delete", + "submitDel" => "Delete", + ], + "incl_global_footer" => [ + "main" => "Made by Debulois Quentin for my professional folder.
December 2021, all rights reserved.", + ], + "incl_form_userInfo" => [ + "h2" => "Informations about the user.", + "lastname" => "Last name", + "firstname" => "First name", + "phoneNumber" => "Phone number", + "adress" => "Adress", + "zipCode" => "Zip code", + "city" => "City", + "jobsSel" => "Jobs", + "jobsAdd" => "Add", + "degree" => "Degree", + "capability" => "Capacities", + "description" => "Descriptions", + "submit" => "Modify" + ], + "incl_form_login" => [ + "h2" => "Login", + "email" => "Email", + "password" => "Password", + "rememberMe" => "Remember me", + "submit" => "Sign-in" + ], + "incl_form_mission" => [ + "h2" => "Form to register a mission", + "subject" => "Subject", + "review" => "Review", + "proId" => "Pro ID", + "submit" => "Register", + "jobsSel" => "Jobs" + ], + "incl_table_myMission" => [ + "pendingMission" => "Pending missions", + "ongoingMission" => "Ongoing missions", + "completedMission" => "Completed missions", + "accept" => "Accept", + "validate" => "Validate" + ], + "incl_global_navbar" => [ + "h2" => "AlphaJob", + "btnSearch" => "Search", + "btnInfos" => "Modif. infos", + "btnMission" => "Register mission", + "btnMyMission" => "My missions", + "btnAdmin" => "Administration", + "btnLogin" => "Sign-in", + "btnLogout" => "Loggout", + "btnRegister" => "Sign-up", + "lang" => "Language", + "btnLang" => "Select" + ], + "incl_form_register" => [ + "h2" => "Form to sign-in", + "email" => "Email", + "password" => "Password", + "notice" => "Admin is here for the purpose of the exam only:", + "isAdmin" => "Is admin?", + "isPro" => "Is pro?", + "isClient" => "Is client?", + "submit" => "Sign-up" + ], + "incl_index_search" => [ + "h2" => "Search a professional", + "searchBarName" => "Search by name", + "searchBarJob" => "Search by job", + "submit" => "Search", + "moreInfo" => "More info", + "mandate" => "Mandate" + ], + "incl_index_slideshow" => [ + "slide1" => "Find the right proffessional for you.

For all your needs.

AlphaJob", + "slide2" => "Only the bests proffessionals can register!

Quality of work guarantee!

AlphaJob", + "slide3" => "Find the bests offers for your website today.

Discover our ready to use solutions.

AlphaJob" + ] +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/en/title.php b/Templates/Includes/en/title.php new file mode 100644 index 0000000..c4fbeca --- /dev/null +++ b/Templates/Includes/en/title.php @@ -0,0 +1,20 @@ + "AlphaJob - Index", + "login" => "AlphaJob - Login", + "message" => "AlphaJob - Message", + "mission" => "AlphaJob - Manage a mission", + "myMission" => "AlphaJob - My missions", + "register" => "AlphaJob - Register", + "userInfo" => "AlphaJob - My user informations", + "admin" => "AlphaJob - Administration" +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/fr/message.php b/Templates/Includes/fr/message.php new file mode 100644 index 0000000..424ff1e --- /dev/null +++ b/Templates/Includes/fr/message.php @@ -0,0 +1,222 @@ + [ + "success" => [ + "success" => true, + "title" => "Mise à jour des informations.", + "info" => "Informations mise à jour!", + "timer" => true, + "toSrc" => true + ] + ], + // Login sans cookie + "login" => [ + "success" => [ + "success" => true, + "title" => "Connection.", + "info" => "Connection réussie!", + "timer" => true, + "toSrc" => false + ], + "fail" => [ + "success" => false, + "title" => "Connection.", + "info" => "Erreur, connection échouée.", + "timer" => true, + "toSrc" => true + ] + ], + // Login avec cookie + "loginCookie" => [ + "success" => [ + "success" => true, + "title" => "", + "info" => "", + "timer" => false, + "toSrc" => false + ], + "fail" => [ + "success" => false, + "title" => "Connection avec auto-connection.", + "info" => "Erreur, connection échouée.", + "timer" => true, + "toSrc" => false + ] + ], + // Log out + "logout" => [ + "success" => [ + "success" => true, + "title" => "Déconnection.", + "info" => "Vous êtes déconnecté!", + "timer" => true, + "toSrc" => false + ] + ], + // Ajout mission + "missionRegister" => [ + "success" => [ + "success" => true, + "title" => "Requête de mission.", + "info" => "La requete a été émise!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Requête de mission.", + "info" => "Erreur lors de la requête.", + "timer" => true, + "toSrc" => true + ] + ], + // Acceptation d'une mission + "missionAccepted" => [ + "success" => [ + "success" => true, + "title" => "Mission info.", + "info" => "Mission acceptée!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Mission info.", + "info" => "Erreur, mission non acceptée.", + "timer" => true, + "toSrc" => true + ] + ], + // Validation d'une mission + "missionValidated" => [ + "success" => [ + "success" => true, + "title" => "Mission info.", + "info" => "Mission completée!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Mandate info.", + "info" => "Erreur, mission non enregistrée comme completée.", + "timer" => true, + "toSrc" => true + ] + ], + // Ajout d'un commentaire & note + "missionReview" => [ + "success" => [ + "success" => true, + "title" => "Avis sur la mission.", + "info" => "Votre avis a bien été enregistré!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Avis sur la mission.", + "info" => "Erreur, votre avis n'a pas été enregistré.", + "timer" => true, + "toSrc" => true + ] + ], + // Ajout utilisateur + "userAdd" => [ + "success" => [ + "success" => true, + "title" => "Enregistrement d'un utilisateur.", + "info" => "Utilisateur enregistré!", + "timer" => true, + "toSrc" => false + ], + "fail" => [ + "success" => false, + "title" => "Enregistrement d'un utilisateur.", + "info" => "Erreur, l'utilisateur n'a pas été enregistré.", + "timer" => true, + "toSrc" => true + ] + ], + // Delete utilisateur + "adminDelUser" => [ + "success" => [ + "success" => true, + "title" => "Suppression d'un utilisateur.", + "info" => "Utilisateur supprimé!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Suppression d'un utilisateur.", + "info" => "Erreur, l'utilisateur n'a pas été supprimé.", + "timer" => true, + "toSrc" => true + ] + ], + // Ajout categorie + "adminAddJob" => [ + "success" => [ + "success" => true, + "title" => "Ajout d'une catégorie d'emploi.", + "info" => "La catégorie a bien été ajoutée!", + "timer" => true, + "toSrc" => true + ], + "fail" => [ + "success" => false, + "title" => "Ajout d'une catégorie d'emploi.", + "info" => "Erreur, la catégorie n'a pas été ajoutée.", + "timer" => true, + "toSrc" => true + ] + ], + // Suppression categorie + "adminDelJob" => [ + "success" => [ + "success" => true, + "title" => "Suppression d'une catégorie.", + "info" => "Categorie supprimée!", + "timer" => true, + "toSrc" => true + ], + "delete" => [ + "success" => false, + "title" => "Suppression d'une catégorie.", + "info" => "Erreur, la catégorie n'a pas été supprimée.", + "timer" => true, + "toSrc" => true + ] + ], + // Suppression mission + "adminDelMission" => [ + "success" => [ + "success" => true, + "title" => "Suppression d'une mission.", + "info" => "Mission supprimée!", + "timer" => true, + "toSrc" => true + ], + "delete" => [ + "success" => false, + "title" => "Suppression d'une mission.", + "info" => "Erreur, la mission n'a pas été supprimée.", + "timer" => true, + "toSrc" => true + ] + ] +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/fr/table.php b/Templates/Includes/fr/table.php new file mode 100644 index 0000000..29246e5 --- /dev/null +++ b/Templates/Includes/fr/table.php @@ -0,0 +1,86 @@ + [ + "ID utilisateur", + "Email", + "Mot de passe chiffré", + "Jeton d'auto-connection", + "Date d'inscription", + "Status de l'utilisateur" + ], + // En-tête des colonnes du tableau des missions de l'admin. + "adminMissions" => [ + "ID mission", + "Date de mandatement", + "Sujet", + "Note", + "Avis", + "Date d'acceptation par le pro", + "Date de validation du client", + "Date de validation du pro", + "ID du client", + "ID du pro", + "Emploi" + ], + // En-tête des colonnes du tableau Search de l'index. + "search" => [ + "Nom", + "Prénom", + "Emploi", + "Capacités", + "Nombre de mission", + "Note", + "Etoile" + ], + // En-tête des colonnes du tableau More infos de l'index. + "moreInfos" => [ + "Nom", + "Prénom", + "Emploi", + "Diplôme", + "Capacités", + "Description", + "Numéro de téléphone", + "Adresse", + "Code postal", + "Ville" + ], + // En-tête des colonnes du tableau mes missions. + "pendingMissions" => [ + "Requete emise le", + "Nom du pro", + "Emploi", + "Sujet" + ], + // En-tête des colonnes du tableau mes missions. + "ongoingMissions" => [ + "Accpeté par le pro le", + "Nom du pro", + "Emploi", + "Sujet", + "Date de validation du client", + "Date de validation du pro" + ], + // En-tête des colonnes du tableau mes missions. + "completedMissions" => [ + "Requete emise le", + "Débuté le", + "Validé par le client le", + "Validé par le pro le", + "Nom du pro", + "Emploi", + "Sujet", + "Avis", + "Note" + ] +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/fr/text.php b/Templates/Includes/fr/text.php new file mode 100644 index 0000000..030d32f --- /dev/null +++ b/Templates/Includes/fr/text.php @@ -0,0 +1,100 @@ + [ + "btManageJob" => "Gestion des emplois", + "btManageUser" => "Gestion des utilisateurs", + "btManageMission" => "Gestion des missions", + "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.", + "formDel" => "ID à supprimer", + "submitDel" => "Supprimer", + ], + "incl_global_footer" => [ + "main" => "Réalisé par Debulois Quentin pour mon dossier professionel.
Decembre 2021, tous droits réservés.", + ], + "incl_form_userInfo" => [ + "h2" => "Informations sur l'utilisateur.", + "lastname" => "Nom", + "firstname" => "Prénom", + "phoneNumber" => "Numéro de télephone", + "adress" => "Adresse", + "zipCode" => "Code postal", + "city" => "Ville", + "jobsSel" => "Emplois", + "jobsAdd" => "Ajouter", + "degree" => "Diplômes", + "capability" => "Capacités", + "description" => "Description", + "submit" => "Modifier" + ], + "incl_form_login" => [ + "h2" => "Identification", + "email" => "Email", + "password" => "Mot de passe", + "rememberMe" => "Se souvenir de moi", + "submit" => "Connection" + ], + "incl_form_mission" => [ + "h2" => "Formulaire pour enregistrer une mission", + "subject" => "Sujet", + "review" => "Commentaire", + "proId" => "ID du pro", + "submit" => "Enregistrer", + "jobsSel" => "Emplois" + ], + "incl_table_myMission" => [ + "pendingMission" => "Missions en attente", + "ongoingMission" => "Missions en cours", + "completedMission" => "Missions terminées", + "accept" => "Accepter", + "validate" => "Valider" + ], + "incl_global_navbar" => [ + "h2" => "AlphaJob", + "btnSearch" => "Rechercher", + "btnInfos" => "Modif. infos", + "btnMission" => "Enreg. mission", + "btnMyMission" => "Mes missions", + "btnAdmin" => "Administration", + "btnLogin" => "Connection", + "btnLogout" => "Déconnection", + "btnRegister" => "Inscription", + "lang" => "Langue", + "btnLang" => "Sélectionner" + ], + "incl_form_register" => [ + "h2" => "Formulaire d'inscription", + "email" => "Email", + "password" => "Mot de passe", + "notice" => "Admin est présent pour les besoins de l'examen uniquement:", + "isClient" => "Est client?", + "isPro" => "Est pro?", + "isAdmin" => "Est admin?", + "submit" => "S'inscrire" + ], + "incl_index_search" => [ + "h2" => "Rechercher un professionnel", + "searchBarName" => "Recherche par nom", + "searchBarJob" => "Recherche par catégorie", + "submit" => "Rechercher", + "moreInfo" => "Plus d'infos", + "mandate" => "Mandater" + ], + "incl_index_slideshow" => [ + "slide1" => "Trouvez le proffessionel idéal proche de chez vous.

Pour tous vos besoins.

AlphaJob", + "slide2" => "Seuls les meilleurs professionnels sont acceptés.

Qualité guarantie.

AlphaJob", + "slide3" => "Les meilleurs offres pour créer votre site Web.

Découvrez nos solutions clefs en main.

AlphaJob" + ] +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/fr/title.php b/Templates/Includes/fr/title.php new file mode 100644 index 0000000..49285a2 --- /dev/null +++ b/Templates/Includes/fr/title.php @@ -0,0 +1,20 @@ + "AlphaJob - Index", + "login" => "AlphaJob - Connection", + "message" => "AlphaJob - Message", + "mission" => "AlphaJob - Gestion d'une mission", + "myMission" => "AlphaJob - Mes missions", + "register" => "AlphaJob - Inscription", + "userInfo" => "AlphaJob - Mes informations", + "admin" => "AlphaJob - Administration" +]; + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_form_admin.php b/Templates/Includes/incl_form_admin.php new file mode 100644 index 0000000..52430d9 --- /dev/null +++ b/Templates/Includes/incl_form_admin.php @@ -0,0 +1,198 @@ + +
'.PHP_EOL); + +// **************************************************************************** +// DIV PRINCIPALE +// **************************************************************************** +echo(' +
'.PHP_EOL); + +// **************************************************************************** +// BOUTTONS DE NAVIGATION +// **************************************************************************** +echo(' +
+ + + +
'.PHP_EOL); + +// **************************************************************************** +// SECTION AJOUT/SUPPRESSION D'EMPLOI +// **************************************************************************** +// Form pour ajout et form pour suppression d'une catégorie d'emploi +echo(' +
+
+ + +
+ +
+ + +
+
'.PHP_EOL); + +// **************************************************************************** +// SECTION POUR LA SUPPRSION D'UTILISATEUR ET TABLEAU +// **************************************************************************** +// Form pour suppression d'un utilisateur +echo(' +
+
+ + +
'.PHP_EOL); + +// Récupération de tous les utilisateurs. +$allUsers = $dbadmin->get_all_users_account(); +// Affichage du tableau. +echo(" + + + ".PHP_EOL); +// Affichage des en-tête de colonne. +for ($i = 0; $i < count($header["adminUsers"]); $i++) { + echo(" ".PHP_EOL); +} +echo(" ".PHP_EOL); +// Affichage du résultat de la récupération de tous les utilisateurs. +for ($i = 0; $i < count($allUsers); $i++) { + echo(" + ".PHP_EOL); + foreach ($allUsers[$i] as $key => $value) { + switch ($key) { + case "userStatus": + switch ($value) { + case 0: + echo(" ".PHP_EOL); + break; + case 1: + echo(" ".PHP_EOL); + break; + case 2: + echo(" ".PHP_EOL); + break; + } + break; + default: + echo(" ".PHP_EOL); + break; + } + } + echo(" ".PHP_EOL); +} +echo('
".$header["adminUsers"][$i]."
Admin
Pro
Client
".$value."
+
'.PHP_EOL); + +// **************************************************************************** +// SECTION POUR LA SUPPRESSION D'UNE MISSION ET TABLEAU +// **************************************************************************** +// Form pour suppression d'une mission +echo(' +
+
+ + +
'.PHP_EOL); + +// Récupération de toutes les missions et des infos des utilisateurs. +$allMissions = $dbmission->get_all_missions(); +// Affichage du tableau. +echo(" + + + ".PHP_EOL); +// Affichage des en-tête de colonne. +for ($i = 0; $i < count($header["adminMissions"]); $i++) { + echo(" ".PHP_EOL); +} +echo(" ".PHP_EOL); +// Affichage du résultat de la récupération de tous les utilisateurs. +for ($i = 0; $i < count($allMissions); $i++) { + echo(" + ".PHP_EOL); + for ($j = 0; $j < count($allMissions[$i]); $j++) { + switch ($j) { + case 8 : + case 9 : + $userInfo = $dbsearch->get_user_info_by_userid($allMissions[$i][$j]); + if ($userInfo && $userInfo[0]["lastname"] !== "") { + echo(" ".PHP_EOL); + } else { + echo(" ".PHP_EOL); + } + break; + case 10: + $job = $dbsearch->get_job_by_jobid($allMissions[$i][$j]); + if ($job && $job[0]["jobCategoryName".ucwords($_SESSION["lang"])] !== "") { + echo(" ".PHP_EOL); + } else { + echo(" ".PHP_EOL); + } + break; + default: + echo(" ".PHP_EOL); + break; + } + } + echo(" ".PHP_EOL); +} +echo('
".$header["adminMissions"][$i]."
".$userInfo[0]["lastname"]."
 N/A 
".$job[0]["jobCategoryName".ucwords($_SESSION["lang"])]."
 N/A 
".$allMissions[$i][$j]."
+
'.PHP_EOL); + +echo(' +
'); + +// **************************************************************************** +// FIN DIV PRINCIPALE +// **************************************************************************** +echo('
'.PHP_EOL); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_form_login.php b/Templates/Includes/incl_form_login.php new file mode 100644 index 0000000..d0e8b25 --- /dev/null +++ b/Templates/Includes/incl_form_login.php @@ -0,0 +1,41 @@ + +
'); + +// **************************************************************************** +// DIV PRINCIPALE AVEC TITRE ET FORM DE CONNEXION +// **************************************************************************** +echo(' +
+

'.$text[basename(__FILE__, ".php")]["h2"].'

+
+ + + + +
+
'.PHP_EOL); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_form_mission.php b/Templates/Includes/incl_form_mission.php new file mode 100644 index 0000000..b378b93 --- /dev/null +++ b/Templates/Includes/incl_form_mission.php @@ -0,0 +1,95 @@ + 0 +) { + // **************************************************************************** + // SEPARATEUR + // **************************************************************************** + echo(' +
'); + + // **************************************************************************** + // DIV PRINCIPALE AVEC TITRE ET FORM POUR MANDATEMENT DE MISSION + // **************************************************************************** + echo(' +
+

'.$text[basename(__FILE__, ".php")]["h2"].'

+
+ + + + +
+
'.PHP_EOL); + unset($_SESSION["missionInitiate"]); + +// Si la mission est terminée on permet de laisser un avis +} elseif (isset($_SESSION["missionCompleted"]) + && count($_SESSION["missionCompleted"]) > 0 +) { + // **************************************************************************** + // SEPARATEUR + // **************************************************************************** + echo(' +
'); + + // **************************************************************************** + // DIV PRINCIPALE AVEC TITRE ET FORMULAIRE D'ENREGISTREMENT D'UN AVIS + // **************************************************************************** + echo(' +
+

'.$text[basename(__FILE__, ".php")]["h2"].'

+
+ + + + +
+
'.PHP_EOL); + unset($_SESSION["missionCompleted"]); + +// Sinon renvoie vers mes mission (F5 w/ unset) +} else { + header("Location: /Templates/myMission.php"); + die(); +} + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_form_register.php b/Templates/Includes/incl_form_register.php new file mode 100644 index 0000000..7dd324c --- /dev/null +++ b/Templates/Includes/incl_form_register.php @@ -0,0 +1,42 @@ + +
'); + +// **************************************************************************** +// DIV PRINCIPALE AVEC TITRE ET FORMULAIRE POUR S'INSCRIRE +// **************************************************************************** +echo(' +
+

'.$text[basename(__FILE__, ".php")]["h2"].'

+ +
+ + + + + + + +
+
'.PHP_EOL); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_form_userInfo.php b/Templates/Includes/incl_form_userInfo.php new file mode 100644 index 0000000..5873a5a --- /dev/null +++ b/Templates/Includes/incl_form_userInfo.php @@ -0,0 +1,137 @@ +get_user_info_by_userid($_SESSION["userId"]); + +// Si pas encore d'infos pour cette utilisateur on initialise avec des champs vide +if (!$info) { + $info = [ + ["lastname" => "", + "firstname" => "", + "phoneNumber" => "", + "adress" => "", + "zipCode" => "", + "city" => "", + "degree" => "", + "capability" => "", + "description" => ""] + ]; +} + +// **************************************************************************** +// SEPARATEUR +// **************************************************************************** +echo(' +
'); + +// **************************************************************************** +// DIV PRINCIPALE AVEC TITRE ET FORMULAIRE COMMUN AUX PROS ET CLIENTS +// **************************************************************************** +echo(' +
+ +

'.$text[basename(__FILE__, ".php")]["h2"].'

+
+ + + + + + '.PHP_EOL); + +// **************************************************************************** +// EXTENSION DU FORMULAIRE AVEC LA PARTIE UNIQUEMENT RESERVEE AUX PROS +// **************************************************************************** +if ($_SESSION["userStatus"] == 1) { + // Récupération de tous les emplois ainsi que ceux deja sélectionnés par le pro + $allJobs = $dbsearch->get_job_all(); + $proJobs = $dbsearch->get_pro_job_by_proid($_SESSION["userId"]); + + // **************************************************************************** + // PARTIE SELECTION D'UN EMPLOI + // **************************************************************************** + echo(' '.PHP_EOL); + + // **************************************************************************** + // PARTIE EMPLOI DEJA SELECTIONNE + // **************************************************************************** + echo('
    '.PHP_EOL); + for ($i = 0; $i < count($proJobs); $i++) { + echo('
  • '.$proJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'
  • '.PHP_EOL); + } + echo('
+ '.PHP_EOL); + + // **************************************************************************** + // PARTIE DIPLOME, CAPACITES & DESCRIPTION + // **************************************************************************** + echo(' + + '.PHP_EOL); + + // **************************************************************************** + // CHARGEMENT ET DECLENCHEMENT DU JAVASCRIPT DEDIE A CETTE PAGE + // **************************************************************************** + echo(' + '); +} + +// **************************************************************************** +// FIN DU FORM ET DE LA DIV PRINCIPALE +// **************************************************************************** +echo(' +
+
'); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_global_footer.php b/Templates/Includes/incl_global_footer.php new file mode 100644 index 0000000..a11ed02 --- /dev/null +++ b/Templates/Includes/incl_global_footer.php @@ -0,0 +1,26 @@ + +
'.PHP_EOL); + +// **************************************************************************** +// PIED DE PAGE +// **************************************************************************** +echo(' +'.PHP_EOL) + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_global_header.php b/Templates/Includes/incl_global_header.php new file mode 100644 index 0000000..3ad0965 --- /dev/null +++ b/Templates/Includes/incl_global_header.php @@ -0,0 +1,22 @@ + + + + + + + + +'.PHP_EOL); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_global_message.php b/Templates/Includes/incl_global_message.php new file mode 100644 index 0000000..1afcb02 --- /dev/null +++ b/Templates/Includes/incl_global_message.php @@ -0,0 +1,71 @@ + +
'); + +// **************************************************************************** +// DIV PRINCIPALE ET TITRE +// **************************************************************************** +echo(' +
+

'.$messageText[$name][$status]["title"].'

'); + +// **************************************************************************** +// TITRE POUR SIGNIFIER SI L'OPERATION A REUSSI OU NON +// **************************************************************************** +if ($messageText[$name][$status]["success"]) { + echo('

'.$success.'

'); +} else { + echo('

'.$error.'

'); +} + +// **************************************************************************** +// TEXTE PRINCIPAL +// **************************************************************************** +echo(' +

'.$messageText[$name][$status]["info"].'

+

'.$redirect.'

+ +'); + +// **************************************************************************** +// RECUPERATION DE LA PAGE VERS LAQUELLE REDIRIGER SI CE N'EST PAS L'INDEX +// **************************************************************************** +if ($messageText[$name][$status]["toSrc"]) { + if ($_SESSION["src"] !== "index") { + $dest = "Templates/".$_SESSION["src"]; + } else { + $dest = "index"; + } +} else { + $dest = "index"; +} + +// **************************************************************************** +// DECLENCHEMENT DU JAVASCRIPT AVEC LA PAGE DE DESTINATION DONNEE EN ARGUMENT +// **************************************************************************** +if ($messageText[$name][$status]["timer"]) { + echo(' + '); +} else { + echo(' + '); +} + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_global_navbar.php b/Templates/Includes/incl_global_navbar.php new file mode 100644 index 0000000..899fa90 --- /dev/null +++ b/Templates/Includes/incl_global_navbar.php @@ -0,0 +1,72 @@ + https://www.php.net/manual/fr/control-structures.switch.php +// https://stackoverflow.com/questions/6330114/do-you-need-break-in-switch-when-return-is-used + +// Import des textes en fonction de la langue définie dans la variable "lang" de la session. +require_once(dirname( __FILE__ )."./".$_SESSION["lang"]."/text.php"); + +// Navbar avec titre et bouttons de navigations en fonction du type de compte +echo(' +'.PHP_EOL); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_index_search.php b/Templates/Includes/incl_index_search.php new file mode 100644 index 0000000..cad6f2d --- /dev/null +++ b/Templates/Includes/incl_index_search.php @@ -0,0 +1,184 @@ + +
'); + +// **************************************************************************** +// DIV PRINCIPALE +// **************************************************************************** +echo(' +
'.PHP_EOL); + +// Form pour la recherche par nom et envoi au wrappeur. +echo(' +

'.$text[basename(__FILE__, ".php")]["h2"].'

+
+
+ + +
+
+ + +
+
'.PHP_EOL); + +// Si l'index est chargé avec des données dans la variable "search" de la session, +// c'est qu'une recherche à été effectuée, on affiche alors le contenu de cette recherche en tableau. +if (isset($_SESSION["search"])) { + echo(""); + // Si la variable isResearch est vrai, c'est une rechreche. + if ($_SESSION["search"]["isResearch"]) { + echo(""); + for ($i = 0; $i < count($header["search"]); $i++) { + echo(""); + } + echo(""); + foreach ($_SESSION["search"]["result"] as $result) { + echo(""); + echo(""); + echo(""); + // jobs + if (count($result["jobs"]) > 0) { + $jobsName = array(); + for ($i = 0; $i < count($result["jobs"]); $i++) { + array_push($jobsName, $result["jobs"][$i]["jobCategoryName".ucwords($_SESSION["lang"])]); + } + echo(""); + } else { + echo(''); + } + echo(""); + echo(""); + echo(""); + // I'm a star !! + if ($result["star"]) { + echo('"); + } else { + echo(''); + } + // Si c'est une recherche on ajoute le bouton plus d'info, + // pour plus d'info avec une recherche par Id. + echo(' + '); + } + echo("
".$header["search"][$i]."
".$result["lastname"]."
".$result["firstname"]."
".join(", ", $jobsName)."
N/A
".$result["capability"]."
".$result["numberOfMissions"]."
".$result["note"]."
'); + $missingStar = 5 - $result["star"]; + for ($i = 0; $i < $result["star"]; $i++) { + echo(''); + } + if ($missingStar) { + for ($i = 0; $i < $missingStar; $i++) { + echo(''); + } + } + echo("N/A +
+ + +
+
"); + + // Sinon c'est un "Plus d'info". + } else { + echo(' +
'.$header["moreInfos"][0].'
+
'.$_SESSION["search"]["result"][0]["lastname"].'
+ + +
'.$header["moreInfos"][1].'
+
'.$_SESSION["search"]["result"][0]["firstname"].'
+ '); + // jobs + if (count($_SESSION["search"]["result"][0]["jobs"]) > 0) { + $jobsName = array(); + for ($i = 0; $i < count($_SESSION["search"]["result"][0]["jobs"]); $i++) { + array_push($jobsName, $_SESSION["search"]["result"][0]["jobs"][$i]["jobCategoryName".ucwords($_SESSION["lang"])]); + } + echo(' +
'.$header["moreInfos"][2].'
+
'.join(", ", $jobsName).'
+ '); + } else { + echo(' +
'.$header["moreInfos"][2].'
+ N/A + '); + } + echo(' +
'.$header["moreInfos"][3].'
+
'.$_SESSION["search"]["result"][0]["degree"].'
+ + +
'.$header["moreInfos"][4].'
+
'.$_SESSION["search"]["result"][0]["capability"].'
+ + +
'.$header["moreInfos"][5].'
+
'.$_SESSION["search"]["result"][0]["description"].'
+ + +
'.$header["moreInfos"][6].'
+
'.$_SESSION["search"]["result"][0]["phoneNumber"].'
+ + +
'.$header["moreInfos"][7].'
+
'.$_SESSION["search"]["result"][0]["adress"].'
+ + +
'.$header["moreInfos"][8].'
+
'.$_SESSION["search"]["result"][0]["zipCode"].'
+ + +
'.$header["moreInfos"][9].'
+
'.$_SESSION["search"]["result"][0]["city"].'
+ + +
+ + +
'); + } +} + +echo(' +
'); + +// **************************************************************************** +// FIN DIV PRINCIPALE +// **************************************************************************** +echo('
'); + +// On supprime la variable de recherche si elle existe. +unset($_SESSION["search"]); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_index_slideshow.php b/Templates/Includes/incl_index_slideshow.php new file mode 100644 index 0000000..261fd2e --- /dev/null +++ b/Templates/Includes/incl_index_slideshow.php @@ -0,0 +1,34 @@ + +
'); + +// **************************************************************************** +// SLIDESHOW +// **************************************************************************** +echo(' +
+

'.$text[basename(__FILE__, ".php")]["slide1"].'

+

'.$text[basename(__FILE__, ".php")]["slide2"].'

+

'.$text[basename(__FILE__, ".php")]["slide3"].'

+ +
+ + + +
+
'.PHP_EOL); + +?> \ No newline at end of file diff --git a/Templates/Includes/incl_table_myMission.php b/Templates/Includes/incl_table_myMission.php new file mode 100644 index 0000000..5e0a7a8 --- /dev/null +++ b/Templates/Includes/incl_table_myMission.php @@ -0,0 +1,183 @@ + [], + "ongoing" => [], + "completed" => [] +]; + +// Recherches des missions avec l'id de l'utilisateur actuellement connecté. +switch ($_SESSION["userStatus"]) { + case 1: + $result = $dbmission->get_mission_by_proid($_SESSION["userId"]); + for ($i = 0; $i < count($result); $i++) { + $result[$i]["jobCategoryId"] = $dbsearch->get_job_by_jobid($result[$i]["jobCategoryId"]); + } + break; + case 2: + $result = $dbmission->get_mission_by_clientid($_SESSION["userId"]); + for ($i = 0; $i < count($result); $i++) { + $result[$i]["jobCategoryId"] = $dbsearch->get_job_by_jobid($result[$i]["jobCategoryId"]); + } + break; + default: + break; +} + +// Puis on dispatch les missions dans leur categorie +for ($i = 0; $i < count($result); $i++) { + if (!$result[$i]["acceptedByPro"] + ) { + array_push($missionStatus["pending"], $result[$i]); + } elseif (!$result[$i]["validatedByPro"] + || !$result[$i]["validatedByClient"] + ) { + array_push($missionStatus["ongoing"], $result[$i]); + } else { + array_push($missionStatus["completed"], $result[$i]); + } +} + +// **************************************************************************** +// SEPARATEUR +// **************************************************************************** +echo(' +
'); + +// **************************************************************************** +// DIV PRINCIPALE +// **************************************************************************** +echo(' +
'); + +// **************************************************************************** +// BOUTTONS DE NAVIGATION +// **************************************************************************** +echo('
+ + + +
'.PHP_EOL); + +// **************************************************************************** +// TABLEAU DES MISSIONS EN ATTENTE +// **************************************************************************** +echo(' + + '.PHP_EOL); +foreach($header["pendingMissions"] as $columnHeader) { + echo(" ".PHP_EOL); +} +echo(" ".PHP_EOL); +foreach ($missionStatus["pending"] as $rows) { + echo(' + + + + + '); + if ($_SESSION["userId"] == $rows["proId"]) { + echo(' '); + } + echo(' '.PHP_EOL); +} +echo('
".$columnHeader."
'.$rows["date"].'
'.$rows["lastname"].'
'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'
'.$rows["subject"].'
+
+ + +
+
'); + +// **************************************************************************** +// TABLEAU DES MISSIONS EN COURS +// **************************************************************************** +echo(' + + '.PHP_EOL); +foreach($header["ongoingMissions"] as $columnHeader) { + echo(" ".PHP_EOL); +} +echo(" ".PHP_EOL); +foreach ($missionStatus["ongoing"] as $rows) { + echo(' + + + + + + + '); + if (!$rows["validatedByClient"] && $_SESSION["userStatus"] == 2 + || (!$rows["validatedByPro"] && $_SESSION["userStatus"] == 1) + ) { + echo(' '); + } + echo(' '.PHP_EOL); +} +echo('
".$columnHeader."
'.$rows["acceptedByPro"].'
'.$rows["lastname"].'
'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'
'.$rows["subject"].'
'.$rows["validatedByClient"].'
'.$rows["validatedByPro"].'
+
+ + +
+
'); + +// **************************************************************************** +// TABLEAU DES MISSIONS TERMINEES +// **************************************************************************** +echo(' + + '.PHP_EOL); +foreach($header["completedMissions"] as $columnHeader) { + echo(" ".PHP_EOL); +} +echo(" ".PHP_EOL); +foreach ($missionStatus["completed"] as $rows) { + echo(' + + + + + + + + '); + if ($rows["review"]) { + echo(''); + } else { + echo(''); + } + if ($rows["note"]) { + echo(''); + } else { + echo(''); + } + echo(''.PHP_EOL); +} +echo('
".$columnHeader."
'.$rows["date"].'
'.$rows["acceptedByPro"].'
'.$rows["validatedByClient"].'
'.$rows["validatedByPro"].'
'.$rows["lastname"].'
'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'
'.$rows["subject"].'
'.$rows["review"].'
N/A
'.$rows["note"].'
N/A
+ +
'); + +// **************************************************************************** +// FIN DIV PRINCIPALE +// **************************************************************************** +echo('
'.PHP_EOL); + +?> \ No newline at end of file diff --git a/Templates/admin.php b/Templates/admin.php new file mode 100644 index 0000000..fb4eeb0 --- /dev/null +++ b/Templates/admin.php @@ -0,0 +1,45 @@ + + + + +'.PHP_EOL); ?> + + + + +".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> + + + + + + + + + + \ No newline at end of file diff --git a/Templates/autoLogin.php b/Templates/autoLogin.php new file mode 100644 index 0000000..9395e13 --- /dev/null +++ b/Templates/autoLogin.php @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/Templates/login.php b/Templates/login.php new file mode 100644 index 0000000..5c8f71a --- /dev/null +++ b/Templates/login.php @@ -0,0 +1,36 @@ + + + + +'.PHP_EOL); ?> + + + + +".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> + + + + + + + + + \ No newline at end of file diff --git a/Templates/logout.php b/Templates/logout.php new file mode 100644 index 0000000..f7f9d85 --- /dev/null +++ b/Templates/logout.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/Templates/message.php b/Templates/message.php new file mode 100644 index 0000000..31f2a9b --- /dev/null +++ b/Templates/message.php @@ -0,0 +1,41 @@ + + + + +'.PHP_EOL); ?> + + + + +".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> + + + + + + + + + + diff --git a/Templates/mission.php b/Templates/mission.php new file mode 100644 index 0000000..59ab34a --- /dev/null +++ b/Templates/mission.php @@ -0,0 +1,47 @@ + + + + +'.PHP_EOL); ?> + + + + +".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> + + + + + + + + + \ No newline at end of file diff --git a/Templates/myMission.php b/Templates/myMission.php new file mode 100644 index 0000000..20d8bb7 --- /dev/null +++ b/Templates/myMission.php @@ -0,0 +1,48 @@ + + + + +'.PHP_EOL); ?> + + + + +".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> + + + + + + + + + + \ No newline at end of file diff --git a/Templates/register.php b/Templates/register.php new file mode 100644 index 0000000..86a60b0 --- /dev/null +++ b/Templates/register.php @@ -0,0 +1,36 @@ + + + + +'.PHP_EOL); ?> + + + + +".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> + + + + + + + + + \ No newline at end of file diff --git a/Templates/userInfo.php b/Templates/userInfo.php new file mode 100644 index 0000000..50b4928 --- /dev/null +++ b/Templates/userInfo.php @@ -0,0 +1,45 @@ + + + + +'.PHP_EOL); ?> + + + + +".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> + + + + + + + + + \ No newline at end of file diff --git a/Views/Includes/en/message.php b/Views/Includes/en/message.php deleted file mode 100644 index 344b0b8..0000000 --- a/Views/Includes/en/message.php +++ /dev/null @@ -1,200 +0,0 @@ - [ - "success" => [ - "success" => true, - "title" => "Update user information.", - "info" => "User informations updated !", - "timer" => true, - "toSrc" => true - ] - ], - // Login sans cookie - "login" => [ - "success" => [ - "success" => true, - "title" => "Login.", - "info" => "Successfully logged in!", - "timer" => true, - "toSrc" => false - ], - "fail" => [ - "success" => false, - "title" => "Login.", - "info" => "Error bad credentials.", - "timer" => true, - "toSrc" => true - ] - ], - // Login avec cookie - "loginCookie" => [ - "success" => [ - "success" => true, - "title" => "", - "info" => "", - "timer" => false, - "toSrc" => false - ], - "fail" => [ - "success" => false, - "title" => "Login cookie.", - "info" => "Error with the cookie auto-login.", - "timer" => true, - "toSrc" => false - ] - ], - // Log out - "logout" => [ - "success" => [ - "success" => true, - "title" => "Log out.", - "info" => "Successefuly logged out!", - "timer" => true, - "toSrc" => false - ] - ], - // Ajout mission - "missionRegister" => [ - "success" => [ - "success" => true, - "title" => "Register a mission.", - "info" => "Mission registered !", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Mandate a mission.", - "info" => "Error, please sign-in before.", - "timer" => true, - "toSrc" => true - ] - ], - // Acceptation d'une mission - "missionAccepted" => [ - "success" => [ - "success" => true, - "title" => "Mission info.", - "info" => "Mission accepted !", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Mandate infos.", - "info" => "Error, mission not accepted.", - "timer" => true, - "toSrc" => true - ] - ], - // Validation d'une mission - "missionValidated" => [ - "success" => [ - "success" => true, - "title" => "Mission info.", - "info" => "Mission completed!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Mandate info.", - "info" => "Error, mission not marked as completed.", - "timer" => true, - "toSrc" => true - ] - ], - // Ajout d'un commentaire & note - "missionReview" => [ - "success" => [ - "success" => true, - "title" => "Mission review.", - "info" => "Your review has been registered!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Mission review.", - "info" => "Error, your review has not been resgistered.", - "timer" => true, - "toSrc" => true - ] - ], - // Ajout utilisateur - "userAdd" => [ - "success" => [ - "success" => true, - "title" => "Register an user.", - "info" => "User successfully registered !", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Register an user.", - "info" => "Error, user not registered.", - "timer" => true, - "toSrc" => true - ] - ], - // Delete utilisateur - "adminDelUser" => [ - "success" => [ - "success" => true, - "title" => "Delete an user.", - "info" => "User deleted !", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Delete an user.", - "info" => "No user was deleted.", - "timer" => true, - "toSrc" => true - ] - ], - // Ajout categorie - "adminAddJob" => [ - "success" => [ - "success" => true, - "title" => "Add a job category.", - "info" => "Category added !", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Add a job category.", - "info" => "Category not added.", - "timer" => true, - "toSrc" => true - ] - ], - // Suppression categorie - "adminDelJob" => [ - "success" => [ - "success" => true, - "title" => "Deletion of a job category.", - "info" => "Category deleted !", - "timer" => true, - "toSrc" => true - ], - "delete" => [ - "success" => false, - "title" => "Deletion of a job category.", - "info" => "Category not deleted !", - "timer" => true, - "toSrc" => true - ] - ], -]; -?> \ No newline at end of file diff --git a/Views/Includes/en/table.php b/Views/Includes/en/table.php deleted file mode 100644 index 93a0e86..0000000 --- a/Views/Includes/en/table.php +++ /dev/null @@ -1,67 +0,0 @@ - [ - "ID Number", - "Email", - "Crypted Password", - "Token for auto-login", - "Inscription date", - "User status" - ], - // En-tête des colonnes du tableau Search de l'index. - "search" => [ - "Last name", - "First name", - "Job", - "Capabilities", - "Number of missions", - "Note", - "Stars" - ], - // En-tête des colonnes du tableau More infos de l'index. - "moreInfos" => [ - "Last name", - "First name", - "Job", - "Degree", - "Capabilities", - "Description", - "Phone number", - "Adress", - "Zip code", - "City" - ], - // En-tête des colonnes du tableau mes missions. - "pendingMissions" => [ - "Request date", - "Pro name", - "Job", - "Subject" - ], - // En-tête des colonnes du tableau mes missions. - "ongoingMissions" => [ - "Accpeted by pro date", - "Pro name", - "Job", - "Subject", - "Validated by client date", - "Validated by pro date" - ], - // En-tête des colonnes du tableau mes missions. - "completedMissions" => [ - "Request date", - "Started date", - "Validation by client date", - "Validation by pro date", - "Pro name", - "job", - "Subject", - "Review", - "Note" - ] -]; -?> \ No newline at end of file diff --git a/Views/Includes/en/text.php b/Views/Includes/en/text.php deleted file mode 100644 index 21e273b..0000000 --- a/Views/Includes/en/text.php +++ /dev/null @@ -1,93 +0,0 @@ - [ - "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.
December 2021, all rights reserved.", - ], - "incl_form_userInfo" => [ - "h2" => "Informations about the user.", - "lastname" => "Last name", - "firstname" => "First name", - "phoneNumber" => "Phone number", - "adress" => "Adress", - "zipCode" => "Zip code", - "city" => "City", - "jobsSel" => "Jobs", - "jobsAdd" => "Add", - "degree" => "Degree", - "capability" => "Capacities", - "description" => "Descriptions", - "submit" => "Modify" - ], - "incl_form_login" => [ - "h2" => "Login", - "email" => "Email", - "password" => "Password", - "rememberMe" => "Remember me", - "submit" => "Sign-in" - ], - "incl_form_mission" => [ - "h2" => "Form to register a mission", - "subject" => "Subject", - "review" => "Review", - "proId" => "Pro ID", - "submit" => "Register", - "jobsSel" => "Jobs" - ], - "incl_table_myMission" => [ - "pendingMission" => "Pending missions", - "ongoingMission" => "Ongoing missions", - "completedMission" => "Completed missions", - "accept" => "Accept", - "validate" => "Validate" - ], - "incl_global_navbar" => [ - "h2" => "AlphaJob", - "btnSearch" => "Search", - "btnInfos" => "Modif. infos", - "btnMission" => "Register mission", - "btnMyMission" => "My missions", - "btnAdmin" => "Administration", - "btnLogin" => "Sign-in", - "btnLogout" => "Loggout", - "btnRegister" => "Sign-up", - "lang" => "Language", - "btnLang" => "Select" - ], - "incl_form_register" => [ - "h2" => "Form to sign-in", - "email" => "Email", - "password" => "Password", - "notice" => "Admin is here for the purpose of the exam only:", - "isAdmin" => "Is admin?", - "isPro" => "Is pro?", - "isClient" => "Is client?", - "submit" => "Sign-up" - ], - "incl_index_search" => [ - "h2" => "Search by lastname", - "searchBar" => "Lastname", - "submit" => "Search", - "moreInfo" => "More info", - "mandate" => "Mandate" - ], - "incl_index_slideshow" => [ - "slide1" => "Find the right proffessional for you.

For all your needs.

AlphaJob", - "slide2" => "Only the bests proffessionals can register!

Quality of work guarantee!

AlphaJob", - "slide3" => "Find the bests offers for your website today.

Discover our ready to use solutions.

AlphaJob" - ] -]; -?> \ No newline at end of file diff --git a/Views/Includes/en/title.php b/Views/Includes/en/title.php deleted file mode 100644 index d08f444..0000000 --- a/Views/Includes/en/title.php +++ /dev/null @@ -1,15 +0,0 @@ - "AlphaJob - Index", - "login" => "AlphaJob - Login Page", - "message" => "AlphaJob - Message", - "mission" => "AlphaJob - Register a mission", - "myMission" => "AlphaJob - My missions", - "register" => "AlphaJob - Register an user", - "userInfo" => "AlphaJob - My user information", - "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 deleted file mode 100644 index e9de43d..0000000 --- a/Views/Includes/fr/message.php +++ /dev/null @@ -1,200 +0,0 @@ - [ - "success" => [ - "success" => true, - "title" => "Mise à jour des informations.", - "info" => "Informations mise à jour!", - "timer" => true, - "toSrc" => true - ] - ], - // Login sans cookie - "login" => [ - "success" => [ - "success" => true, - "title" => "Connection.", - "info" => "Connection réussie!", - "timer" => true, - "toSrc" => false - ], - "fail" => [ - "success" => false, - "title" => "Connection.", - "info" => "Erreur, connection échouée.", - "timer" => true, - "toSrc" => true - ] - ], - // Login avec cookie - "loginCookie" => [ - "success" => [ - "success" => true, - "title" => "", - "info" => "", - "timer" => false, - "toSrc" => false - ], - "fail" => [ - "success" => false, - "title" => "Connection avec auto-connection.", - "info" => "Erreur, connection échouée.", - "timer" => true, - "toSrc" => false - ] - ], - // Log out - "logout" => [ - "success" => [ - "success" => true, - "title" => "Déconnection.", - "info" => "Vous êtes déconnecté!", - "timer" => true, - "toSrc" => false - ] - ], - // Ajout mission - "missionRegister" => [ - "success" => [ - "success" => true, - "title" => "Requête de mission.", - "info" => "La requete a été émise!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Requête de mission.", - "info" => "Erreur lors de la requête.", - "timer" => true, - "toSrc" => true - ] - ], - // Acceptation d'une mission - "missionAccepted" => [ - "success" => [ - "success" => true, - "title" => "Mission info.", - "info" => "Mission acceptée!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Mission info.", - "info" => "Erreur, mission non acceptée.", - "timer" => true, - "toSrc" => true - ] - ], - // Validation d'une mission - "missionValidated" => [ - "success" => [ - "success" => true, - "title" => "Mission info.", - "info" => "Mission completée!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Mandate info.", - "info" => "Erreur, mission non enregistrée comme completée.", - "timer" => true, - "toSrc" => true - ] - ], - // Ajout d'un commentaire & note - "missionReview" => [ - "success" => [ - "success" => true, - "title" => "Avis sur la mission.", - "info" => "Votre avis a bien été enregistré!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Avis sur la mission.", - "info" => "Erreur, votre avis n'a pas été enregistré.", - "timer" => true, - "toSrc" => true - ] - ], - // Ajout utilisateur - "userAdd" => [ - "success" => [ - "success" => true, - "title" => "Enregistrement d'un utilisateur.", - "info" => "Utilisateur enregustré!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Enregistrement d'un utilisateur.", - "info" => "Erreur, l'utilisateur n'a pas été enregistré.", - "timer" => true, - "toSrc" => true - ] - ], - // Delete utilisateur - "adminDelete" => [ - "success" => [ - "success" => true, - "title" => "Suppression d'un utilisateur.", - "info" => "Utilisateur supprimé!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Suppression d'un utilisateur.", - "info" => "Erreur, l'utilisateur n'a pas été supprimé.", - "timer" => true, - "toSrc" => true - ] - ], - // Ajout categorie - "adminAddJob" => [ - "success" => [ - "success" => true, - "title" => "Ajout d'une catégorie d'emploi.", - "info" => "La catégorie a bien été ajoutée!", - "timer" => true, - "toSrc" => true - ], - "fail" => [ - "success" => false, - "title" => "Ajout d'une catégorie d'emploi.", - "info" => "Erreur, la catégorie n'a pas été ajoutée.", - "timer" => true, - "toSrc" => true - ] - ], - // Suppression categorie - "adminDelJob" => [ - "success" => [ - "success" => true, - "title" => "Suppression d'une catégorie.", - "info" => "Categorie supprimée!", - "timer" => true, - "toSrc" => true - ], - "delete" => [ - "success" => false, - "title" => "Suppression d'une catégorie.", - "info" => "Erreur, la catégorie n'a pas été supprimée.", - "timer" => true, - "toSrc" => true - ] - ], -]; -?> \ No newline at end of file diff --git a/Views/Includes/fr/table.php b/Views/Includes/fr/table.php deleted file mode 100644 index 90fb806..0000000 --- a/Views/Includes/fr/table.php +++ /dev/null @@ -1,67 +0,0 @@ - [ - "Numéro ID", - "Email", - "Mot de passe chiffré", - "Jeton d'auto-connection", - "Date d'inscription", - "Status de l'utilisateur" - ], - // En-tête des colonnes du tableau Search de l'index. - "search" => [ - "Nom", - "Prénom", - "Emploi", - "Capacités", - "Nombre de mission", - "Note", - "Etoile" - ], - // En-tête des colonnes du tableau More infos de l'index. - "moreInfos" => [ - "Nom", - "Prénom", - "Emploi", - "Diplôme", - "Capacités", - "Description", - "Numéro de téléphone", - "Adresse", - "Code postal", - "Ville" - ], - // En-tête des colonnes du tableau mes missions. - "pendingMissions" => [ - "Requete emise le", - "Nom du pro", - "Emploi", - "Sujet" - ], - // En-tête des colonnes du tableau mes missions. - "ongoingMissions" => [ - "Accpeté par le pro le", - "Nom du pro", - "Emploi", - "Sujet", - "Date de validation du client", - "Date de validation du pro" - ], - // En-tête des colonnes du tableau mes missions. - "completedMissions" => [ - "Requete emise le", - "Débuté le", - "Validé par le client le", - "Validé par le pro le", - "Nom du pro", - "Emploi", - "Sujet", - "Avis", - "Note" - ] -]; -?> \ No newline at end of file diff --git a/Views/Includes/fr/text.php b/Views/Includes/fr/text.php deleted file mode 100644 index 85814e0..0000000 --- a/Views/Includes/fr/text.php +++ /dev/null @@ -1,93 +0,0 @@ - [ - "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.
Decembre 2021, tous droits réservés.", - ], - "incl_form_userInfo" => [ - "h2" => "Informations sur l'utilisateur.", - "lastname" => "Nom", - "firstname" => "Prénom", - "phoneNumber" => "Numéro de télephone", - "adress" => "Adresse", - "zipCode" => "Code postal", - "city" => "Ville", - "jobsSel" => "Emplois", - "jobsAdd" => "Ajouter", - "degree" => "Diplômes", - "capability" => "Capacités", - "description" => "Description", - "submit" => "Modifier" - ], - "incl_form_login" => [ - "h2" => "Identification", - "email" => "Email", - "password" => "Mot de passe", - "rememberMe" => "Se souvenir de moi", - "submit" => "Connection" - ], - "incl_form_mission" => [ - "h2" => "Formulaire pour enregistrer une mission", - "subject" => "Sujet", - "review" => "Commentaire", - "proId" => "ID du pro", - "submit" => "Enregistrer", - "jobsSel" => "Emplois" - ], - "incl_table_myMission" => [ - "pendingMission" => "Missions en attente", - "ongoingMission" => "Missions en cours", - "completedMission" => "Missions terminées", - "accept" => "Accepter", - "validate" => "Valider" - ], - "incl_global_navbar" => [ - "h2" => "AlphaJob", - "btnSearch" => "Rechercher", - "btnInfos" => "Modif. infos", - "btnMission" => "Enreg. mission", - "btnMyMission" => "Mes missions", - "btnAdmin" => "Administration", - "btnLogin" => "Connection", - "btnLogout" => "Déconnection", - "btnRegister" => "Inscription", - "lang" => "Langue", - "btnLang" => "Sélectionner" - ], - "incl_form_register" => [ - "h2" => "Formulaire d'inscription", - "email" => "Email", - "password" => "Mot de passe", - "notice" => "Admin est présent pour les besoins de l'examen uniquement:", - "isClient" => "Est client?", - "isPro" => "Est pro?", - "isAdmin" => "Est admin?", - "submit" => "S'inscrire" - ], - "incl_index_search" => [ - "h2" => "Recherche de pro par nom", - "searchBar" => "Nom", - "submit" => "Rechercher", - "moreInfo" => "Plus d'infos", - "mandate" => "Mandater" - ], - "incl_index_slideshow" => [ - "slide1" => "Trouvez le proffessionel idéal proche de chez vous.

Pour tous vos besoins.

AlphaJob", - "slide2" => "Seuls les meilleurs professionnels sont acceptés.

Qualité guarantie.

AlphaJob", - "slide3" => "Les meilleurs offres pour créer votre site Web.

Découvrez nos solutions clefs en main.

AlphaJob" - ] -]; -?> \ No newline at end of file diff --git a/Views/Includes/fr/title.php b/Views/Includes/fr/title.php deleted file mode 100644 index 25b6dd0..0000000 --- a/Views/Includes/fr/title.php +++ /dev/null @@ -1,15 +0,0 @@ - "AlphaJob - Index", - "login" => "AlphaJob - Connection", - "message" => "AlphaJob - Message", - "mission" => "AlphaJob - Enregistrer une mission", - "myMission" => "AlphaJob - Mes missions", - "register" => "AlphaJob - Inscription", - "userInfo" => "AlphaJob - Mes informations", - "admin" => "AlphaJob - Administration d'alphajob" -]; -?> \ No newline at end of file diff --git a/Views/Includes/incl_form_admin.php b/Views/Includes/incl_form_admin.php deleted file mode 100644 index 6176bc4..0000000 --- a/Views/Includes/incl_form_admin.php +++ /dev/null @@ -1,102 +0,0 @@ - -
- -
-

'.$text[basename(__FILE__, ".php")]["h2Job"].'

-
- - -
- -
- - -
'.PHP_EOL); - -// Form pour la suppression et envoie au wrappeur. -echo(' -

'.$text[basename(__FILE__, ".php")]["h2Del"].'

-
- - -
'.PHP_EOL); - -// Récupération de tous les utilisateurs. -$result = $dbadmin->get_all_users_account(); -// Affichage de la table. -echo(" - - - ".PHP_EOL); -// Affichage des en-tête de colonne. -foreach($header["adminDel"] as $header) { - echo(" ".PHP_EOL); -} -echo(" ".PHP_EOL); -// Affichage du résultat de la recherche. -foreach ($result as $rows) { - echo(" - ".PHP_EOL); - foreach ($rows as $key => $value) { - switch ($key) { - case "userStatus": - switch ($value) { - case 0: - echo(" ".PHP_EOL); - break; - case 1: - echo(" ".PHP_EOL); - break; - case 2: - echo(" ".PHP_EOL); - break; - } - break; - default: - echo(" ".PHP_EOL); - break; - } - } - echo(" ".PHP_EOL); -} -echo('
".$header."
Admin
Pro
Client
".$value."
- -
-
'.PHP_EOL); - -?> \ No newline at end of file diff --git a/Views/Includes/incl_form_login.php b/Views/Includes/incl_form_login.php deleted file mode 100644 index 5f76160..0000000 --- a/Views/Includes/incl_form_login.php +++ /dev/null @@ -1,26 +0,0 @@ - -
-

'.$text[basename(__FILE__, ".php")]["h2"].'

-
- - - - -
-
'.PHP_EOL) -?> \ No newline at end of file diff --git a/Views/Includes/incl_form_mission.php b/Views/Includes/incl_form_mission.php deleted file mode 100644 index 345dca2..0000000 --- a/Views/Includes/incl_form_mission.php +++ /dev/null @@ -1,65 +0,0 @@ - 0 -) { - echo('
-
-

'.$text[basename(__FILE__, ".php")]["h2"].'

-
- - - - -
-
'.PHP_EOL); - unset($_SESSION["missionInitiate"]); - -} elseif (isset($_SESSION["missionCompleted"]) - && count($_SESSION["missionCompleted"]) > 0 -) { - echo('
-
-

'.$text[basename(__FILE__, ".php")]["h2"].'

-
- - '); - echo(' - -
-
'.PHP_EOL); - unset($_SESSION["missionCompleted"]); - -} else { - header("Location: /Views/myMission.php"); - die(); -} -?> \ No newline at end of file diff --git a/Views/Includes/incl_form_register.php b/Views/Includes/incl_form_register.php deleted file mode 100644 index b98365b..0000000 --- a/Views/Includes/incl_form_register.php +++ /dev/null @@ -1,28 +0,0 @@ - -
- -
-

'.$text[basename(__FILE__, ".php")]["h2"].'

-
- - - - - - - -
-
'.PHP_EOL); -?> \ No newline at end of file diff --git a/Views/Includes/incl_form_userInfo.php b/Views/Includes/incl_form_userInfo.php deleted file mode 100644 index c79e687..0000000 --- a/Views/Includes/incl_form_userInfo.php +++ /dev/null @@ -1,99 +0,0 @@ -get_user_info_by_id($_SESSION["userId"]); -if (!$info) { - $info = [ - ["lastname" => "", - "firstname" => "", - "phoneNumber" => "", - "adress" => "", - "zipCode" => "", - "city" => "", - "degree" => "", - "capability" => "", - "description" => ""] - ]; -} -echo(' -
- -
-

'.$text[basename(__FILE__, ".php")]["h2"].'

-
- - - - - - '.PHP_EOL); -// TODO : Commenter -if ($_SESSION["userStatus"] == 1) { - $allJobs = $dbsearch->get_job_category_all(); - $proJobs = $dbsearch->get_pro_job_category($_SESSION["userId"]); - echo(' '.PHP_EOL); - // Mes jobs - echo(' Mes jobs -
    '.PHP_EOL); - for ($i = 0; $i < count($proJobs); $i++) { - echo('
  • '.$proJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'
  • '.PHP_EOL); - } - echo('
- '.PHP_EOL); - // Keep going - echo(' - - '.PHP_EOL); -} -echo(' -
-
- - ') -?> \ No newline at end of file diff --git a/Views/Includes/incl_global_footer.php b/Views/Includes/incl_global_footer.php deleted file mode 100644 index 6aa4014..0000000 --- a/Views/Includes/incl_global_footer.php +++ /dev/null @@ -1,13 +0,0 @@ - -
- - '.PHP_EOL) -?> \ No newline at end of file diff --git a/Views/Includes/incl_global_header.php b/Views/Includes/incl_global_header.php deleted file mode 100644 index 060340c..0000000 --- a/Views/Includes/incl_global_header.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - -'); -?> \ No newline at end of file diff --git a/Views/Includes/incl_global_message.php b/Views/Includes/incl_global_message.php deleted file mode 100644 index 304e906..0000000 --- a/Views/Includes/incl_global_message.php +++ /dev/null @@ -1,33 +0,0 @@ -'); -echo('

'.$messageText[$name][$status]["title"].'

'); -if ($messageText[$name][$status]["success"]) { - echo('

'.$success.'

'); -} else { - echo('

'.$error.'

'); -} -echo("

".$messageText[$name][$status]["info"]."

"); -echo('

'.$redirect.'

'); -echo(''); -if ($messageText[$name][$status]["toSrc"]) { - if ($_SESSION["src"] !== "index") { - $dest = "Views/".$_SESSION["src"]; - } else { - $dest = "index"; - } -} else { - $dest = "index"; -} -if ($messageText[$name][$status]["timer"]) { - echo(''); -} else { - echo(''); -} -?> \ No newline at end of file diff --git a/Views/Includes/incl_global_navbar.php b/Views/Includes/incl_global_navbar.php deleted file mode 100644 index 664d6ff..0000000 --- a/Views/Includes/incl_global_navbar.php +++ /dev/null @@ -1,62 +0,0 @@ - - '.PHP_EOL); -?> \ No newline at end of file diff --git a/Views/Includes/incl_index_search.php b/Views/Includes/incl_index_search.php deleted file mode 100644 index ac107b7..0000000 --- a/Views/Includes/incl_index_search.php +++ /dev/null @@ -1,118 +0,0 @@ - -
- '); -// On supprime la variable de recherche si elle existe. -unset($_SESSION["search"]); -?> \ No newline at end of file diff --git a/Views/Includes/incl_index_slideshow.php b/Views/Includes/incl_index_slideshow.php deleted file mode 100644 index 1a7790e..0000000 --- a/Views/Includes/incl_index_slideshow.php +++ /dev/null @@ -1,21 +0,0 @@ - -
- -
-

'.$text[basename(__FILE__, ".php")]["slide1"].'

-

'.$text[basename(__FILE__, ".php")]["slide2"].'

-

'.$text[basename(__FILE__, ".php")]["slide3"].'

- -
- - - -
-
'.PHP_EOL); -?> \ No newline at end of file diff --git a/Views/Includes/incl_table_myMission.php b/Views/Includes/incl_table_myMission.php deleted file mode 100644 index de071b1..0000000 --- a/Views/Includes/incl_table_myMission.php +++ /dev/null @@ -1,158 +0,0 @@ -get_mission_by_pro_id($_SESSION["userId"]); - for ($i = 0; $i < count($result); $i++) { - $result[$i]["jobCategoryId"] = $dbsearch->get_job_category_by_id($result[$i]["jobCategoryId"]); - } - break; - case 2: - $result = $dbmission->get_mission_by_client_id($_SESSION["userId"]); - for ($i = 0; $i < count($result); $i++) { - $result[$i]["jobCategoryId"] = $dbsearch->get_job_category_by_id($result[$i]["jobCategoryId"]); - } - break; - default: - break; -} - -$missionStatus = [ - "pending" => [], - "ongoing" => [], - "completed" => [] -]; - -for ($i = 0; $i < count($result); $i++) { - if (!$result[$i]["acceptedByPro"] - ) { - array_push($missionStatus["pending"], $result[$i]); - } elseif (!$result[$i]["validatedByPro"] - || !$result[$i]["validatedByClient"] - ) { - array_push($missionStatus["ongoing"], $result[$i]); - } else { - array_push($missionStatus["completed"], $result[$i]); - } -} - -echo(' -
- -
-
- - - -
'.PHP_EOL); - -// tableau 3 pending -echo(' - - '.PHP_EOL); -foreach($header["pendingMissions"] as $columnHeader) { - echo(" ".PHP_EOL); -} -echo(" ".PHP_EOL); -foreach ($missionStatus["pending"] as $rows) { - echo(' - - - - - '); - if ($_SESSION["userId"] == $rows["proId"]) { - echo(' '); - } - echo(' '.PHP_EOL); -} -echo('
".$columnHeader."
'.$rows["date"].'
'.$rows["lastname"].'
'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'
'.$rows["subject"].'
-
- - -
-
'); - -// tableau 4 ongoing -echo(' - - '.PHP_EOL); -foreach($header["ongoingMissions"] as $columnHeader) { - echo(" ".PHP_EOL); -} -echo(" ".PHP_EOL); -foreach ($missionStatus["ongoing"] as $rows) { - echo(' - - - - - - - '); - if (!$rows["validatedByClient"] && $_SESSION["userStatus"] == 2 - || (!$rows["validatedByPro"] && $_SESSION["userStatus"] == 1) - ) { - echo(' '); - } - echo(' '.PHP_EOL); -} -echo('
".$columnHeader."
'.$rows["acceptedByPro"].'
'.$rows["lastname"].'
'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'
'.$rows["subject"].'
'.$rows["validatedByClient"].'
'.$rows["validatedByPro"].'
-
- - -
-
'); - -// tableau 5 completed -echo(' - - '.PHP_EOL); -foreach($header["completedMissions"] as $columnHeader) { - echo(" ".PHP_EOL); -} -echo(" ".PHP_EOL); -foreach ($missionStatus["completed"] as $rows) { - echo(' - - - - - - - - '); - if ($rows["review"]) { - echo(''); - } else { - echo(''); - } - if ($rows["note"]) { - echo(''); - } else { - echo(''); - } - echo(''.PHP_EOL); -} -echo('
".$columnHeader."
'.$rows["date"].'
'.$rows["acceptedByPro"].'
'.$rows["validatedByClient"].'
'.$rows["validatedByPro"].'
'.$rows["lastname"].'
'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'
'.$rows["subject"].'
'.$rows["review"].'
N/A
'.$rows["note"].'
N/A
- -
'); - -// fin -echo('
'.PHP_EOL); -?> \ No newline at end of file diff --git a/Views/admin.php b/Views/admin.php deleted file mode 100644 index 67398fd..0000000 --- a/Views/admin.php +++ /dev/null @@ -1,35 +0,0 @@ - - -'.PHP_EOL); ?> - - - -".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - \ No newline at end of file diff --git a/Views/autoLogin.php b/Views/autoLogin.php deleted file mode 100644 index f52f660..0000000 --- a/Views/autoLogin.php +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/Views/login.php b/Views/login.php deleted file mode 100644 index 0bdeda3..0000000 --- a/Views/login.php +++ /dev/null @@ -1,26 +0,0 @@ - - -'.PHP_EOL); ?> - - - -".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - \ No newline at end of file diff --git a/Views/logout.php b/Views/logout.php deleted file mode 100644 index c493bd5..0000000 --- a/Views/logout.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/Views/message.php b/Views/message.php deleted file mode 100644 index b324f51..0000000 --- a/Views/message.php +++ /dev/null @@ -1,30 +0,0 @@ - - -'.PHP_EOL); ?> - - - -".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - - diff --git a/Views/mission.php b/Views/mission.php deleted file mode 100644 index fde7289..0000000 --- a/Views/mission.php +++ /dev/null @@ -1,36 +0,0 @@ - - -'.PHP_EOL); ?> - - - -".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - \ No newline at end of file diff --git a/Views/myMission.php b/Views/myMission.php deleted file mode 100644 index 2f575ba..0000000 --- a/Views/myMission.php +++ /dev/null @@ -1,38 +0,0 @@ - - -'.PHP_EOL); ?> - - - -".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - - - \ No newline at end of file diff --git a/Views/register.php b/Views/register.php deleted file mode 100644 index 5774615..0000000 --- a/Views/register.php +++ /dev/null @@ -1,26 +0,0 @@ - - -'.PHP_EOL); ?> - - - -".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - \ No newline at end of file diff --git a/Views/userInfo.php b/Views/userInfo.php deleted file mode 100644 index 0936590..0000000 --- a/Views/userInfo.php +++ /dev/null @@ -1,32 +0,0 @@ - - -'.PHP_EOL); ?> - - - -".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - \ No newline at end of file diff --git a/Wrapper/Functions/func_admin.php b/Wrapper/Functions/func_admin.php deleted file mode 100644 index 86a750f..0000000 --- a/Wrapper/Functions/func_admin.php +++ /dev/null @@ -1,53 +0,0 @@ -user_del($userId); - // Sélection du message à affiché en fonction de réussite ou pas. - if ($deleted) { - $message = ["adminDelUser", "success"]; - } else { - $message = ["adminDelUser", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["message"] = $message; - 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) { - $message = ["adminAddJob", "success"]; - } else { - $message = ["adminAddJob", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["message"] = $message; - 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) { - $message = ["adminDelJob", "success"]; - } else { - $message = ["adminDelJob", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["message"] = $message; - 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 deleted file mode 100644 index ca97bc0..0000000 --- a/Wrapper/Functions/func_info.php +++ /dev/null @@ -1,32 +0,0 @@ -get_pro_job_category($userId); - $userJobsId = []; - for ($i = 0; $i < count($userJobs); $i++) { - array_push($userJobsId, $userJobs[$i]["jobCategoryId"]); - } - $dbuser->user_infos_update($userInfos, $userId, $isPro, $userJobsId); - } else { - $dbuser->user_infos_update($userInfos, $userId, $isPro); - } - // Redirection vers message avec l'index du message à afficher. - $message = ["infosUpdate", "success"]; - $_SESSION["message"] = $message; - header("Location: /Views/message.php"); - die(); -} -?> \ No newline at end of file diff --git a/Wrapper/Functions/func_language.php b/Wrapper/Functions/func_language.php deleted file mode 100644 index ae54da0..0000000 --- a/Wrapper/Functions/func_language.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/Wrapper/Functions/func_login.php b/Wrapper/Functions/func_login.php deleted file mode 100644 index 165c2cd..0000000 --- a/Wrapper/Functions/func_login.php +++ /dev/null @@ -1,68 +0,0 @@ -user_check_credential($email, $pass); - // ou par cookie. - } else { - // On essaie une fois. - $userId = $dbuser->autologin_token_check($cookie[0], $cookie[1]); - // Et on le supprime. - $dbuser->autologin_token_delete($cookie[0]); - } - // Si on a un résultat valide. - if ($userId) { - $dbsearch = new DbSearch; - // LoggedIn devien "true". - $_SESSION["loggedIn"] = "1"; - // et on remplie les variables de la session avec les infos de l'utilisateur. - $userInfo = $dbsearch->get_user_account_by_id($userId); - foreach ($userInfo as $key => $value) { - $_SESSION[$key] = $value; - } - // Si était coché remember me ou que la connection s'est faite via cookie, - // on en génère un nouveau. - if ($remember || $cookie) { - $name = "autoLogin"; - // 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->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))), - time() + (86400 * 7), - "/" - ); - } - // On sélectionne le bon message en fonction du type de connection. - if (!$cookie) { - $message = ["login", "success"]; - } else { - $message = ["loginCookie", "success"]; - } - } else { - // Si la connection a échoué. - if (!$cookie) { - $message = ["login", "fail"]; - // Si la connection à échoué par cookie. - } else { - // Suppression du cookie. - unset($_COOKIE["autoLogin"]); - setcookie("autoLogin", "", time() - 3600, "/"); - $message = ["loginCookie", "fail"]; - } - } - // On redirige vers message. - $_SESSION["message"] = $message; - header("Location: /Views/message.php"); - die(); -} -?> \ No newline at end of file diff --git a/Wrapper/Functions/func_logout.php b/Wrapper/Functions/func_logout.php deleted file mode 100644 index 975f90b..0000000 --- a/Wrapper/Functions/func_logout.php +++ /dev/null @@ -1,30 +0,0 @@ -autologin_token_delete($_SESSION["email"]); - // Et le cookie - if (isset($_COOKIE["autoLogin"])) { - unset($_COOKIE["autoLogin"]); - setcookie("autoLogin", "", time() - 3600, "/"); - } - // On détruit la session. - session_destroy(); - // Et on en redémarre une nouvelle. - session_start(); - $_SESSION["loggedIn"] = "0"; - $_SESSION["lang"] = $lang; - // Enfin on redirige avec le bon message. - $message = ["logout", "success"]; - $_SESSION["message"] = $message; - header("Location: /Views/message.php"); - die(); -} -?> \ No newline at end of file diff --git a/Wrapper/Functions/func_mission.php b/Wrapper/Functions/func_mission.php deleted file mode 100644 index 4162e73..0000000 --- a/Wrapper/Functions/func_mission.php +++ /dev/null @@ -1,44 +0,0 @@ - $proId, - "proJobs" => $dbsearch->get_pro_job_category($proId) - ]; - header("Location: /Views/mission.php"); - die(); -} - -function mission_register($subject, $clientId, $proId, $jobId) { - $dbmission = new DbMission; - $registered = $dbmission->register_mission($subject, $clientId, $proId, $jobId); - // Sélection du message à afficher en fonction de réussite ou pas. - if ($registered) { - $message = ["missionRegister", "success"]; - } else { - $message = ["missionRegister", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["message"] = $message; - header("Location: /Views/message.php"); - die(); -} - -function mission_review($missionId, $review, $note) { - $dbmission = new DbMission; - $reviewed = $dbmission->review_mission($missionId, $review, $note); - // Sélection du message à afficher en fonction de réussite ou pas. - if ($reviewed) { - $message = ["missionReview", "success"]; - } else { - $message = ["missionReview", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["message"] = $message; - header("Location: /Views/message.php"); - die(); -} -?> \ No newline at end of file diff --git a/Wrapper/Functions/func_myMission.php b/Wrapper/Functions/func_myMission.php deleted file mode 100644 index c461e5a..0000000 --- a/Wrapper/Functions/func_myMission.php +++ /dev/null @@ -1,47 +0,0 @@ -accept_mission($missionId); - // Sélection du message à afficher en fonction de réussite ou pas. - if ($accepted) { - $message = ["missionAccepted", "success"]; - } else { - $message = ["missionAccepted", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["message"] = $message; - header("Location: /Views/message.php"); - die(); -} - -function validate_mission($missionId, $userStatus) { - $dbmission = new DbMission; - switch ($userStatus) { - case 1: - $validated = $dbmission->validate_mission_by_pro($missionId); - break; - case 2: - $validated = $dbmission->validate_mission_by_client($missionId); - $_SESSION["missionCompleted"] = [ - "missionId" => $missionId - ]; - header("Location: /Views/mission.php"); - die(); - default: - break; - } - // Sélection du message à afficher en fonction de réussite ou pas. - if ($validated) { - $message = ["missionValidated", "success"]; - } else { - $message = ["missionValidated", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["message"] = $message; - header("Location: /Views/message.php"); - die(); -} -?> \ No newline at end of file diff --git a/Wrapper/Functions/func_register.php b/Wrapper/Functions/func_register.php deleted file mode 100644 index e6757e2..0000000 --- a/Wrapper/Functions/func_register.php +++ /dev/null @@ -1,22 +0,0 @@ -user_register($email, - $password, - $userStatus - ); - // Sélection du message à afficher en fonction de la réussite de l'inscription. - if ($registered) { - $mission = ["userAdd", "success"]; - } else { - $mission = ["userAdd", "fail"]; - } - // Redirection vers message avec l'index du message à afficher. - $_SESSION["mission"] = $mission; - header("Location: /Views/message.php"); - die(); -} -?> \ No newline at end of file diff --git a/Wrapper/Functions/func_sanitize.php b/Wrapper/Functions/func_sanitize.php deleted file mode 100644 index cd45c28..0000000 --- a/Wrapper/Functions/func_sanitize.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/Wrapper/Functions/func_search.php b/Wrapper/Functions/func_search.php deleted file mode 100644 index 6736a06..0000000 --- a/Wrapper/Functions/func_search.php +++ /dev/null @@ -1,62 +0,0 @@ -get_pro_info_by_lastname($request); - // Pour chaque utilisateur avec un nom qui "match". - for ($i = 0; $i < count($result); $i++) { - $result[$i]["jobs"] = $dbsearch->get_pro_job_category($result[$i]["userId"]); - // récupération du nombre de mission effectué. - $numberMission = $dbmission->count_pro_missions_by_id($result[$i]["userId"]); - $result[$i]["numberOfMissions"] = $numberMission[0][0]; - // récupération des notes de l'utilisateur. - $allNotes = $dbsearch->get_pro_note_by_id($result[$i]["userId"]); - // Pour chaque note on la "push" (ajoute) dans une liste. - $notes = array(); - for ($j = 0; $j < count($allNotes); $j++) { - if ($allNotes[$j][0]) { - array_push($notes, $allNotes[$j][0]); - } - } - // On fait la moyenne des notes, - // 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[$i]["note"] = round($average, 2); - $result[$i]["star"] = (int)$average; - // Si il n'y a pas encore de note. - } else { - $result[$i]["note"] = 0; - $result[$i]["star"] = 0; - } - } - // Si c'est "plus d'info" et non une recherche. - } else { - $result = $dbsearch->get_user_info_by_id($request); - for ($i = 0; $i < count($result); $i++) { - $result[$i]["jobs"] = $dbsearch->get_pro_job_category($request); - } - } - // Redirection vers l'index avec le "payload" (contenu) en fonction du type de recherche. - if ($isResearch) { - $search = array( - "result" => $result, - "isResearch" => true - ); - } else { - $search = array( - "result" => $result, - "isResearch" => false - ); - } - $_SESSION["search"] = $search; - header("Location: /index.php#separator2"); - die(); -} -?> \ No newline at end of file diff --git a/Wrapper/wrapper.php b/Wrapper/wrapper.php deleted file mode 100644 index 2645896..0000000 --- a/Wrapper/wrapper.php +++ /dev/null @@ -1,306 +0,0 @@ - $value) { - if ($key !== "password") { - $_POST[$key] = sanitize($value); - } - } - } - - -// **************************************************************************** -// LANGUE -// **************************************************************************** - // Condition pour le changement de la langue - if (isset($_POST["langSel"]) - && ($_POST["langSel"] == "en" - || $_POST["langSel"] == "fr") - ) { - set_language($_POST["langSel"]); - - -// **************************************************************************** -// RECHERCHE -// **************************************************************************** - // Condition pour une recherche -} elseif ($_SESSION["src"] == "index" - && (isset($_POST["search"]) && $_POST["search"] !== "") - || (isset($_POST["moreInfoProId"]) && $_POST["moreInfoProId"] !== "") - ) { - - if ($_POST["search"]) { - search($_POST["search"], 1); - - } elseif ($_POST["moreInfoProId"]) { - search($_POST["moreInfoProId"], 0); - - } else { - http_response_code(404); - die(); - } - - -// **************************************************************************** -// INSCRIPTION -// **************************************************************************** - // Condition pour une inscription - } elseif ($_SESSION["src"] == "register" - && isset($_POST["email"], - $_POST["password"], - $_POST["userStatus"] - ) - && $_POST["email"] !== "" - && $_POST["password"] !== "" - ) { - register($_POST["email"], - $_POST["password"], - $_POST["userStatus"] - ); - - -// **************************************************************************** -// CONNECTION -// **************************************************************************** - } elseif ($_SESSION["src"] == "login" - && isset($_POST["email"], $_POST["password"]) - && $_POST["email"] !== "" - && $_POST["password"] !== "" - ) { - if (isset($_POST["rememberMe"]) && $_POST["rememberMe"] == "on") { - $_POST["rememberMe"] = 1; - } else { - $_POST["rememberMe"] = 0; - } - login(0, $_POST["email"], $_POST["password"], $_POST["rememberMe"]); - - -// **************************************************************************** -// CONNECTION AVEC COOKIE -// **************************************************************************** - } elseif ($_SESSION["src"] == "autoLogin" - && isset($_COOKIE["autoLogin"]) - && $_SESSION["loggedIn"] - ) { - // Si connection par cookie, on le décode avant de le passer à la fonction. - login(json_decode(base64_decode($_COOKIE["autoLogin"]))); - - -// **************************************************************************** -// DECONNECTION -// **************************************************************************** - } elseif ($_SESSION["src"] == "logout" - && isset($_SESSION["loggedIn"]) - && $_SESSION["loggedIn"] - ) { - logout(); - - -// **************************************************************************** -// MODIFICATION DES INFOS UTILISATEUR -// **************************************************************************** - // Condition pour une modification des infos - } elseif ($_SESSION["src"] == "userInfo" - // Vérification des données si client - && (isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"], - $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"], - $_POST["adress"], $_POST["zipCode"], $_POST["city"] - ) - && $_SESSION["userStatus"] == 2 - && $_POST["lastname"] !== "" && $_POST["firstname"] !== "" - && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== "" - && $_POST["zipCode"] !== "" && $_POST["city"] !== "" - // Ou si pro - || isset($_SESSION["loggedIn"], $_SESSION["userId"], $_SESSION["userStatus"], - $_POST["lastname"], $_POST["firstname"], $_POST["phoneNumber"], - $_POST["adress"], $_POST["zipCode"], $_POST["city"], $_POST["jobs"], - $_POST["degree"], $_POST["capability"], $_POST["description"] - ) - && $_SESSION["userStatus"] == 1 - && $_POST["lastname"] !== "" && $_POST["firstname"] !== "" - && $_POST["phoneNumber"] !== "" && $_POST["adress"] !== "" - && $_POST["zipCode"] !== "" && $_POST["city"] !== "" - && $_POST["degree"] !== "" && $_POST["capability"] !== "" - && $_POST["description"] !== "" - ) - ) { - modify_user_info($_POST, $_SESSION["userId"], $_SESSION["userStatus"]); - - -// **************************************************************************** -// MISSION - MANDATER -// **************************************************************************** - // mandater une mission - } elseif ($_SESSION["src"] == "index" - && (isset($_POST["mandateProId"]) && $_POST["mandateProId"] !== "") - ) { - mission_initiate($_POST["mandateProId"]); - -// **************************************************************************** -// MISSION - ENREGISTRER UNE REQUETE -// **************************************************************************** - } elseif ($_SESSION["src"] == "mission" - && isset($_SESSION["loggedIn"], $_SESSION["userStatus"], - $_POST["missionSubject"], $_POST["missionJob"], - $_POST["missionProId"] - ) - && $_SESSION["loggedIn"] - && $_SESSION["userStatus"] == 2 - && $_POST["missionSubject"] !== "" - && $_POST["missionJob"] !== "" - && $_POST["missionProId"] !== "" - ) { - mission_register($_POST["missionSubject"], - $_SESSION["userId"], - $_POST["missionProId"], - $_POST["missionJob"] - ); - - -// **************************************************************************** -// MISSION - VALIDER ET REVIEW -// **************************************************************************** - } elseif ($_SESSION["src"] == "mission" - && isset($_SESSION["loggedIn"], $_SESSION["userStatus"], - $_POST["missionCompletedId"], $_POST["review"], - $_POST["note"] - ) - && $_SESSION["loggedIn"] - && $_SESSION["userStatus"] == 2 - && $_POST["missionCompletedId"] !== "" - && $_POST["review"] !== "" - && $_POST["note"] !== "" - ) { - mission_review($_POST["missionCompletedId"], - $_POST["review"], - $_POST["note"] - ); - - -// **************************************************************************** -// GESTION DE SES MISSIONS -// **************************************************************************** - } elseif ($_SESSION["src"] == "myMission" - && isset($_SESSION["loggedIn"], - $_SESSION["userStatus"], - ) - && ($_SESSION["userStatus"] == 1 - || $_SESSION["userStatus"] == 2 - ) - ) { - - if (isset($_POST["acceptedMissionId"]) - && $_POST["acceptedMissionId"] !== "" - ) { - accept_mission($_POST["acceptedMissionId"]); - - } elseif (isset($_POST["validatedMissionId"], $_SESSION["userStatus"]) - && $_POST["validatedMissionId"] !== "" - && ($_SESSION["userStatus"] == 1 - ||$_SESSION["userStatus"] == 2 - ) - ) { - validate_mission($_POST["validatedMissionId"], $_SESSION["userStatus"]); - - } else { - http_response_code(404); - die(); - } - - -// **************************************************************************** -// ADMINISTRATION -// **************************************************************************** - // Condition pour l'administration du site - } elseif ($_SESSION["src"] == "admin" - && isset($_SESSION["loggedIn"], - $_SESSION["userStatus"], - ) - && $_SESSION["loggedIn"] - && $_SESSION["userStatus"] == 0 - && (isset($_POST["userId"]) - || isset($_POST["addCategoryNameEn"], - $_POST["addCategoryNameFr"] - ) - || isset($_POST["delCategoryId"]) - ) - ) { - - // Suppression d'un utilisateur - 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"]); - - // sinon - } else { - http_response_code(404); - die(); - } - - -// **************************************************************************** -// SI ERREUR DANS $_SESSION ou $_POST -// **************************************************************************** - // Enfin, si requete invalide - } else { - http_response_code(404); - die(); - } - - -// **************************************************************************** -// SI "src" N'EST PAS DEFINI DANS $_SESSION -// **************************************************************************** -} else { - http_response_code(404); - die(); -} -?> \ No newline at end of file diff --git a/index.php b/index.php index a8995be..a2f4053 100644 --- a/index.php +++ b/index.php @@ -1,51 +1,61 @@ + + '.PHP_EOL); ?> - - - + + + + ".$title[basename(__FILE__, ".php")]."".PHP_EOL); ?> - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/todo.txt b/todo.txt deleted file mode 100644 index 938a5eb..0000000 --- a/todo.txt +++ /dev/null @@ -1,16 +0,0 @@ - -################################################# - -- Global front - - Système de notification ? (5) - -- Revoir front Client & Pro - - Requète de mission pour un pro sur le moteur de recherche. (DONE) - - Page mes missions, passés, en cours, terminées. (DONE) - - Revoir mes infos pour adapter aux clients & pros. (DONE) - -- Revoir front Admin - - Doit pouvoir supprimer une mission (4) - - Doit pouvoir gérer les catégories de travail (DONE) - -################################################# -- cgit v1.2.3