summaryrefslogtreecommitdiff
path: root/Template
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-04-04 22:58:43 +0200
committerDebulois <quentin@debulois.fr>2022-04-04 22:58:43 +0200
commit5582d242d03692a7e1b2c631e1b4ff3f52e8b72c (patch)
treec1e0242053a46d7b4145111a78a3e86e3cfd2f0d /Template
parentb637d625216e50602d0bde8a544c281ca00af5fa (diff)
Révision complète du css et modification du js principalement
Diffstat (limited to 'Template')
-rw-r--r--Template/Include/en/message.php229
-rw-r--r--Template/Include/en/table.php86
-rw-r--r--Template/Include/en/text.php106
-rw-r--r--Template/Include/en/title.php20
-rw-r--r--Template/Include/fr/message.php229
-rw-r--r--Template/Include/fr/table.php86
-rw-r--r--Template/Include/fr/text.php106
-rw-r--r--Template/Include/fr/title.php20
-rw-r--r--Template/Include/incl_form_admin.php208
-rw-r--r--Template/Include/incl_form_login.php35
-rw-r--r--Template/Include/incl_form_mission.php90
-rw-r--r--Template/Include/incl_form_register.php36
-rw-r--r--Template/Include/incl_form_userInfo.php137
-rw-r--r--Template/Include/incl_global_footer.php26
-rw-r--r--Template/Include/incl_global_header.php22
-rw-r--r--Template/Include/incl_global_message.php65
-rw-r--r--Template/Include/incl_global_navbar.php89
-rw-r--r--Template/Include/incl_index_search.php210
-rw-r--r--Template/Include/incl_index_slideshow.php28
-rw-r--r--Template/Include/incl_table_myMission.php202
-rw-r--r--Template/admin.php46
-rw-r--r--Template/autoLogin.php26
-rw-r--r--Template/login.php37
-rw-r--r--Template/logout.php24
-rw-r--r--Template/message.php42
-rw-r--r--Template/mission.php48
-rw-r--r--Template/myMission.php49
-rw-r--r--Template/register.php37
-rw-r--r--Template/userInfo.php46
29 files changed, 2385 insertions, 0 deletions
diff --git a/Template/Include/en/message.php b/Template/Include/en/message.php
new file mode 100644
index 0000000..503fd98
--- /dev/null
+++ b/Template/Include/en/message.php
@@ -0,0 +1,229 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Texte des messages. #
+// # #
+// ############################################################################
+
+$success = "Success";
+$error = "Error";
+$redirect = "Redirecting in ";
+$messageText = [
+ // Informations de l'utilisateur
+ "infosUpdate" => [
+ "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
+ ],
+ "notConnected" => [
+ "success" => false,
+ "title" => "Mandate infos.",
+ "info" => "Error, you must be connected, and connected as client.",
+ "timer" => true,
+ "toSrc" => false
+ ]
+ ],
+ // 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/Template/Include/en/table.php b/Template/Include/en/table.php
new file mode 100644
index 0000000..8aef67f
--- /dev/null
+++ b/Template/Include/en/table.php
@@ -0,0 +1,86 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: En-tête des tableaux #
+// # #
+// ############################################################################
+
+$header = [
+ // En-tête des colonnes du tableau des utilisateurs de l'admin.
+ "adminUsers" => [
+ "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 lastname",
+ "Pro lastname",
+ "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/Template/Include/en/text.php b/Template/Include/en/text.php
new file mode 100644
index 0000000..7b8cfd1
--- /dev/null
+++ b/Template/Include/en/text.php
@@ -0,0 +1,106 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Texte du site #
+// # #
+// ############################################################################
+
+$text = [
+ "incl_form_admin" => [
+ "btManageJob" => "Manage jobs categories",
+ "btManageUser" => "Manage users",
+ "btManageMission" => "Manage missions",
+ "formJobAddEn" => "Name in English",
+ "formJobAddFr" => "Name 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.<br>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",
+ "myJobs" => "My jobs",
+ "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",
+ "noPending" => "There is actually no pending missions.",
+ "noOngoing" => "There is actually no ongoing missions.",
+ "noCompleted" => "There is actually no 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",
+ "or" => "or",
+ "submit" => "Search",
+ "noResult" => "No result.",
+ "moreInfo" => "Infos",
+ "mandate" => "Mandate"
+ ],
+ "incl_index_slideshow" => [
+ "slide1" => "Find the right proffessional for you.<br><br>For all your needs.<br><br><span>AlphaJob</span>",
+ "slide2" => "Only the bests proffessionals can register!<br><br>Quality of work guarantee!<br><br><span>AlphaJob</span>",
+ "slide3" => "Find the bests offers for your website today.<br><br>Discover our ready to use solutions.<br><br><span>AlphaJob</span>"
+ ]
+];
+
+?> \ No newline at end of file
diff --git a/Template/Include/en/title.php b/Template/Include/en/title.php
new file mode 100644
index 0000000..c4fbeca
--- /dev/null
+++ b/Template/Include/en/title.php
@@ -0,0 +1,20 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Titre des pages #
+// # #
+// ############################################################################
+
+$title = [
+ "index" => "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/Template/Include/fr/message.php b/Template/Include/fr/message.php
new file mode 100644
index 0000000..d9dc98c
--- /dev/null
+++ b/Template/Include/fr/message.php
@@ -0,0 +1,229 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Texte des messages. #
+// # #
+// ############################################################################
+
+$success = "Réussite";
+$error = "Erreur";
+$redirect = "Redirection dans ";
+$messageText = [
+ // Informations de l'utilisateur
+ "infosUpdate" => [
+ "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
+ ],
+ "notConnected" => [
+ "success" => false,
+ "title" => "Requête de mission.",
+ "info" => "Erreur, Vous devez être connecté, et connecté en tant que client.",
+ "timer" => true,
+ "toSrc" => false
+ ]
+ ],
+ // 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/Template/Include/fr/table.php b/Template/Include/fr/table.php
new file mode 100644
index 0000000..342b5e5
--- /dev/null
+++ b/Template/Include/fr/table.php
@@ -0,0 +1,86 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: En-tête des tableaux. #
+// # #
+// ############################################################################
+
+$header = [
+ // En-tête des colonnes du tableau des utilisateurs de l'admin.
+ "adminUsers" => [
+ "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",
+ "Nom du client",
+ "Nom 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/Template/Include/fr/text.php b/Template/Include/fr/text.php
new file mode 100644
index 0000000..ed28f1f
--- /dev/null
+++ b/Template/Include/fr/text.php
@@ -0,0 +1,106 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Texte du site #
+// # #
+// ############################################################################
+
+$text = [
+ "incl_form_admin" => [
+ "btManageJob" => "Gestion des emplois",
+ "btManageUser" => "Gestion des utilisateurs",
+ "btManageMission" => "Gestion des missions",
+ "formJobAddEn" => "Nom en Englais",
+ "formJobAddFr" => "Nom 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.<br>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",
+ "myJobs" => "Mes emplois:",
+ "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",
+ "noPending" => "Il n'y a pas de missions en attente.",
+ "noOngoing" => "Il n'y a pas de missions en cours.",
+ "noCompleted" => "Il n'y a pas de missions en 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",
+ "or" => "ou",
+ "submit" => "Rechercher",
+ "noResult" => "Aucun résultat.",
+ "moreInfo" => "Infos",
+ "mandate" => "Mandater"
+ ],
+ "incl_index_slideshow" => [
+ "slide1" => "Trouvez le proffessionel idéal proche de chez vous.<br><br>Pour tous vos besoins.<br><br><span>AlphaJob</span>",
+ "slide2" => "Seuls les meilleurs professionnels sont acceptés.<br><br>Qualité guarantie.<br><br><span>AlphaJob</span>",
+ "slide3" => "Les meilleurs offres pour créer votre site Web.<br><br>Découvrez nos solutions clefs en main.<br><br><span>AlphaJob</span>"
+ ]
+];
+
+?> \ No newline at end of file
diff --git a/Template/Include/fr/title.php b/Template/Include/fr/title.php
new file mode 100644
index 0000000..49285a2
--- /dev/null
+++ b/Template/Include/fr/title.php
@@ -0,0 +1,20 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Titre des pages #
+// # #
+// ############################################################################
+
+$title = [
+ "index" => "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/Template/Include/incl_form_admin.php b/Template/Include/incl_form_admin.php
new file mode 100644
index 0000000..68fa531
--- /dev/null
+++ b/Template/Include/incl_form_admin.php
@@ -0,0 +1,208 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Récupération de tous les utilisateurs pour choix d'une #
+// # suppression par son ID de table. #
+// # #
+// ############################################################################
+
+// Import du texte en fonction de la langue définie dans la variable "lang" de la session.
+require_once(dirname( __FILE__ )."./".$_SESSION["lang"]."/text.php");
+// Import des en-tête des tables.
+require_once(dirname( __FILE__ )."./".$_SESSION["lang"]."/table.php");
+// Import des metodes de la base de donnée pour les recherches.
+require_once(dirname( __FILE__ )."./../../Database/meth_dbadmin.php");
+require_once(dirname( __FILE__ )."./../../Database/meth_dbsearch.php");
+require_once(dirname( __FILE__ )."./../../Database/meth_dbmission.php");
+
+// Instanciation de la bdd avec les méthodes de recherche.
+$dbadmin = new DbAdmin;
+$dbsearch = new DbSearch;
+$dbmission = new DbMission;
+
+// ****************************************************************************
+// DIV PRINCIPALE
+// ****************************************************************************
+echo('<!-- Division principale -->
+<main id="mainAdmin">'.PHP_EOL);
+
+// ****************************************************************************
+// BOUTTONS DE NAVIGATION
+// ****************************************************************************
+echo('<!-- Bouttons de navigation -->
+<div id="adminButtons">
+ <button onclick="show(\'mainAdmin\', \'section\', \'secAdminJobs\', \'show_flex\')">'.$text[basename(__FILE__, ".php")]["btManageJob"].'</button>
+ <button onclick="show(\'mainAdmin\', \'section\', \'secAdminUsers\', \'show_flex\')">'.$text[basename(__FILE__, ".php")]["btManageUser"].'</button>
+ <button onclick="show(\'mainAdmin\', \'section\', \'secAdminMissions\', \'show_flex\')">'.$text[basename(__FILE__, ".php")]["btManageMission"].'</button>
+</div>'.PHP_EOL);
+
+// ****************************************************************************
+// SECTION AJOUT/SUPPRESSION D'EMPLOI
+// ****************************************************************************
+// Form pour ajout et form pour suppression d'une catégorie d'emploi
+echo('<!-- Section gestion des emplois -->
+<section id="secAdminJobs">
+ <form action="./../../Core/wrapper.php" method="post">
+ <h3>Ajouter une categorie d\'emploi</h3>
+ <label>
+ <i class="fas fa-briefcase"></i>
+ <i class="gb uk flag"></i>
+ <input type="text" name="addJobNameEn" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["formJobAddEn"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-briefcase"></i>
+ <i class="fr flag"></i>
+ <input type="text" name="addJobNameFr" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["formJobAddFr"].'" required>
+ </label>
+ <label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submitJobAdd"].'">
+ </label>
+ </form>
+ <!-- Form pour suppression d une catégorie d emploi -->
+ <form action="/../Core/wrapper.php" method="post">
+ <h3>Supprimer une categorie d\'emploi</h3>
+ <label>
+ <select name="delJobId" required>
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["selJobDel"].'</option>'.PHP_EOL);
+$allJobs = $dbsearch->get_job_all();
+for ($i = 0; $i < count($allJobs); $i++){
+ echo(' <option value="'.$allJobs[$i]["jobCategoryId"].'">'.$allJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</option>'.PHP_EOL);
+}
+echo(' </select>
+ </label>
+ <label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submitJobDel"].'">
+ </label>
+ </form>
+</section>'.PHP_EOL);
+
+// ****************************************************************************
+// SECTION POUR LA SUPPRSION D'UTILISATEUR ET TABLEAU
+// ****************************************************************************
+// Form pour suppression d'un utilisateur
+echo('<!-- Section supression d\' un utilisateur -->
+<section id="secAdminUsers">
+ <h3>Suppression d\' un utilisateur</h3>
+ <form action="./../../Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-trash-alt"></i>
+ <input type="text" name="delUserId" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["formDel"].'" required>
+ </label>
+ <label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submitDel"].'">
+ </label>
+ </form>'.PHP_EOL);
+
+// Récupération de tous les utilisateurs.
+$allUsers = $dbadmin->get_all_users_account();
+// Affichage du tableau.
+echo("<!-- Tableau des utilisateurs-->
+<table>
+ <!-- En-tête -->
+ <tr>".PHP_EOL);
+// Affichage des en-tête de colonne.
+for ($i = 0; $i < count($header["adminUsers"]); $i++) {
+ echo(" <th>".$header["adminUsers"][$i]."</th>".PHP_EOL);
+}
+echo(" </tr>".PHP_EOL);
+// Affichage du résultat de la récupération de tous les utilisateurs.
+for ($i = 0; $i < count($allUsers); $i++) {
+ echo(" <!-- Utilisateurs -->
+ <tr>".PHP_EOL);
+ foreach ($allUsers[$i] as $key => $value) {
+ switch ($key) {
+ case "userStatus":
+ switch ($value) {
+ case 0:
+ echo(" <td><pre>Admin<pre></td>".PHP_EOL);
+ break;
+ case 1:
+ echo(" <td><pre>Pro<pre></td>".PHP_EOL);
+ break;
+ case 2:
+ echo(" <td><pre>Client<pre></td>".PHP_EOL);
+ break;
+ }
+ break;
+ default:
+ echo(" <td><pre>".$value."</pre></td>".PHP_EOL);
+ break;
+ }
+ }
+ echo(" </tr>".PHP_EOL);
+}
+echo('</table>
+</section>'.PHP_EOL);
+
+// ****************************************************************************
+// SECTION POUR LA SUPPRESSION D'UNE MISSION ET TABLEAU
+// ****************************************************************************
+// Form pour suppression d'une mission
+echo('<!-- Section supression d\' une mission -->
+<section id="secAdminMissions">
+ <h3>Suppression d\' une mission</h3>
+ <form action="./../../Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-trash-alt"></i>
+ <input type="text" name="delMissionId" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["formDel"].'" required>
+ </label>
+ <label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submitDel"].'">
+ </label>
+ </form>'.PHP_EOL);
+
+// Récupération de toutes les missions et des infos des utilisateurs.
+$allMissions = $dbmission->get_all_missions();
+// Affichage du tableau.
+echo("<!-- Tableau des missions-->
+<table>
+ <!-- En-tête -->
+ <tr>".PHP_EOL);
+// Affichage des en-tête de colonne.
+for ($i = 0; $i < count($header["adminMissions"]); $i++) {
+ echo(" <th>".$header["adminMissions"][$i]."</th>".PHP_EOL);
+}
+echo(" </tr>".PHP_EOL);
+// Affichage du résultat de la récupération de tous les utilisateurs.
+for ($i = 0; $i < count($allMissions); $i++) {
+ echo(" <!-- missions -->
+ <tr>".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(" <td><pre>".$userInfo[0]["lastname"]."</pre></td>".PHP_EOL);
+ } else {
+ echo(" <td><pre> N/A </pre></td>".PHP_EOL);
+ }
+ break;
+ case 10:
+ $job = $dbsearch->get_job_by_jobid($allMissions[$i][$j]);
+ if ($job && $job[0]["jobCategoryName".ucwords($_SESSION["lang"])] !== "") {
+ echo(" <td><pre>".$job[0]["jobCategoryName".ucwords($_SESSION["lang"])]."</pre></td>".PHP_EOL);
+ } else {
+ echo(" <td><pre> N/A </pre></td>".PHP_EOL);
+ }
+ break;
+ default:
+ echo(" <td><pre>".$allMissions[$i][$j]."</pre></td>".PHP_EOL);
+ break;
+ }
+ }
+ echo(" </tr>".PHP_EOL);
+}
+echo('</table>
+</section>'.PHP_EOL);
+
+echo('<!-- Espace vide si le form est petit -->
+<div class="spacer"></div>');
+
+// ****************************************************************************
+// FIN DIV PRINCIPALE
+// ****************************************************************************
+echo('</main>'.PHP_EOL);
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_form_login.php b/Template/Include/incl_form_login.php
new file mode 100644
index 0000000..e907635
--- /dev/null
+++ b/Template/Include/incl_form_login.php
@@ -0,0 +1,35 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Formulaire de login #
+// # #
+// ############################################################################
+
+// 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");
+
+// ****************************************************************************
+// DIV PRINCIPALE AVEC TITRE ET FORM DE CONNEXION
+// ****************************************************************************
+echo('<!-- Div principale -->
+<main id="mainLogin">
+ <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+ <form action="/../Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-envelope-square"></i>
+ <input type="email" name="email" id="email" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["email"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-lock"></i>
+ <input type="password" name="password" id="password" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["password"].'" required>
+ </label>
+ <label>
+ <input type="checkbox" name="rememberMe" id="rememberMe">
+ '.$text[basename(__FILE__, ".php")]["rememberMe"].'
+ </label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+</main>'.PHP_EOL);
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_form_mission.php b/Template/Include/incl_form_mission.php
new file mode 100644
index 0000000..b95c396
--- /dev/null
+++ b/Template/Include/incl_form_mission.php
@@ -0,0 +1,90 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Formulaire d'enregistrement d'une mission #
+// # #
+// ############################################################################
+
+// 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");
+// Import des méthodes de la base de donnée pour les recherches.
+require_once(dirname( __FILE__ )."./../../Database/meth_dbsearch.php");
+
+// Si demande de mandatement d'une mission
+if (isset($_SESSION["missionInitiate"])
+ && count($_SESSION["missionInitiate"]) > 0
+) {
+
+ // ****************************************************************************
+ // DIV PRINCIPALE AVEC TITRE ET FORM POUR MANDATEMENT DE MISSION
+ // ****************************************************************************
+ echo('<!-- Division principale -->
+ <main id="mainMission">
+ <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+ <form id="missionForm" action="/../Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-edit"></i>
+ <input type="text" name="missionSubject" placeholder="'.$text[basename(__FILE__, ".php")]["subject"].'" maxlength="128" required>
+ </label>
+ <select name="missionJob" required>
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["jobsSel"].'</option>'.PHP_EOL);
+ // On loop à traves les emplois du pro et on récupère l'id et le nom pour peupler le select
+ for ($i = 0; $i < count($_SESSION["missionInitiate"]["proJobs"]); $i++) {
+ $categoryName = $_SESSION["missionInitiate"]["proJobs"][$i]["jobCategoryName".ucwords($_SESSION["lang"])];
+ $value = $_SESSION["missionInitiate"]["proJobs"][$i]["jobCategoryId"];
+ echo(' <option value="'.$value.'">'.$categoryName.'</option>'.PHP_EOL);
+ }
+ echo(' </select>
+ <input type="hidden" name="missionProId" value="'.$_SESSION["missionInitiate"]["proId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+ </main>'.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('<!-- Séparateur -->
+ <div class="separator"></div>');
+
+ // ****************************************************************************
+ // DIV PRINCIPALE AVEC TITRE ET FORMULAIRE D'ENREGISTREMENT D'UN AVIS
+ // ****************************************************************************
+ echo('<!-- Division principale -->
+ <main id="mainMission">
+ <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+ <form id="missionForm" action="/../Core/wrapper.php" method="post">
+ <label class="flex-start">
+ <i class="far fa-star"></i>
+ <select name="note" required>
+ <option value="" selected disabled hidden>Note</option>
+ <option value="5">5</option>
+ <option value="4">4</option>
+ <option value="3">3</option>
+ <option value="2">2</option>
+ <option value="1">1</option>
+ <option value="0">0</option>
+ </select>
+ </label>
+ <label>
+ <i class="far fa-comment-alt"></i>
+ <input type="text" name="review" maxlength="256" placeholder="'.$text[basename(__FILE__, ".php")]["review"].'" required></textarea>
+ </label>
+ <input type="hidden" name="missionCompletedId" value="'.$_SESSION["missionCompleted"]["missionId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+ </main>'.PHP_EOL);
+ unset($_SESSION["missionCompleted"]);
+
+// Sinon renvoie vers mes mission (F5 w/ unset)
+} else {
+ header("Location: /Template/myMission.php");
+ die();
+}
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_form_register.php b/Template/Include/incl_form_register.php
new file mode 100644
index 0000000..0baeaf2
--- /dev/null
+++ b/Template/Include/incl_form_register.php
@@ -0,0 +1,36 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Formulaire pour une inscription #
+// # #
+// ############################################################################
+
+// 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");
+
+// ****************************************************************************
+// DIV PRINCIPALE AVEC TITRE ET FORMULAIRE POUR S'INSCRIRE
+// ****************************************************************************
+echo('<!-- Division principale -->
+<main id="mainRegister">
+ <h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+ <!-- Formulaire d\'inscription -->
+ <form action="/../Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-envelope-square"></i>
+ <input type="email" name="email" id="email" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["email"].'" maxlength="128" required>
+ </label>
+ <label>
+ <i class="fas fa-lock"></i>
+ <input type="password" name="password" id="password" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["password"].'" maxlength="128" required>
+ </label>
+ <label class="info">'.$text[basename(__FILE__, ".php")]["notice"].'</label>
+ <label for="isAdmin"><input type="radio" id="isAdmin" name="userStatus" value="0">'.$text[basename(__FILE__, ".php")]["isAdmin"].'</label>
+ <label for="isPro"><input type="radio" id="isPro" name="userStatus" value="1">'.$text[basename(__FILE__, ".php")]["isPro"].'</label>
+ <label for="isClient"><input type="radio" id="isClient" name="userStatus" value="2">'.$text[basename(__FILE__, ".php")]["isClient"].'</label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+</main>'.PHP_EOL);
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_form_userInfo.php b/Template/Include/incl_form_userInfo.php
new file mode 100644
index 0000000..afe98b8
--- /dev/null
+++ b/Template/Include/incl_form_userInfo.php
@@ -0,0 +1,137 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Formulaire pour modifier les informations de l'utilisateur #
+// # #
+// ############################################################################
+
+// 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");
+// Import des méthodes de la base de donnée pour les recherches.
+require_once(dirname( __FILE__ )."./../../Database/meth_dbsearch.php");
+
+// Instanciation de la bdd avec les méthodes de recherche.
+$dbsearch = new DbSearch;
+// Recherches des informations avec l'id de l'utilisateur actuellement connecté.
+$info = $dbsearch->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" => ""]
+ ];
+}
+
+// ****************************************************************************
+// DIV PRINCIPALE AVEC TITRE ET FORMULAIRE COMMUN AUX PROS ET CLIENTS
+// ****************************************************************************
+echo('<!-- Division principale -->
+<main id="mainUserInfo">
+<!-- Modification des infos de l\'utilisateur -->
+<h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+<form action="/../Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-users"></i>
+ <input type="text" name="lastname" id="lastname" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["lastname"].'" value="'.$info[0]["lastname"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-user"></i>
+ <input type="text" name="firstname" id="firstname" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["firstname"].'" value="'.$info[0]["firstname"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-mobile-alt"></i>
+ <input type="text" name="phoneNumber" id="phoneNumber" maxlength="10" placeholder="'.$text[basename(__FILE__, ".php")]["phoneNumber"].'" value="'.$info[0]["phoneNumber"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-home"></i>
+ <input type="text" name="adress" id="adress" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["adress"].'" value="'.$info[0]["adress"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-map-marker-alt"></i>
+ <input type="text" name="zipCode" id="zipCode" maxlength="6" placeholder="'.$text[basename(__FILE__, ".php")]["zipCode"].'" value="'.$info[0]["zipCode"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-city"></i>
+ <input type="text" name="city" id="city" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["city"].'" value="'.$info[0]["city"].'" required>
+ </label>'.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(' <label id="userJob">
+ <i class="fas fa-wrench"></i>
+ <div>
+ <span>'.$text[basename(__FILE__, ".php")]["myJobs"].'</span>'.PHP_EOL);
+ echo(' <select id="jobsSel">
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["jobsSel"].'</option>'.PHP_EOL);
+ //Peuplement du select qui comprend tous les emplois
+ for ($i = 0; $i < count($allJobs); $i++) {
+ echo(' <option value="'.$allJobs[$i]["jobCategoryId"].'">'.$allJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</option>'.PHP_EOL);
+ }
+ echo(' </select>
+ <button type="button" onclick="add()">'.$text[basename(__FILE__, ".php")]["jobsAdd"].'</button>
+ </div>
+ </label>'.PHP_EOL);
+
+ // ****************************************************************************
+ // PARTIE EMPLOI DEJA SELECTIONNE
+ // ****************************************************************************
+ echo('
+ <label id="jobsList">
+ <i class="fas fa-briefcase"></i>
+ <div id=jobsListGrid>'.PHP_EOL);
+ for ($i = 0; $i < count($proJobs); $i++) {
+ echo(' <div class="jobsListElem" data-value="'.$proJobs[$i]["jobCategoryId"].'">'.$proJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'<i class="fas fa-ban"></i></div>'.PHP_EOL);
+ }
+ echo(' </div>
+ </label>
+ <input type="hidden" name="jobs" id="jobs" value="">'.PHP_EOL);
+
+ // ****************************************************************************
+ // PARTIE DIPLOME, CAPACITES & DESCRIPTION
+ // ****************************************************************************
+ echo(' <label>
+ <i class="fas fa-user-graduate"></i>
+ <input type="text" name="degree" id="degree" maxlength="128" placeholder="'.$text[basename(__FILE__, ".php")]["degree"].'" value="'.$info[0]["degree"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-cogs"></i>
+ <input type="text" name="capability" id="capability" maxlength="256" placeholder="'.$text[basename(__FILE__, ".php")]["capability"].'" value="'.$info[0]["capability"].'" required>
+ </label>
+ <label>
+ <i class="fas fa-file-signature"></i>
+ <input type="text" name="description" id="description" maxlength="256" placeholder="'.$text[basename(__FILE__, ".php")]["description"].'" value="'.$info[0]["description"].'" required>
+ </label>'.PHP_EOL);
+
+ // ****************************************************************************
+ // CHARGEMENT ET DECLENCHEMENT DU JAVASCRIPT DEDIE A CETTE PAGE
+ // ****************************************************************************
+ echo(' <script src="/Static/Js/userinfo.js"></script>
+ <script>init()</script>');
+}
+
+// ****************************************************************************
+// FIN DU FORM ET DE LA DIV PRINCIPALE
+// ****************************************************************************
+echo(' <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+</form>
+</main>');
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_global_footer.php b/Template/Include/incl_global_footer.php
new file mode 100644
index 0000000..a11ed02
--- /dev/null
+++ b/Template/Include/incl_global_footer.php
@@ -0,0 +1,26 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Pied de page #
+// # #
+// ############################################################################
+
+// 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");
+
+// ****************************************************************************
+// SEPARATEUR
+// ****************************************************************************
+echo('<!-- Separateur -->
+<div class="separator"></div>'.PHP_EOL);
+
+// ****************************************************************************
+// PIED DE PAGE
+// ****************************************************************************
+echo('<!-- Pied de page -->
+<footer>
+ <p>'.$text[basename(__FILE__, ".php")]["main"].'</p>
+</footer>'.PHP_EOL)
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_global_header.php b/Template/Include/incl_global_header.php
new file mode 100644
index 0000000..9847bf1
--- /dev/null
+++ b/Template/Include/incl_global_header.php
@@ -0,0 +1,22 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Header commmun à toutes les pages #
+// # #
+// ############################################################################
+
+// ****************************************************************************
+// METADATA COMMUNE A TOUTES LES PAGES
+// ****************************************************************************
+echo('<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="/Static/Css/main.css" rel="stylesheet">
+<link href="/Static/Css/navbar.css" rel="stylesheet">
+<link href="/Static/Css/footer.css" rel="stylesheet">
+<!-- https://fontawesome.com/v5.15/how-to-use/on-the-web/setup/hosting-font-awesome-yourself -->
+<link href="/Static/Css/Fontsawesome/all.css" rel="stylesheet">
+<!-- https://semantic-ui.com/elements/flag.html -->
+<link href="/Static/Css/Flags/flag.css" rel="stylesheet">'.PHP_EOL);
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_global_message.php b/Template/Include/incl_global_message.php
new file mode 100644
index 0000000..a0a9e5f
--- /dev/null
+++ b/Template/Include/incl_global_message.php
@@ -0,0 +1,65 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Partie principale de la page des messages #
+// # #
+// ############################################################################
+
+// Import des différents messages possibles.
+require_once(dirname( __FILE__ )."./".$_SESSION["lang"]."/message.php");
+
+// Récupération du message à afficher et de son status
+$name = $_SESSION["message"][0];
+$status = $_SESSION["message"][1];
+
+// ****************************************************************************
+// DIV PRINCIPALE ET TITRE
+// ****************************************************************************
+echo('<!-- Division principale -->
+<main id="mainMessage">
+ <h2>'.$messageText[$name][$status]["title"].'</h2>');
+
+// ****************************************************************************
+// TITRE POUR SIGNIFIER SI L'OPERATION A REUSSI OU NON
+// ****************************************************************************
+if ($messageText[$name][$status]["success"]) {
+ echo('<h3 class="success">'.$success.'</h3>');
+} else {
+ echo('<h3 class="error">'.$error.'</h3>');
+}
+
+// ****************************************************************************
+// TEXTE PRINCIPAL
+// ****************************************************************************
+echo('<!-- Texte principal -->
+<p>'.$messageText[$name][$status]["info"].'</p>
+<p id="redirect" class="info">'.$redirect.'</p></main>
+<!-- Chargement du javascript dédié à cette page -->
+<script src="/Static/Js/message.js"></script>');
+
+// ****************************************************************************
+// RECUPERATION DE LA PAGE VERS LAQUELLE REDIRIGER SI CE N'EST PAS L'INDEX
+// ****************************************************************************
+if ($messageText[$name][$status]["toSrc"]) {
+ if ($_SESSION["src"] !== "index") {
+ $dest = "Template/".$_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('<!-- Redirection avec timer -->
+ <script>start_timer("'.$dest.'");</script>');
+} else {
+ echo('<!-- Redirection sans timer -->
+ <script>redirect("'.$dest.'")</script>');
+}
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_global_navbar.php b/Template/Include/incl_global_navbar.php
new file mode 100644
index 0000000..95ab8d8
--- /dev/null
+++ b/Template/Include/incl_global_navbar.php
@@ -0,0 +1,89 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: La navbar #
+// # #
+// ############################################################################
+
+// Switch -> 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");
+
+// Header avec titre et boutton du navbar
+echo('<!-- Header -->
+<header>
+ <!-- Titre -->
+ <a onclick="showNavButtons()"><i class="fas fa-bars"></i></a>
+ <!-- Espace vide -->
+ <div class="spacer"></div>
+ <a id="navTitle" href="/"><h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2></a>
+ <!-- Espace vide -->
+ <div class="spacer"></div>
+'.PHP_EOL);
+// Affichage du drapeau de la langue actuellement sélectionnée.
+$flags = [
+ "en" => "gb uk",
+ "fr" => "fr"
+];
+echo(' <!-- Choix de la langue -->
+ <form action="/../Core/wrapper.php" method="post" id="navFormLang">
+ <label>
+ <i class="'.$flags[$_SESSION["lang"]].' flag"></i>'.$text[basename(__FILE__, ".php")]["lang"].'
+ <br>
+ <select name="langSel" id="navSelLang" required>
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["btnLang"].'</option>
+ <option value="en">English</option>
+ <option value="fr">Français</option>
+ </select>
+ </label>
+ </form>
+</header>
+'.PHP_EOL);
+
+// Affichage du navbar et de ses elements en fonction de si l'utilisateur est connecté ou non.
+echo('<!-- navbar -->
+<nav>
+<!-- Espace vide -->
+<div class="spacer"></div>
+<!-- Liste de lien pour la navigation -->');
+if (isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
+ && $_SESSION["loggedIn"] == "1"
+) {
+ switch ($_SESSION["userStatus"]) {
+ case 0:
+ $status = 'Admin';
+ echo(' <p><span class="headerInfoAdmin">'.$status.'</span>'.$_SESSION["email"].'</p>'.PHP_EOL);
+ echo(' <a href="/index.php#separator2"><i class="fas fa-search"></i> '.$text[basename(__FILE__, ".php")]["btnSearch"].'</a>');
+ echo(' <a href="/Template/admin.php"><i class="fas fa-cog"></i> '.$text[basename(__FILE__, ".php")]["btnAdmin"].'</a>'.PHP_EOL);
+ echo(' <a href="/Template/logout.php"><i class="fas fa-sign-out-alt"></i> '.$text[basename(__FILE__, ".php")]["btnLogout"].'</a>'.PHP_EOL);
+ break;
+ case 1:
+ $status = 'Pro';
+ echo(' <p><span class="headerInfoPro">'.$status.'</span>'.$_SESSION["email"].'</p>'.PHP_EOL);
+ echo(' <a href="/index.php#separator2"><i class="fas fa-search"></i> '.$text[basename(__FILE__, ".php")]["btnSearch"].'</a>');
+ echo(' <a href="/Template/myMission.php"><i class="fas fa-tasks"></i> '.$text[basename(__FILE__, ".php")]["btnMyMission"].'</a>'.PHP_EOL);
+ echo(' <a href="/Template/userInfo.php"><i class="fas fa-user"></i> '.$text[basename(__FILE__, ".php")]["btnInfos"].'</a>');
+ echo(' <a href="/Template/logout.php"><i class="fas fa-sign-out-alt"></i> '.$text[basename(__FILE__, ".php")]["btnLogout"].'</a>'.PHP_EOL);
+ break;
+ case 2:
+ $status = 'Client';
+ echo(' <p><span class="headerInfoClient">'.$status.'</span>'.$_SESSION["email"].'</p>'.PHP_EOL);
+ echo(' <a href="/index.php#separator2"><i class="fas fa-search"></i> '.$text[basename(__FILE__, ".php")]["btnSearch"].'</a>');
+ echo(' <a href="/Template/myMission.php"><i class="fas fa-tasks"></i> '.$text[basename(__FILE__, ".php")]["btnMyMission"].'</a>'.PHP_EOL);
+ echo(' <a href="/Template/userInfo.php"><i class="fas fa-user"></i> '.$text[basename(__FILE__, ".php")]["btnInfos"].'</a>');
+ echo(' <a href="/Template/logout.php"><i class="fas fa-sign-out-alt"></i> '.$text[basename(__FILE__, ".php")]["btnLogout"].'</a>'.PHP_EOL);
+ break;
+ }
+ echo(' <!-- Espace vide -->
+ <div class="spacer"></div>');
+} else {
+ echo(' <a href="/Template/login.php"><i class="fas fa-sign-in-alt"></i> '.$text[basename(__FILE__, ".php")]["btnLogin"].'</a>
+ <a href="/Template/register.php"><i class="fas fa-user-plus"></i> '.$text[basename(__FILE__, ".php")]["btnRegister"].'</a>
+ <!-- Espace vide -->
+ <div class="spacer"></div>'.PHP_EOL);
+}
+echo('</nav>');
+?> \ No newline at end of file
diff --git a/Template/Include/incl_index_search.php b/Template/Include/incl_index_search.php
new file mode 100644
index 0000000..13d581e
--- /dev/null
+++ b/Template/Include/incl_index_search.php
@@ -0,0 +1,210 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Partie recherche de l'index. #
+// # #
+// ############################################################################
+
+// 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");
+// Import des en-têtes des tables.
+require_once(dirname( __FILE__ )."./".$_SESSION["lang"]."/table.php");
+require_once(dirname( __FILE__ )."./../../Database/meth_dbsearch.php");
+
+$dbsearch = new DbSearch;
+
+// ****************************************************************************
+// SEPARATEUR
+// ****************************************************************************
+echo('<!-- Separateur -->
+<div id="separator2" class="separator"></div>');
+
+// ****************************************************************************
+// DIV PRINCIPALE
+// ****************************************************************************
+echo('<!-- Division principale -->
+<main id="mainSearch">'.PHP_EOL);
+
+// Form pour la recherche par nom et envoi au wrappeur.
+echo('<!-- Form de recherche -->
+<h2>'.$text[basename(__FILE__, ".php")]["h2"].'</h2>
+<div id="divSearch">
+ <div class="spacer"></div>
+ <form action="/Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-search"></i>
+ <input type="text" name="searchByName" id="searchBar"placeholder="'.$text[basename(__FILE__, ".php")]["searchBarName"].'" required>
+ </label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+ <p>'.$text[basename(__FILE__, ".php")]["or"].'</p>
+ <form action="/Core/wrapper.php" method="post">
+ <label>
+ <i class="fas fa-search"></i>
+ <select name="searchByJob" required>
+ <option value="" selected>'.$text[basename(__FILE__, ".php")]["searchBarJob"].'</option>'.PHP_EOL);
+$allJobs = $dbsearch->get_job_all();
+for ($i = 0; $i < count($allJobs); $i++){
+ echo(' <option value="'.$allJobs[$i]["jobCategoryId"].'">'.$allJobs[$i]["jobCategoryName".ucwords($_SESSION["lang"])].'</option>'.PHP_EOL);
+}
+echo(' </select>
+ </label>
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["submit"].'">
+ </form>
+ <div class="spacer"></div>
+</div>'.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"])) {
+ // Si la variable isResearch est vrai, c'est une rechreche.
+ if ($_SESSION["search"]["isResearch"]) {
+ if ($_SESSION["search"]["result"]) {
+ echo('<table>');
+ echo('<thead>');
+ echo('<tr>');
+ for ($i = 0; $i < count($header["search"]); $i++) {
+ switch ($i) {
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ echo('<th class="extend"><pre>'.$header["search"][$i].'</pre></th>');
+ break;
+ default:
+ echo('<th><pre>'.$header["search"][$i].'</pre></th>');
+ break;
+ }
+ }
+ echo('</tr>');
+ echo('</thead>');
+ foreach ($_SESSION["search"]["result"] as $result) {
+ echo('<tbody>');
+ echo('<tr>');
+ echo('<td><pre>'.$result["lastname"].'</pre></td>');
+ echo('<td class="extend"><pre>'.$result["firstname"].'</pre></td>');
+ // 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('<td><pre>'.join(", ", $jobsName).'</pre></td>');
+ } else {
+ echo('<td>N/A</td>');
+ }
+ echo('<td class="extend"><pre>'.$result["capability"].'</pre></td>');
+ echo('<td class="extend"><pre>'.$result["numberOfMissions"].'</pre></td>');
+ echo('<td class="extend"><pre>'.$result["note"].'</pre></td>');
+ // I'm a star !!
+ if ($result["star"]) {
+ echo('<td><pre>');
+ $missingStar = 5 - $result["star"];
+ for ($i = 0; $i < $result["star"]; $i++) {
+ echo('<i class="fa fa-star star checked"></i>');
+ }
+ if ($missingStar) {
+ for ($i = 0; $i < $missingStar; $i++) {
+ echo('<i class="fa fa-star star unchecked"></i>');
+ }
+ }
+ echo('</pre></td>');
+ } else {
+ echo('<td>N/A</td>');
+ }
+ // Si c'est une recherche on ajoute le bouton plus d'info,
+ // pour plus d'info avec une recherche par Id.
+ echo('<td class="noBorder">
+ <form action="/Core/wrapper.php" method="post">
+ <input type="hidden" name="moreInfoProId" value="'.$result["userId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["moreInfo"].'">
+ </form>
+ </td>
+ </tr>');
+ }
+ echo('</tbody>');
+ echo('</table>');
+ } else {
+ echo('<p>'.$text[basename(__FILE__, ".php")]["noResult"].'</p>');
+ }
+
+ // Sinon c'est un "Plus d'info".
+ } else {
+ echo('<table>
+ <tbody>
+ <tr>
+ <th><pre>'.$header["moreInfos"][0].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["lastname"].'</pre></td>
+ </tr>
+ <tr>
+ <th><pre>'.$header["moreInfos"][1].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["firstname"].'</pre></td>
+ </tr>');
+ // 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('<tr>
+ <th><pre>'.$header["moreInfos"][2].'</pre></th>
+ <td><pre>'.join(", ", $jobsName).'</pre></td>
+ </tr>');
+ } else {
+ echo('<tr>
+ <th><pre>'.$header["moreInfos"][2].'</pre></th>
+ <td>N/A</td>
+ </tr>');
+ }
+ echo('<tr>
+ <th><pre>'.$header["moreInfos"][3].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["degree"].'</pre></td>
+ </tr>
+ <tr>
+ <th><pre>'.$header["moreInfos"][4].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["capability"].'</pre></td>
+ </tr>
+ <tr>
+ <th><pre>'.$header["moreInfos"][5].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["description"].'</pre></td>
+ </tr>
+ <tr>
+ <th><pre>'.$header["moreInfos"][6].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["phoneNumber"].'</pre></td>
+ </tr>
+ <tr>
+ <th><pre>'.$header["moreInfos"][7].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["adress"].'</pre></td>
+ </tr>
+ <tr>
+ <th><pre>'.$header["moreInfos"][8].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["zipCode"].'</pre></td>
+ </tr>
+ <tr>
+ <th><pre>'.$header["moreInfos"][9].'</pre></th>
+ <td><pre>'.$_SESSION["search"]["result"][0]["city"].'</pre></td>
+ </tr>
+ </tr>
+ </tbody>
+ </table>
+ <form id="formMandate" action="/Core/wrapper.php" method="post">
+ <input type="hidden" name="mandateProId" value="'.$_SESSION["search"]["result"][0]["userId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["mandate"].'">
+ </form>
+ </table>');
+ }
+}
+
+echo('<!-- Espace vide si le tableau est petit -->
+<div class="spacer"></div>');
+
+// ****************************************************************************
+// FIN DIV PRINCIPALE
+// ****************************************************************************
+echo('</main>');
+
+// On supprime la variable de recherche si elle existe.
+unset($_SESSION["search"]);
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_index_slideshow.php b/Template/Include/incl_index_slideshow.php
new file mode 100644
index 0000000..98357f7
--- /dev/null
+++ b/Template/Include/incl_index_slideshow.php
@@ -0,0 +1,28 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Partie slide show de l'index #
+// # #
+// ############################################################################
+
+// 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");
+
+// ****************************************************************************
+// SLIDESHOW
+// ****************************************************************************
+echo('<!-- Slideshow -->
+<section id="secSlides">
+ <p id="slide_0" class="show_block">'.$text[basename(__FILE__, ".php")]["slide1"].'</p>
+ <p id="slide_1">'.$text[basename(__FILE__, ".php")]["slide2"].'</p>
+ <p id="slide_2">'.$text[basename(__FILE__, ".php")]["slide3"].'</p>
+ <!-- Indicateur de slide actuellement en cour -->
+ <div id="slideDots">
+ <i id="slideDot_0" class="fas fa-circle slideDotSelected"></i>
+ <i id="slideDot_1" class="fas fa-circle"></i>
+ <i id="slideDot_2" class="fas fa-circle"></i>
+ </div>
+</section>'.PHP_EOL);
+
+?> \ No newline at end of file
diff --git a/Template/Include/incl_table_myMission.php b/Template/Include/incl_table_myMission.php
new file mode 100644
index 0000000..504abac
--- /dev/null
+++ b/Template/Include/incl_table_myMission.php
@@ -0,0 +1,202 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Tableau correspondant aux missions effectuées #
+// # par l'utilisateur. #
+// # #
+// ############################################################################
+
+// 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");
+// Import des en-tête des tables.
+require_once(dirname( __FILE__ )."./".$_SESSION["lang"]."/table.php");
+// Import des metodes de la base de donnée pour les recherches.
+require_once(dirname( __FILE__ )."./../../Database/meth_dbsearch.php");
+require_once(dirname( __FILE__ )."./../../Database/meth_dbmission.php");
+
+// Instanciation de la bdd avec les méthodes de recherche.
+$dbsearch = new DbSearch;
+$dbmission = new DbMission;
+$missionStatus = [
+ "pending" => [],
+ "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]);
+ }
+}
+
+// ****************************************************************************
+// DIV PRINCIPALE
+// ****************************************************************************
+echo('<!-- Mes missions -->
+<main id="mainMyMission">');
+
+// ****************************************************************************
+// BOUTTONS DE NAVIGATION
+// ****************************************************************************
+echo('<div id="myMissionButtons">
+ <button onclick="show(\'mainMyMission\', \'section\', \'secPending\', \'show_block\')">'.$text[basename(__FILE__, ".php")]["pendingMission"].'</button>
+ <button onclick="show(\'mainMyMission\', \'section\', \'secOngoing\', \'show_block\')">'.$text[basename(__FILE__, ".php")]["ongoingMission"].'</button>
+ <button onclick="show(\'mainMyMission\', \'section\', \'secCompleted\',\'show_block\')">'.$text[basename(__FILE__, ".php")]["completedMission"].'</button>
+</div>'.PHP_EOL);
+
+// ****************************************************************************
+// TABLEAU DES MISSIONS EN ATTENTE
+// ****************************************************************************
+if ($missionStatus["pending"]) {
+ echo('<section id="secPending">
+ <table>
+ <!-- En-tête -->
+ <tr>'.PHP_EOL);
+ foreach($header["pendingMissions"] as $columnHeader) {
+ echo(" <th>".$columnHeader."</th>".PHP_EOL);
+ }
+ echo(" </tr>".PHP_EOL);
+ foreach ($missionStatus["pending"] as $rows) {
+ echo(' <!-- Missions -->
+ <tr>
+ <td><pre>'.$rows["date"].'</pre></td>
+ <td><pre>'.$rows["lastname"].'</pre></td>
+ <td><pre>'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'</pre></td>
+ <td><pre>'.$rows["subject"].'</pre></td>');
+ if ($_SESSION["userId"] == $rows["proId"]) {
+ echo(' <td class="noBorder">
+ <form action="/Core/wrapper.php" method="post">
+ <input type="hidden" name="acceptedMissionId" value="'.$rows["missionId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["accept"].'">
+ </form>
+ </td>');
+ }
+ echo(' </tr>'.PHP_EOL);
+ }
+ echo(' </table>
+ </section>');
+} else {
+ echo('<section id="secPending">
+ <p>'.$text[basename(__FILE__, ".php")]["noPending"].'</p>
+ </section>');
+}
+
+// ****************************************************************************
+// TABLEAU DES MISSIONS EN COURS
+// ****************************************************************************
+if ($missionStatus["ongoing"]) {
+ echo('<section id="secOngoing">
+ <table>
+ <!-- En-tête -->
+ <tr>'.PHP_EOL);
+ foreach($header["ongoingMissions"] as $columnHeader) {
+ echo(" <th>".$columnHeader."</th>".PHP_EOL);
+ }
+ echo(" </tr>".PHP_EOL);
+ foreach ($missionStatus["ongoing"] as $rows) {
+ echo(' <!-- Missions -->
+ <tr>
+ <td><pre>'.$rows["acceptedByPro"].'</pre></td>
+ <td><pre>'.$rows["lastname"].'</pre></td>
+ <td><pre>'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'</pre></td>
+ <td><pre>'.$rows["subject"].'</pre></td>
+ <td><pre>'.$rows["validatedByClient"].'</pre></td>
+ <td><pre>'.$rows["validatedByPro"].'</pre></td>');
+ if (!$rows["validatedByClient"] && $_SESSION["userStatus"] == 2
+ || (!$rows["validatedByPro"] && $_SESSION["userStatus"] == 1)
+ ) {
+ echo(' <td class="noBorder">
+ <form action="/Core/wrapper.php" method="post">
+ <input type="hidden" name="validatedMissionId" value="'.$rows["missionId"].'">
+ <input type="submit" value="'.$text[basename(__FILE__, ".php")]["validate"].'">
+ </form>
+ </td>');
+ }
+ echo(' </tr>'.PHP_EOL);
+ }
+ echo(' </table>
+ </section>');
+} else {
+ echo('<section id="secOngoing">
+ <p>'.$text[basename(__FILE__, ".php")]["noOngoing"].'</p>
+ </section>');
+}
+
+// ****************************************************************************
+// TABLEAU DES MISSIONS TERMINEES
+// ****************************************************************************
+if ($missionStatus["completed"]) {
+ echo('<section id="secCompleted">
+ <table>
+ <!-- En-tête -->
+ <tr>'.PHP_EOL);
+ foreach($header["completedMissions"] as $columnHeader) {
+ echo(" <th>".$columnHeader."</th>".PHP_EOL);
+ }
+ echo(" </tr>".PHP_EOL);
+ foreach ($missionStatus["completed"] as $rows) {
+ echo(' <!-- Missions -->
+ <tr>
+ <td><pre>'.$rows["date"].'</pre></td>
+ <td><pre>'.$rows["acceptedByPro"].'</pre></td>
+ <td><pre>'.$rows["validatedByClient"].'</pre></td>
+ <td><pre>'.$rows["validatedByPro"].'</pre></td>
+ <td><pre>'.$rows["lastname"].'</pre></td>
+ <td><pre>'.$rows["jobCategoryId"][0]["jobCategoryName".ucwords($_SESSION["lang"])].'</pre></td>
+ <td><pre>'.$rows["subject"].'</pre></td>');
+ if ($rows["review"]) {
+ echo('<td><pre>'.$rows["review"].'</pre></td>');
+ } else {
+ echo('<td><pre>N/A</pre></td>');
+ }
+ if ($rows["note"]) {
+ echo('<td><pre>'.$rows["note"].'</pre></td>');
+ } else {
+ echo('<td><pre>N/A</pre></td>');
+ }
+ echo('</tr>'.PHP_EOL);
+ }
+ echo(' </table>
+ </section>');
+} else {
+ echo('<section id="secCompleted">
+ <p>'.$text[basename(__FILE__, ".php")]["noCompleted"].'</p>
+ </section>');
+}
+
+echo('<!-- Espace vide si le tableau est petit -->
+<div class="spacer"></div>');
+
+// ****************************************************************************
+// FIN DIV PRINCIPALE
+// ****************************************************************************
+echo('</main>'.PHP_EOL);
+
+?> \ No newline at end of file
diff --git a/Template/admin.php b/Template/admin.php
new file mode 100644
index 0000000..a302006
--- /dev/null
+++ b/Template/admin.php
@@ -0,0 +1,46 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page pour administrer le site web #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+// Vérification si l'utilisateur est admin et connecté sinon: raise 404.
+if (!isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
+ || $_SESSION["loggedIn"] == false
+ || $_SESSION["userStatus"] != 0
+ ) {
+ http_response_code(404);
+ die();
+} else {
+ // Définition de la variable src de la session avec le nom du fichier.
+ $_SESSION["src"] = basename(__FILE__, ".php");
+}
+
+// Utilisation de "dirname" pour réaliser des imports en chemin absolue.
+// Import du dossier des textes en fonction de
+// la langue sélectionnée dans la variable lang de la session.
+?>
+<!-- Déclaration du type de document -->
+<!DOCTYPE html>
+<!-- Balise racine d'un document HTML -->
+<?php echo('<html lang="'.$_SESSION["lang"].'">'.PHP_EOL); ?>
+<!-- Balise contenant les metadata -->
+<head>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_header.php"); ?>
+<?php echo(' <link href="/Static/Css/admin.css" rel="stylesheet">'.PHP_EOL); ?>
+<?php require_once(dirname( __FILE__ )."./Include/".$_SESSION["lang"]."/title.php"); ?>
+<?php echo(" <title>".$title[basename(__FILE__, ".php")]."</title>".PHP_EOL); ?>
+</head>
+<!-- Balise principale contenant le corps du document HTML -->
+<body>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_navbar.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_form_admin.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_footer.php"); ?>
+ <script src="/Static/Js/main.js"></script>
+ <script>show('mainAdmin', 'section', 'secAdminJobs', 'show_flex')</script>
+</body>
+</html> \ No newline at end of file
diff --git a/Template/autoLogin.php b/Template/autoLogin.php
new file mode 100644
index 0000000..9395e13
--- /dev/null
+++ b/Template/autoLogin.php
@@ -0,0 +1,26 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Renvoie vers le wrapper pour connection auto-login #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+// Si la variable de session loggedin existe et que l'utilsiateur est connecté
+// ou que le cookie de connection n'est pas présent: raise 404
+if ($_SESSION["loggedIn"] == true || !isset($_COOKIE["autoLogin"])) {
+ http_response_code(404);
+ die();
+}
+
+// Définition de la variable src de la session avec le nom du fichier.
+$_SESSION["src"] = basename(__FILE__, ".php");
+
+// Redirection vers le wrapper.
+header("Location: /Core/wrapper.php");
+die();
+
+?> \ No newline at end of file
diff --git a/Template/login.php b/Template/login.php
new file mode 100644
index 0000000..fe0aee4
--- /dev/null
+++ b/Template/login.php
@@ -0,0 +1,37 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page pour se connecter #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+// Définition de la variable src de la session avec le nom du fichier.
+$_SESSION["src"] = basename(__FILE__, ".php");
+
+// Utilisation de "dirname" pour réaliser des imports en chemin absolue.
+// Import du dossier des textes en fonction de
+// la langue sélectionnée dans la variable lang de la session.
+?>
+<!-- Déclaration du type de document -->
+<!DOCTYPE html>
+<!-- Balise racine d'un document HTML -->
+<?php echo('<html lang="'.$_SESSION["lang"].'">'.PHP_EOL); ?>
+<!-- Balise contenant les metadata -->
+<head>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_header.php"); ?>
+<?php echo(' <link href="/Static/Css/login.css" rel="stylesheet">'.PHP_EOL); ?>
+<?php require_once(dirname( __FILE__ )."./Include/".$_SESSION["lang"]."/title.php"); ?>
+<?php echo("<title>".$title[basename(__FILE__, ".php")]."</title>".PHP_EOL); ?>
+</head>
+<!-- Balise principale contenant le corps du document HTML -->
+<body>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_navbar.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_form_login.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_footer.php"); ?>
+ <script src="/Static/Js/main.js"></script>
+</body>
+</html> \ No newline at end of file
diff --git a/Template/logout.php b/Template/logout.php
new file mode 100644
index 0000000..f7f9d85
--- /dev/null
+++ b/Template/logout.php
@@ -0,0 +1,24 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page qui renvoi vers le wrapper pour se déconnecter #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+// Si déja non connecté: raise 404
+if (!isset($_SESSION["loggedIn"]) || $_SESSION["loggedIn"] != true) {
+ http_response_code(404);
+ die();
+}
+
+// Définition de la variable src de la session avec le nom du fichier.
+$_SESSION["src"] = basename(__FILE__, ".php");
+
+// Redirection vers le wrapper.
+header("Location: /Core/wrapper.php");
+die();
+?> \ No newline at end of file
diff --git a/Template/message.php b/Template/message.php
new file mode 100644
index 0000000..b28e067
--- /dev/null
+++ b/Template/message.php
@@ -0,0 +1,42 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page qui affiche un message et optionnellement renvoi #
+// # vers l'index #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+// Si pas de message (variable messageNumber de la session): raise 404.
+if (!isset($_SESSION["message"])) {
+ http_response_code(404);
+ die();
+}
+
+// Utilisation de "dirname" pour réaliser des imports en chemin absolue.
+// Import du dossier des textes en fonction de
+// la langue sélectionnée dans la variable lang de la session.
+?>
+<!-- Déclaration du type de document -->
+<!DOCTYPE html>
+<!-- Balise racine d'un document HTML -->
+<?php echo('<html lang="'.$_SESSION["lang"].'">'.PHP_EOL); ?>
+<!-- Balise contenant les metadata -->
+<head>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_header.php"); ?>
+<?php echo(' <link href="/Static/Css/message.css" rel="stylesheet">'.PHP_EOL); ?>
+<?php require_once(dirname( __FILE__ )."./Include/".$_SESSION["lang"]."/title.php"); ?>
+<?php echo(" <title>".$title[basename(__FILE__, ".php")]."</title>".PHP_EOL); ?>
+</head>
+<!-- Balise principale contenant le corps du document HTML -->
+<body>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_navbar.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_message.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_footer.php"); ?>
+ <script src="/Static/Js/main.js"></script>
+</body>
+</html>
+<?php unset($_SESSION["messageNumber"]); ?>
diff --git a/Template/mission.php b/Template/mission.php
new file mode 100644
index 0000000..0fa5a01
--- /dev/null
+++ b/Template/mission.php
@@ -0,0 +1,48 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page pour enregistrer une mission #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+// Vérification si connecté et si a le statut utilisateur sinon: raise 404
+if (!isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
+ || $_SESSION["loggedIn"] == false
+ || $_SESSION["userStatus"] != 2
+) {
+ $messageNumber = 9;
+ $_SESSION["messageNumber"] = $messageNumber;
+ header("Location: /Template/message.php");
+ die();
+}
+
+// Définition de la variable src de la session avec le nom du fichier.
+$_SESSION["src"] = basename(__FILE__, ".php");
+
+// Utilisation de "dirname" pour réaliser des imports en chemin absolue.
+// Import du dossier des textes en fonction de
+// la langue sélectionnée dans la variable lang de la session.
+?>
+<!-- Déclaration du type de document -->
+<!DOCTYPE html>
+<!-- Balise racine d'un document HTML -->
+<?php echo('<html lang="'.$_SESSION["lang"].'">'.PHP_EOL); ?>
+<!-- Balise contenant les metadata -->
+<head>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_header.php"); ?>
+<?php echo(' <link href="/Static/Css/mission.css" rel="stylesheet">'.PHP_EOL); ?>
+<?php require_once(dirname( __FILE__ )."./Include/".$_SESSION["lang"]."/title.php"); ?>
+<?php echo(" <title>".$title[basename(__FILE__, ".php")]."</title>".PHP_EOL); ?>
+</head>
+<!-- Balise principale contenant le corps du document HTML -->
+<body>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_navbar.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_form_mission.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_footer.php"); ?>
+ <script src="/Static/Js/main.js"></script>
+</body>
+</html> \ No newline at end of file
diff --git a/Template/myMission.php b/Template/myMission.php
new file mode 100644
index 0000000..d87e02d
--- /dev/null
+++ b/Template/myMission.php
@@ -0,0 +1,49 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page pour voir ses missions #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+// Si n'est pas connecté ou n'est pas consultant: raise 404.
+if (!isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
+ || $_SESSION["loggedIn"] == false
+ || ($_SESSION["userStatus"] != 1
+ && $_SESSION["userStatus"] != 2
+ )
+) {
+ http_response_code(404);
+ die();
+}
+
+// Définition de la variable src de la session avec le nom du fichier.
+$_SESSION["src"] = basename(__FILE__, ".php");
+
+// Utilisation de "dirname" pour réaliser des imports en chemin absolue.
+// Import du dossier des textes en fonction de
+// la langue sélectionnée dans la variable lang de la session.
+?>
+<!-- Déclaration du type de document -->
+<!DOCTYPE html>
+<!-- Balise racine d'un document HTML -->
+<?php echo('<html lang="'.$_SESSION["lang"].'">'.PHP_EOL); ?>
+<!-- Balise contenant les metadata -->
+<head>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_header.php"); ?>
+<?php echo(' <link href="/Static/Css/myMission.css" rel="stylesheet">'.PHP_EOL); ?>
+<?php require_once(dirname( __FILE__ )."./Include/".$_SESSION["lang"]."/title.php"); ?>
+<?php echo(" <title>".$title[basename(__FILE__, ".php")]."</title>".PHP_EOL); ?>
+</head>
+<!-- Balise principale contenant le corps du document HTML -->
+<body>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_navbar.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_table_myMission.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_footer.php"); ?>
+ <script src="/Static/Js/main.js"></script>
+ <script>show('mainMyMission', 'section', 'secPending', 'show_block')</script>
+</body>
+</html> \ No newline at end of file
diff --git a/Template/register.php b/Template/register.php
new file mode 100644
index 0000000..9e64b4b
--- /dev/null
+++ b/Template/register.php
@@ -0,0 +1,37 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page pour s'inscrire #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+// Définition de la variable src de la session avec le nom du fichier.
+$_SESSION["src"] = basename(__FILE__, ".php");
+
+// Utilisation de "dirname" pour réaliser des imports en chemin absolue.
+// Import du dossier des textes en fonction de
+// la langue sélectionnée dans la variable lang de la session.
+?>
+<!-- Déclaration du type de document -->
+<!DOCTYPE html>
+<!-- Balise racine d'un document HTML -->
+<?php echo('<html lang="'.$_SESSION["lang"].'">'.PHP_EOL); ?>
+<!-- Balise contenant les metadata -->
+<head>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_header.php"); ?>
+<?php echo(' <link href="/Static/Css/register.css" rel="stylesheet">'.PHP_EOL); ?>
+<?php require_once(dirname( __FILE__ )."./Include/".$_SESSION["lang"]."/title.php"); ?>
+<?php echo(" <title>".$title[basename(__FILE__, ".php")]."</title>".PHP_EOL); ?>
+</head>
+<!-- Balise principale contenant le corps du document HTML -->
+<body>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_navbar.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_form_register.php")?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_footer.php");?>
+ <script src="/Static/Js/main.js"></script>
+</body>
+</html> \ No newline at end of file
diff --git a/Template/userInfo.php b/Template/userInfo.php
new file mode 100644
index 0000000..63ecee7
--- /dev/null
+++ b/Template/userInfo.php
@@ -0,0 +1,46 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Page pour modifier les informations de l'utilisateur #
+// # #
+// ############################################################################
+
+// Démarrage de la session.
+session_start();
+
+if (!isset($_SESSION["loggedIn"], $_SESSION["userStatus"])
+ || $_SESSION["loggedIn"] == false
+ || ($_SESSION["userStatus"] != 1
+ && $_SESSION["userStatus"] != 2
+ )
+) {
+ http_response_code(404);
+ die();
+}
+
+// Définition de la variable src de la session avec le nom du fichier.
+$_SESSION["src"] = basename(__FILE__, ".php");
+// Utilisation de "dirname" pour réaliser des imports en chemin absolue.
+// Import du dossier des textes en fonction de
+// la langue sélectionnée dans la variable lang de la session.
+?>
+<!-- Déclaration du type de document -->
+<!DOCTYPE html>
+<!-- Balise racine d'un document HTML -->
+<?php echo('<html lang="'.$_SESSION["lang"].'">'.PHP_EOL); ?>
+<!-- Balise contenant les metadata -->
+<head>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_header.php"); ?>
+<?php echo(' <link href="/Static/Css/userInfo.css" rel="stylesheet">'.PHP_EOL); ?>
+<?php require_once(dirname( __FILE__ )."./Include/".$_SESSION["lang"]."/title.php"); ?>
+<?php echo(" <title>".$title[basename(__FILE__, ".php")]."</title>".PHP_EOL); ?>
+</head>
+<!-- Balise principale contenant le corps du document HTML -->
+<body>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_navbar.php"); ?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_form_userInfo.php")?>
+<?php require_once(dirname( __FILE__ )."./Include/incl_global_footer.php");?>
+ <script src="/Static/Js/main.js"></script>
+</body>
+</html> \ No newline at end of file