diff --git a/.env b/.env
deleted file mode 100644
index 312e8f9..0000000
--- a/.env
+++ /dev/null
@@ -1,10 +0,0 @@
-# config BDD
-
-DB_CONNECTION=mysql
-DB_HOSTNAME=boulayoune.com
-DB_DATABASE=projet_folliow
-DB_USERNAME=
-DB_PASSWORD=
-
-IMG_PROJECT_PATH = uploads/projects/
-IMG_USER_PATH = uploads/profiles/
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 183434a..1b4da35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/templates_c/
/templates_c/**
.env
+.htaccess
\ No newline at end of file
diff --git a/assests/css/style.css b/assests/css/style.css
index 142ea7f..13d28fb 100644
--- a/assests/css/style.css
+++ b/assests/css/style.css
@@ -10,7 +10,12 @@ body {
background-color: #ffffff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
padding: 0.8rem 2rem;
+ min-height: 64px;
+ max-height: 64px;
}
+.navbar .navbar-collapse {
+ align-items: center;
+ }
.navbar-brand {
font-size: 1.5rem;
@@ -29,7 +34,13 @@ body {
margin: 0 0.2rem;
transition: color 0.3s;
}
-
+.nav-avatar {
+ width: 36px;
+ height: 36px;
+ object-fit: cover;
+ border-radius: 50%;
+ display: block;
+ }
.navbar-nav .nav-link:hover {
color: #0d6efd;
}
@@ -117,3 +128,51 @@ body {
.txt_title {
color: rgb(51, 152, 217);
}
+
+/* On cible la card sans casser ses propriétés Bootstrap */
+.tiger-theme {
+ background-color: #ff8c00 !important; /* Orange tigre */
+ background-image: repeating-linear-gradient(
+ 45deg,
+ transparent,
+ transparent 30px,
+ rgba(0, 0, 0, 0.15) 30px,
+ rgba(0, 0, 0, 0.15) 60px
+ ) !important;
+ border: 2px solid #000 !important;
+ color: #000 !important;
+ position: relative;
+ z-index: 1;
+}
+
+/* Style du texte pour qu'il ressorte sur l'orange */
+.tiger-text {
+ font-weight: 800 !important;
+ text-transform: uppercase;
+ color: #000 !important;
+}
+
+.tiger-date {
+ font-size: 0.8rem;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Bordure de l'image (n'affecte pas la taille de la card) */
+.tiger-border {
+ box-shadow: 0 0 0 4px #000;
+}
+
+/* Bouton style tigre */
+.btn-tiger {
+ background-color: #000 !important;
+ color: #ff8c00 !important;
+ border: none !important;
+ font-weight: bold !important;
+ transition: transform 0.2s;
+}
+
+.btn-tiger:hover {
+ transform: scale(1.05);
+ background-color: #222 !important;
+}
\ No newline at end of file
diff --git a/controllers/AdminCtrl.php b/controllers/AdminCtrl.php
index 88896dc..670082b 100644
--- a/controllers/AdminCtrl.php
+++ b/controllers/AdminCtrl.php
@@ -21,8 +21,8 @@
public function admin(){
if (!isset($_SESSION['user']) && ($_SESSION['user']['user_status'] != 1 )){
- header("Location:index.php?ctrl=error&action=error_403");
- exit;
+ $error = new \Controllers\ErrorCtrl();
+ return $error->error_403();
}
$objCategoryModel = new CategoryModel;
@@ -32,7 +32,7 @@
$newCat->setName($_POST['new_category']);
$objCategoryModel->insertCategory($newCat);
$_SESSION['success'] = "La catégorie a bien été ajoutée";
- header('Location: index.php?ctrl=admin&action=admin');
+ header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
exit;
}
@@ -42,7 +42,7 @@
$editCat->setName($_POST['new_name']);
$objCategoryModel->editCategory($editCat);
$_SESSION['success'] = "La catégorie a bien été modifiée";
- header('Location: index.php?ctrl=admin&action=admin');
+ header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
exit;
}
@@ -73,7 +73,7 @@
$objUserModel->delete_soft($intUserId);
$_SESSION['success'] = "L'utilisateur a été supprimé.";
}
- header("Location: index.php?ctrl=admin&action=admin");
+ header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
exit;
}
}
diff --git a/controllers/ErrorCtrl.php b/controllers/ErrorCtrl.php
index 2e69e9e..9a5e0ff 100644
--- a/controllers/ErrorCtrl.php
+++ b/controllers/ErrorCtrl.php
@@ -11,14 +11,18 @@
* Page erreur 404
*/
public function error_404(){
+ http_response_code(404);
$this->_display("error_404");
+ exit;
}
/**
* Page erreur 403
*/
public function error_403(){
+ http_response_code(403);
$this->_display("error_403");
+ exit;
}
}
\ No newline at end of file
diff --git a/controllers/MotherCtrl.php b/controllers/MotherCtrl.php
index bea90b2..49ccbdf 100644
--- a/controllers/MotherCtrl.php
+++ b/controllers/MotherCtrl.php
@@ -23,6 +23,7 @@
$objSmarty = new Smarty();
$objSmarty->registerPlugin('modifier', 'vardump', 'var_dump');
$objSmarty->registerPlugin('modifier', 'file_exists', 'file_exists');
+ $objSmarty->registerPlugin('modifier', 'stripos', 'stripos');
$objSmarty->caching = false;
$objSmarty->force_compile = true;
diff --git a/controllers/ProjectCtrl.php b/controllers/ProjectCtrl.php
index 6cb408c..fc85dd1 100644
--- a/controllers/ProjectCtrl.php
+++ b/controllers/ProjectCtrl.php
@@ -79,7 +79,7 @@
*/
public function search(){
- $strKeywords = $_POST['keywords']??'';
+ $strKeywords = $_POST['keywords']??"";
$intAuthor = $_POST['author']??0;
$intPeriod = $_POST['period']??0;
$strDate = $_POST['date']??'';
@@ -124,8 +124,8 @@
*/
public function addedit_project() {
if (!isset($_SESSION['user'])){
- header("Location:index.php?ctrl=error&action=error_403");
- exit;
+ $error = new \Controllers\ErrorCtrl();
+ return $error->error_403();
}
$objProject = new Project;
@@ -135,8 +135,8 @@
if (isset($_GET['id'])){
$arrProject = $objProjectModel->findOne($_GET['id']);
if($_SESSION['user']['user_id'] != $arrProject['project_user_id']){
- header("Location:index.php?ctrl=error&action=error_403");
- exit;
+ $error = new \Controllers\ErrorCtrl();
+ return $error->error_403();
}
$objProject->hydrate($arrProject);
$this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId());
@@ -200,7 +200,7 @@
$strSource = $_FILES['thumbnail']['tmp_name'];
list($intWidth, $intHeight) = getimagesize($strSource);
- $intDestWidth = 200; $intDestHeight = 250;
+ $intDestWidth = 1280; $intDestHeight = 720;
$fltDestRatio = $intDestWidth / $intDestHeight;
$fltSourceRatio = $intWidth / $intHeight;
@@ -325,7 +325,7 @@
}
$_SESSION['success'] = (!isset($_GET['id'])) ? "Le projet a bien été créé" : "Le projet a bien été modifié";
- header("Location:index.php");
+ header('Location:'.$_ENV['BASE_URL']);
exit;
} else {
$arrError[] = "Erreur lors de l'enregistrement en base de données";
@@ -360,9 +360,9 @@
$objProjectModel = new ProjectModel();
$arrProject = $objProjectModel->findOne((int)$intId);
- $arrImages = $objProjectModel->getImagesByProjectId((int)$intId);
if ($arrProject) {
+ $arrImages = $objProjectModel->getImagesByProjectId((int)$intId);
$objProject = new Project();
$objProject->hydrate($arrProject);
@@ -373,11 +373,11 @@
$this->_display("project_display");
} else {
- header("Location: index.php?ctrl=project&action=home");
+ header('Location: '.$_ENV['BASE_URL'].'/project/home');
exit;
}
} else {
- header("Location: index.php?ctrl=project&action=home");
+ header('Location: '.$_ENV['BASE_URL'].'/project/home');
exit;
}
}
@@ -395,7 +395,7 @@
$arrProject = $objProjectModel->findOne($projectId);
if (!$arrProject) {
- header("Location: index.php?ctrl=project&action=home");
+ header('Location: '.$_ENV['BASE_URL'].'/project/home');
exit;
}
@@ -429,8 +429,8 @@
$objMail->Subject = "Projet : " . $objProject->getTitle();
- $url = "https://php.boulayoune.com/index.php?ctrl=project&action=display&id=" . $projectId;
-
+ $url = $_ENV['BASE_URL'].'/project/display/'.$projectId;
+
$this->_arrData['projectTitle'] = $objProject->getTitle();
$this->_arrData['projectDescription'] = $objProject->getDescription();
$this->_arrData['projectUrl'] = $url;
@@ -438,14 +438,14 @@
$objMail->Body = $this->_display("mail_message", false);
if ($objMail->Send()) {
- header("Location: index.php?ctrl=project&action=display&id=".$projectId."&mail=ok");
+ header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=ok');
} else {
- header("Location: index.php?ctrl=project&action=display&id=".$projectId."&mail=fail");
+ header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=fail');
}
exit;
}
- header("Location: index.php?ctrl=project&action=home");
+ header('Location: '.$_ENV['BASE_URL'].'/project/home');
exit;
}
@@ -459,7 +459,7 @@
$objProjectModel = new ProjectModel;
$objProjectModel->accept($intId);
- header("Location: index.php");
+ header('Location: '.$_ENV['BASE_URL']);
exit;
}
@@ -473,7 +473,7 @@
$objProjectModel = new ProjectModel;
$objProjectModel->refuse($intId);
- header("Location: index.php");
+ header('Location: '.$_ENV['BASE_URL']);
exit;
}
@@ -483,7 +483,7 @@
public function delete(){
if (!isset($_SESSION['user']) || $_SESSION['user']['user_status'] != 2) {
- header("Location: index.php");
+ header('Location: '.$_ENV['BASE_URL']);
exit;
}
@@ -498,7 +498,7 @@
}
}
- header("Location: index.php");
+ header('Location: '.$_ENV['BASE_URL']);
exit;
}
@@ -518,7 +518,7 @@
}
$urlRedirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "index.php";
- header("Location: " . $urlRedirect);
+ header('Location: ' . $urlRedirect);
exit;
}
@@ -541,7 +541,7 @@
}
$url = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "index.php";
- header("Location: " . $url);
+ header('Location: ' . $url);
exit;
}
diff --git a/controllers/UserCtrl.php b/controllers/UserCtrl.php
index c1f288a..7ecb8a9 100644
--- a/controllers/UserCtrl.php
+++ b/controllers/UserCtrl.php
@@ -48,7 +48,7 @@ class UserCtrl extends MotherCtrl {
setcookie('remember_me', $token, time() + (15*24*60*60), "/", "", true, true);
}
- header("Location:index.php");
+ header("Location:".$_ENV['BASE_URL']);
exit;
}
}
@@ -75,7 +75,7 @@ class UserCtrl extends MotherCtrl {
$_SESSION['success'] = "Vous êtes bien déconnecté";
- header("Location:index.php");
+ header("Location:".$_ENV['BASE_URL']);
exit;
}
@@ -143,7 +143,7 @@ class UserCtrl extends MotherCtrl {
if ($boolInsert === true) {
$_SESSION['success'] = "Compte créé avec succès";
- header("Location:index.php?ctrl=user&action=login");
+ header("Location:".$_ENV['BASE_URL']."/user/login");
exit;
} else {
$arrError['global'] = "Erreur lors de l'ajout";
@@ -169,7 +169,7 @@ class UserCtrl extends MotherCtrl {
$arrUserData = $objUserModel->findUserByPseudo($strPseudo);
if ($arrUserData === false) {
- header("Location: index.php");
+ header("Location: ".$_ENV['BASE_URL']);
exit;
}
@@ -195,7 +195,7 @@ class UserCtrl extends MotherCtrl {
*/
public function edit(){
if(!isset($_SESSION['user'])){
- header("Location: index.php");
+ header("Location: ".$_ENV['BASE_URL']);
exit;
}
$objUserModel = new UserModel;
@@ -243,6 +243,7 @@ class UserCtrl extends MotherCtrl {
}
}
}
+
if (count($arrError) == 0 && isset($strImageName)) {
$strDest = $_ENV['IMG_USER_PATH'] . $strImageName;
@@ -279,17 +280,25 @@ class UserCtrl extends MotherCtrl {
}
+ if ($_POST['delete_image'] === '1') {
+ $strOldImg = $objUser->getImage();
+ if (!empty($strOldImg) && $strOldImg !== 'images.jpg') {
+ $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
+ if (file_exists($strOldFile)) unlink($strOldFile);
+ }
+ $objUser->setImage('images.jpg');
+ }
$boolInsert = $objUserModel->update($objUser);
if ($boolInsert === true) {
- if (isset($strOldImg) && !empty($strOldImg) && isset($strImageName)) {
- $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
- if (file_exists($strOldFile)) unlink($strOldFile);
+ if (isset($strOldImg) && !empty($strOldImg) && $strOldImg !== 'images.jpg' && isset($strImageName)) {
+ $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
+ if (file_exists($strOldFile)) unlink($strOldFile);
}
$arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo());
$_SESSION['user'] = $arrNewInfo;
$_SESSION['success'] = "Compte modifier avec succès";
- header("Location:?ctrl=user&action=user&pseudo=".$objUser->getPseudo());
+ header('Location:'.$_ENV['BASE_URL'].'/user/user/'.$objUser->getPseudo());
exit;
} else {
$arrError['global'] = "Erreur lors de l'update";
diff --git a/entities/Project.php b/entities/Project.php
index 5071b57..ca5c941 100644
--- a/entities/Project.php
+++ b/entities/Project.php
@@ -226,7 +226,7 @@ class Project extends Mother{
* Récupération de la date du projet supprimer
* @return string date du projet
*/
- public function getProject_deleted_at(){
+ public function getDeleted_at(){
return $this->_project_deleted_at;
}
@@ -234,7 +234,7 @@ class Project extends Mother{
* Mise à jour de la date de suppression de projet
* @param string date du projet
*/
- public function setProject_deleted_at($project_deleted_at){
+ public function setDeleted_at($project_deleted_at){
$this->_project_deleted_at = $project_deleted_at;
}
}
\ No newline at end of file
diff --git a/entities/User.php b/entities/User.php
index 1eee5be..f156205 100644
--- a/entities/User.php
+++ b/entities/User.php
@@ -90,7 +90,7 @@
* @return string le nouveau pseudo de l'utilisateur
*/
public function setPseudo(string $pseudo){
- $this->_pseudo = $pseudo;
+ $this->_pseudo = str_replace(" ","_",$pseudo);
}
/**
diff --git a/env b/env
index 1ba2754..611d244 100644
--- a/env
+++ b/env
@@ -1,7 +1,7 @@
# config BDD
DB_CONNECTION=mysql
-DB_HOSTNAME=boulayoune.com
+DB_HOSTNAME=localhost
DB_DATABASE=projet_folliow
DB_USERNAME=
DB_PASSWORD=
diff --git a/html/annotated.html b/html/annotated.html
index d1626e1..bcd2e96 100644
--- a/html/annotated.html
+++ b/html/annotated.html
@@ -28,6 +28,7 @@
@@ -88,7 +89,7 @@ $(function(){initNavTree('dir_9404ca00d5cf333c309ae0ebf80749c4.html','',''); });
@@ -104,7 +105,7 @@ $(function(){initNavTree('dir_9404ca00d5cf333c309ae0ebf80749c4.html','',''); });
diff --git a/html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html b/html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html
new file mode 100644
index 0000000..d9b5324
--- /dev/null
+++ b/html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
Folliow: C:/Users/Guill Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Folliow
+
+ Un projet de site web réaliser en PHP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/html/dir_f880fbcdfabe64616040b95a4e03089d.html b/html/dir_f880fbcdfabe64616040b95a4e03089d.html
new file mode 100644
index 0000000..7ba12b4
--- /dev/null
+++ b/html/dir_f880fbcdfabe64616040b95a4e03089d.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
Folliow: C:/Users/Guill/projet_php/models Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Folliow
+
+ Un projet de site web réaliser en PHP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/html/doxygen_crawl.html b/html/doxygen_crawl.html
index a7f0a67..e20d408 100644
--- a/html/doxygen_crawl.html
+++ b/html/doxygen_crawl.html
@@ -157,11 +157,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/html/functions.html b/html/functions.html
index a3d4020..5faf08f 100644
--- a/html/functions.html
+++ b/html/functions.html
@@ -28,6 +28,7 @@
Folliow
+ Un projet de site web réaliser en PHP
diff --git a/html/functions_func.html b/html/functions_func.html
index 76745b0..643e105 100644
--- a/html/functions_func.html
+++ b/html/functions_func.html
@@ -28,6 +28,7 @@
Folliow
+ Un projet de site web réaliser en PHP
diff --git a/html/hierarchy.html b/html/hierarchy.html
index a10be6e..908ebcb 100644
--- a/html/hierarchy.html
+++ b/html/hierarchy.html
@@ -28,6 +28,7 @@
Folliow
+ Un projet de site web réaliser en PHP
diff --git a/html/index.html b/html/index.html
index 72c8522..48abdd8 100644
--- a/html/index.html
+++ b/html/index.html
@@ -28,6 +28,7 @@
Folliow
+ Un projet de site web réaliser en PHP
diff --git a/html/search/all_10.js b/html/search/all_10.js
new file mode 100644
index 0000000..bca4de5
--- /dev/null
+++ b/html/search/all_10.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['update_0',['update',['../class_models_1_1_user_model.html#a4f2888d0004092a367fa2d1b2620818f',1,'Models::UserModel']]],
+ ['updateimagestatus_1',['updateImageStatus',['../class_models_1_1_project_model.html#aeb942ee7cfbea8509e49a5114228f53b',1,'Models::ProjectModel']]],
+ ['updateproject_2',['updateProject',['../class_models_1_1_project_model.html#a1736ff58fc8fadf358ddb510b4c8d3f7',1,'Models::ProjectModel']]],
+ ['user_3',['User',['../class_entities_1_1_user.html',1,'Entities']]],
+ ['user_4',['user',['../class_controllers_1_1_user_ctrl.html#ae8a275690ff1b618e1947378b0ed73ae',1,'Controllers::UserCtrl']]],
+ ['userctrl_5',['UserCtrl',['../class_controllers_1_1_user_ctrl.html',1,'Controllers']]],
+ ['usermodel_6',['UserModel',['../class_models_1_1_user_model.html',1,'Models']]]
+];
diff --git a/html/search/all_11.js b/html/search/all_11.js
new file mode 100644
index 0000000..d922979
--- /dev/null
+++ b/html/search/all_11.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['verifuser_0',['verifUser',['../class_models_1_1_user_model.html#a04e007855c8aa842068779d8a871bb42',1,'Models::UserModel']]]
+];
diff --git a/html/search/all_12.js b/html/search/all_12.js
new file mode 100644
index 0000000..93dc4b6
--- /dev/null
+++ b/html/search/all_12.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['–_20projet_20php_0',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]]
+];
diff --git a/html/search/all_5.js b/html/search/all_5.js
index ccf331c..be7e39a 100644
--- a/html/search/all_5.js
+++ b/html/search/all_5.js
@@ -1,12 +1,15 @@
var searchData=
[
- ['findall_0',['findAll',['../class_models_1_1_project_model.html#acbfa7e289b7712cf5200f398cff05c43',1,'Models::ProjectModel']]],
- ['findallauthorisation_1',['findAllAuthorisation',['../class_models_1_1_authorisation_model.html#af7bd93cc2fd6ac548707d3a66a8380df',1,'Models::AuthorisationModel']]],
- ['findallcategory_2',['findAllCategory',['../class_models_1_1_category_model.html#a4e6d48b9130d9cb4cc08a88cef84e8f9',1,'Models::CategoryModel']]],
- ['findallimage_3',['findAllImage',['../class_models_1_1_image_model.html#aaf9e88eb8d1aff57a085e1d38de15060',1,'Models::ImageModel']]],
- ['findallusers_4',['findAllUsers',['../class_models_1_1_user_model.html#a404b6b890d58bfa7220da4a08a60f445',1,'Models::UserModel']]],
- ['findimage_5',['findImage',['../class_models_1_1_project_model.html#a0a8e47e6d6b839638ab85addfda45e3b',1,'Models::ProjectModel']]],
- ['findone_6',['findOne',['../class_models_1_1_project_model.html#ae0fabc6b177cda25efeee083f904c207',1,'Models::ProjectModel']]],
- ['finduserbyid_7',['findUserById',['../class_models_1_1_user_model.html#a6620c458b01ecbb1ed76083a4ac2345e',1,'Models::UserModel']]],
- ['finduserbypseudo_8',['findUserByPseudo',['../class_models_1_1_user_model.html#a9f95476e8b07dbc01f711f36672684ad',1,'Models::UserModel']]]
+ ['features_0',['Features',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md2',1,'']]],
+ ['findall_1',['findAll',['../class_models_1_1_project_model.html#acbfa7e289b7712cf5200f398cff05c43',1,'Models::ProjectModel']]],
+ ['findallauthorisation_2',['findAllAuthorisation',['../class_models_1_1_authorisation_model.html#af7bd93cc2fd6ac548707d3a66a8380df',1,'Models::AuthorisationModel']]],
+ ['findallcategory_3',['findAllCategory',['../class_models_1_1_category_model.html#a4e6d48b9130d9cb4cc08a88cef84e8f9',1,'Models::CategoryModel']]],
+ ['findallimage_4',['findAllImage',['../class_models_1_1_image_model.html#aaf9e88eb8d1aff57a085e1d38de15060',1,'Models::ImageModel']]],
+ ['findallusers_5',['findAllUsers',['../class_models_1_1_user_model.html#a404b6b890d58bfa7220da4a08a60f445',1,'Models::UserModel']]],
+ ['findimage_6',['findImage',['../class_models_1_1_project_model.html#a0a8e47e6d6b839638ab85addfda45e3b',1,'Models::ProjectModel']]],
+ ['findone_7',['findOne',['../class_models_1_1_project_model.html#ae0fabc6b177cda25efeee083f904c207',1,'Models::ProjectModel']]],
+ ['finduserbyid_8',['findUserById',['../class_models_1_1_user_model.html#a6620c458b01ecbb1ed76083a4ac2345e',1,'Models::UserModel']]],
+ ['finduserbypseudo_9',['findUserByPseudo',['../class_models_1_1_user_model.html#a9f95476e8b07dbc01f711f36672684ad',1,'Models::UserModel']]],
+ ['folliow_20–_20projet_20php_10',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
+ ['future_20improvements_11',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]]
];
diff --git a/html/search/all_8.js b/html/search/all_8.js
index 353b00e..91ecce8 100644
--- a/html/search/all_8.js
+++ b/html/search/all_8.js
@@ -2,6 +2,8 @@ var searchData=
[
['image_0',['Image',['../class_entities_1_1_image.html',1,'Entities']]],
['imagemodel_1',['ImageModel',['../class_models_1_1_image_model.html',1,'Models']]],
- ['insert_2',['insert',['../class_models_1_1_project_model.html#ad2a2f3e436d06db0fc4af3c44c867805',1,'Models\\ProjectModel\\insert()'],['../class_models_1_1_user_model.html#ab0eb29a478a1230d479aee1046b0f1dc',1,'Models\\UserModel\\insert()']]],
- ['insertcategory_3',['insertCategory',['../class_models_1_1_category_model.html#a1102f9228de8f7938a1f35a3abbc2dc7',1,'Models::CategoryModel']]]
+ ['improvements_2',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]],
+ ['insert_3',['insert',['../class_models_1_1_project_model.html#ad2a2f3e436d06db0fc4af3c44c867805',1,'Models\\ProjectModel\\insert()'],['../class_models_1_1_user_model.html#ab0eb29a478a1230d479aee1046b0f1dc',1,'Models\\UserModel\\insert()']]],
+ ['insertcategory_4',['insertCategory',['../class_models_1_1_category_model.html#a1102f9228de8f7938a1f35a3abbc2dc7',1,'Models::CategoryModel']]],
+ ['installation_5',['Installation',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md8',1,'']]]
];
diff --git a/html/search/all_9.js b/html/search/all_9.js
index 3d02d06..755a71a 100644
--- a/html/search/all_9.js
+++ b/html/search/all_9.js
@@ -1,5 +1,7 @@
var searchData=
[
- ['login_0',['login',['../class_controllers_1_1_user_ctrl.html#aa311da27ba5706f5710cea7706c8eae1',1,'Controllers::UserCtrl']]],
- ['logout_1',['logout',['../class_controllers_1_1_user_ctrl.html#a082405d89acd6835c3a7c7a08a7adbab',1,'Controllers::UserCtrl']]]
+ ['learning_20objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]],
+ ['license_1',['License',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md14',1,'']]],
+ ['login_2',['login',['../class_controllers_1_1_user_ctrl.html#aa311da27ba5706f5710cea7706c8eae1',1,'Controllers::UserCtrl']]],
+ ['logout_3',['logout',['../class_controllers_1_1_user_ctrl.html#a082405d89acd6835c3a7c7a08a7adbab',1,'Controllers::UserCtrl']]]
];
diff --git a/html/search/all_b.js b/html/search/all_b.js
index 4711197..3c88a3a 100644
--- a/html/search/all_b.js
+++ b/html/search/all_b.js
@@ -1,8 +1,4 @@
var searchData=
[
- ['pagectrl_0',['PageCtrl',['../class_controllers_1_1_page_ctrl.html',1,'Controllers']]],
- ['project_1',['Project',['../class_entities_1_1_project.html',1,'Entities']]],
- ['projectctrl_2',['ProjectCtrl',['../class_controllers_1_1_project_ctrl.html',1,'Controllers']]],
- ['projectmodel_3',['ProjectModel',['../class_models_1_1_project_model.html',1,'Models']]],
- ['pseudoexists_4',['pseudoExists',['../class_models_1_1_user_model.html#aaf42cd7de4bddf6d3a075aa9bc252b8f',1,'Models::UserModel']]]
+ ['objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]]
];
diff --git a/html/search/all_c.js b/html/search/all_c.js
index ce196b2..b4b41a3 100644
--- a/html/search/all_c.js
+++ b/html/search/all_c.js
@@ -1,5 +1,11 @@
var searchData=
[
- ['refuse_0',['refuse',['../class_controllers_1_1_project_ctrl.html#a68a43ec4877b5210ef8ad989fbc14d82',1,'Controllers\\ProjectCtrl\\refuse()'],['../class_models_1_1_project_model.html#a64714f38f74ab942d027f04e86e40d25',1,'Models\\ProjectModel\\refuse()']]],
- ['remember_1',['remember',['../class_models_1_1_user_model.html#a30563e7cabc0c9aa2bf4157b241ad55a',1,'Models::UserModel']]]
+ ['pagectrl_0',['PageCtrl',['../class_controllers_1_1_page_ctrl.html',1,'Controllers']]],
+ ['php_1',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
+ ['project_2',['Project',['../class_entities_1_1_project.html',1,'Entities']]],
+ ['project_20structure_3',['Project Structure',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md6',1,'']]],
+ ['projectctrl_4',['ProjectCtrl',['../class_controllers_1_1_project_ctrl.html',1,'Controllers']]],
+ ['projectmodel_5',['ProjectModel',['../class_models_1_1_project_model.html',1,'Models']]],
+ ['projet_20php_6',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
+ ['pseudoexists_7',['pseudoExists',['../class_models_1_1_user_model.html#aaf42cd7de4bddf6d3a075aa9bc252b8f',1,'Models::UserModel']]]
];
diff --git a/html/search/all_d.js b/html/search/all_d.js
index ad2e860..ce196b2 100644
--- a/html/search/all_d.js
+++ b/html/search/all_d.js
@@ -1,31 +1,5 @@
var searchData=
[
- ['search_0',['search',['../class_controllers_1_1_project_ctrl.html#a796bf438724e047aeef18579732a3780',1,'Controllers::ProjectCtrl']]],
- ['sendemail_1',['sendEmail',['../class_controllers_1_1_project_ctrl.html#a6665aeb6e312ea89283ce785f0dfad60',1,'Controllers::ProjectCtrl']]],
- ['setaccountcreation_2',['setAccountCreation',['../class_entities_1_1_user.html#aa8eb1e10f1ab32dcfa4df144fe02ba16',1,'Entities::User']]],
- ['setalt_3',['setAlt',['../class_entities_1_1_image.html#a23d9d1d65334db3a72b3c19e146cfe28',1,'Entities::Image']]],
- ['setbirth_4',['setBirth',['../class_entities_1_1_user.html#a4a6578fae7673e253c0ddb1f95cf227c',1,'Entities::User']]],
- ['setcategory_5',['setCategory',['../class_entities_1_1_project.html#a309475f82c8fca1a84f96f802f05a5fb',1,'Entities::Project']]],
- ['setcontent_6',['setContent',['../class_entities_1_1_project.html#a04a5eddb7c3abc7bf31fa25b58f046bf',1,'Entities::Project']]],
- ['setcreation_5fdate_7',['setCreation_date',['../class_entities_1_1_project.html#a547ac5297a9b9efc8a4b6bef00eb6c2e',1,'Entities::Project']]],
- ['setcreatorname_8',['setCreatorName',['../class_entities_1_1_project.html#aa37594941aea25a0f0d3a33d6a8757b7',1,'Entities::Project']]],
- ['setdescription_9',['setDescription',['../class_entities_1_1_project.html#a31fad3e39336ea079ea758e051866627',1,'Entities\\Project\\setDescription()'],['../class_entities_1_1_user.html#a3eda7afea80371b606cd289c66ab3e7c',1,'Entities\\User\\setDescription(string $description)']]],
- ['setfirstname_10',['setFirstname',['../class_entities_1_1_user.html#a102793bdeeaa7eaa2bca4e31eb3782e5',1,'Entities::User']]],
- ['setid_11',['setId',['../class_entities_1_1_authorisation.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Authorisation\\setId()'],['../class_entities_1_1_category.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Category\\setId()'],['../class_entities_1_1_image.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Image\\setId()'],['../class_entities_1_1_project.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Project\\setId()'],['../class_entities_1_1_user.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\User\\setId(int $id)']]],
- ['setimage_12',['setImage',['../class_entities_1_1_user.html#a6c7550f5363e74b3ee9225bf85e11b8d',1,'Entities::User']]],
- ['setlocation_13',['setLocation',['../class_entities_1_1_user.html#a4c5c6e78f1e8c0ae4bf416d0f0d73ef1',1,'Entities::User']]],
- ['setmail_14',['setMail',['../class_entities_1_1_user.html#ad5ba083b208ed11aa16938a8ba87a78c',1,'Entities::User']]],
- ['setname_15',['setName',['../class_entities_1_1_authorisation.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\Authorisation\\setName()'],['../class_entities_1_1_category.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Category\\setName()'],['../class_entities_1_1_image.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Image\\setName()'],['../class_entities_1_1_user.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\User\\setName()']]],
- ['setparent_16',['setParent',['../class_entities_1_1_category.html#a3b949fc022c82eb25e8650e0e01404fa',1,'Entities::Category']]],
- ['setphone_17',['setPhone',['../class_entities_1_1_user.html#a652bfdb5ce275246ece54449fe5ca59e',1,'Entities::User']]],
- ['setproject_5fdeleted_5fat_18',['setProject_deleted_at',['../class_entities_1_1_project.html#a621433ce4917a196047b78e58e38d7fe',1,'Entities::Project']]],
- ['setpseudo_19',['setPseudo',['../class_entities_1_1_user.html#a02d546b854db37406ec591d3e16809eb',1,'Entities::User']]],
- ['setpwd_20',['setPwd',['../class_entities_1_1_user.html#a9cc7dc33859895f98da4e22f5ae1a9bf',1,'Entities::User']]],
- ['setstatus_21',['setStatus',['../class_entities_1_1_image.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Image\\setStatus()'],['../class_entities_1_1_project.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Project\\setStatus()'],['../class_entities_1_1_user.html#a2f8308ff566858664b95361214f29eac',1,'Entities\\User\\setStatus()']]],
- ['setthumbnail_22',['setThumbnail',['../class_entities_1_1_project.html#a89bdfd911301f4ac284a937e93f4de50',1,'Entities::Project']]],
- ['settitle_23',['setTitle',['../class_entities_1_1_project.html#a884ba9bb0d54bde7839e798db7964476',1,'Entities::Project']]],
- ['setuser_5fid_24',['setUser_id',['../class_entities_1_1_project.html#a74bdd06d4bca0de42e55bdf7763ebfc4',1,'Entities::Project']]],
- ['setuser_5fimage_25',['setUser_image',['../class_entities_1_1_project.html#a17164d0ccbccaceb60280836d060e21f',1,'Entities::Project']]],
- ['setwork_26',['setWork',['../class_entities_1_1_user.html#ae6c2c46108019bd83091add6417eb894',1,'Entities::User']]],
- ['signup_27',['signup',['../class_controllers_1_1_user_ctrl.html#a852ed40b79f143c1478699d908f46957',1,'Controllers::UserCtrl']]]
+ ['refuse_0',['refuse',['../class_controllers_1_1_project_ctrl.html#a68a43ec4877b5210ef8ad989fbc14d82',1,'Controllers\\ProjectCtrl\\refuse()'],['../class_models_1_1_project_model.html#a64714f38f74ab942d027f04e86e40d25',1,'Models\\ProjectModel\\refuse()']]],
+ ['remember_1',['remember',['../class_models_1_1_user_model.html#a30563e7cabc0c9aa2bf4157b241ad55a',1,'Models::UserModel']]]
];
diff --git a/html/search/all_e.js b/html/search/all_e.js
index bca4de5..a013425 100644
--- a/html/search/all_e.js
+++ b/html/search/all_e.js
@@ -1,10 +1,33 @@
var searchData=
[
- ['update_0',['update',['../class_models_1_1_user_model.html#a4f2888d0004092a367fa2d1b2620818f',1,'Models::UserModel']]],
- ['updateimagestatus_1',['updateImageStatus',['../class_models_1_1_project_model.html#aeb942ee7cfbea8509e49a5114228f53b',1,'Models::ProjectModel']]],
- ['updateproject_2',['updateProject',['../class_models_1_1_project_model.html#a1736ff58fc8fadf358ddb510b4c8d3f7',1,'Models::ProjectModel']]],
- ['user_3',['User',['../class_entities_1_1_user.html',1,'Entities']]],
- ['user_4',['user',['../class_controllers_1_1_user_ctrl.html#ae8a275690ff1b618e1947378b0ed73ae',1,'Controllers::UserCtrl']]],
- ['userctrl_5',['UserCtrl',['../class_controllers_1_1_user_ctrl.html',1,'Controllers']]],
- ['usermodel_6',['UserModel',['../class_models_1_1_user_model.html',1,'Models']]]
+ ['search_0',['search',['../class_controllers_1_1_project_ctrl.html#a796bf438724e047aeef18579732a3780',1,'Controllers::ProjectCtrl']]],
+ ['sendemail_1',['sendEmail',['../class_controllers_1_1_project_ctrl.html#a6665aeb6e312ea89283ce785f0dfad60',1,'Controllers::ProjectCtrl']]],
+ ['setaccountcreation_2',['setAccountCreation',['../class_entities_1_1_user.html#aa8eb1e10f1ab32dcfa4df144fe02ba16',1,'Entities::User']]],
+ ['setalt_3',['setAlt',['../class_entities_1_1_image.html#a23d9d1d65334db3a72b3c19e146cfe28',1,'Entities::Image']]],
+ ['setbirth_4',['setBirth',['../class_entities_1_1_user.html#a4a6578fae7673e253c0ddb1f95cf227c',1,'Entities::User']]],
+ ['setcategory_5',['setCategory',['../class_entities_1_1_project.html#a309475f82c8fca1a84f96f802f05a5fb',1,'Entities::Project']]],
+ ['setcontent_6',['setContent',['../class_entities_1_1_project.html#a04a5eddb7c3abc7bf31fa25b58f046bf',1,'Entities::Project']]],
+ ['setcreation_5fdate_7',['setCreation_date',['../class_entities_1_1_project.html#a547ac5297a9b9efc8a4b6bef00eb6c2e',1,'Entities::Project']]],
+ ['setcreatorname_8',['setCreatorName',['../class_entities_1_1_project.html#aa37594941aea25a0f0d3a33d6a8757b7',1,'Entities::Project']]],
+ ['setdescription_9',['setDescription',['../class_entities_1_1_project.html#a31fad3e39336ea079ea758e051866627',1,'Entities\\Project\\setDescription()'],['../class_entities_1_1_user.html#a3eda7afea80371b606cd289c66ab3e7c',1,'Entities\\User\\setDescription(string $description)']]],
+ ['setfirstname_10',['setFirstname',['../class_entities_1_1_user.html#a102793bdeeaa7eaa2bca4e31eb3782e5',1,'Entities::User']]],
+ ['setid_11',['setId',['../class_entities_1_1_authorisation.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Authorisation\\setId()'],['../class_entities_1_1_category.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Category\\setId()'],['../class_entities_1_1_image.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Image\\setId()'],['../class_entities_1_1_project.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Project\\setId()'],['../class_entities_1_1_user.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\User\\setId(int $id)']]],
+ ['setimage_12',['setImage',['../class_entities_1_1_user.html#a6c7550f5363e74b3ee9225bf85e11b8d',1,'Entities::User']]],
+ ['setlocation_13',['setLocation',['../class_entities_1_1_user.html#a4c5c6e78f1e8c0ae4bf416d0f0d73ef1',1,'Entities::User']]],
+ ['setmail_14',['setMail',['../class_entities_1_1_user.html#ad5ba083b208ed11aa16938a8ba87a78c',1,'Entities::User']]],
+ ['setname_15',['setName',['../class_entities_1_1_authorisation.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\Authorisation\\setName()'],['../class_entities_1_1_category.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Category\\setName()'],['../class_entities_1_1_image.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Image\\setName()'],['../class_entities_1_1_user.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\User\\setName()']]],
+ ['setparent_16',['setParent',['../class_entities_1_1_category.html#a3b949fc022c82eb25e8650e0e01404fa',1,'Entities::Category']]],
+ ['setphone_17',['setPhone',['../class_entities_1_1_user.html#a652bfdb5ce275246ece54449fe5ca59e',1,'Entities::User']]],
+ ['setproject_5fdeleted_5fat_18',['setProject_deleted_at',['../class_entities_1_1_project.html#a621433ce4917a196047b78e58e38d7fe',1,'Entities::Project']]],
+ ['setpseudo_19',['setPseudo',['../class_entities_1_1_user.html#a02d546b854db37406ec591d3e16809eb',1,'Entities::User']]],
+ ['setpwd_20',['setPwd',['../class_entities_1_1_user.html#a9cc7dc33859895f98da4e22f5ae1a9bf',1,'Entities::User']]],
+ ['setstatus_21',['setStatus',['../class_entities_1_1_image.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Image\\setStatus()'],['../class_entities_1_1_project.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Project\\setStatus()'],['../class_entities_1_1_user.html#a2f8308ff566858664b95361214f29eac',1,'Entities\\User\\setStatus()']]],
+ ['setthumbnail_22',['setThumbnail',['../class_entities_1_1_project.html#a89bdfd911301f4ac284a937e93f4de50',1,'Entities::Project']]],
+ ['settitle_23',['setTitle',['../class_entities_1_1_project.html#a884ba9bb0d54bde7839e798db7964476',1,'Entities::Project']]],
+ ['setuser_5fid_24',['setUser_id',['../class_entities_1_1_project.html#a74bdd06d4bca0de42e55bdf7763ebfc4',1,'Entities::Project']]],
+ ['setuser_5fimage_25',['setUser_image',['../class_entities_1_1_project.html#a17164d0ccbccaceb60280836d060e21f',1,'Entities::Project']]],
+ ['setwork_26',['setWork',['../class_entities_1_1_user.html#ae6c2c46108019bd83091add6417eb894',1,'Entities::User']]],
+ ['signup_27',['signup',['../class_controllers_1_1_user_ctrl.html#a852ed40b79f143c1478699d908f46957',1,'Controllers::UserCtrl']]],
+ ['stack_28',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]],
+ ['structure_29',['Project Structure',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md6',1,'']]]
];
diff --git a/html/search/all_f.js b/html/search/all_f.js
index d922979..cabc0de 100644
--- a/html/search/all_f.js
+++ b/html/search/all_f.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['verifuser_0',['verifUser',['../class_models_1_1_user_model.html#a04e007855c8aa842068779d8a871bb42',1,'Models::UserModel']]]
+ ['tech_20stack_0',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]]
];
diff --git a/html/search/pages_0.js b/html/search/pages_0.js
new file mode 100644
index 0000000..0fea1ad
--- /dev/null
+++ b/html/search/pages_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['features_0',['Features',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md2',1,'']]],
+ ['folliow_20–_20projet_20php_1',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
+ ['future_20improvements_2',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]]
+];
diff --git a/html/search/pages_1.js b/html/search/pages_1.js
new file mode 100644
index 0000000..51cc0fb
--- /dev/null
+++ b/html/search/pages_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['improvements_0',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]],
+ ['installation_1',['Installation',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md8',1,'']]]
+];
diff --git a/html/search/pages_2.js b/html/search/pages_2.js
new file mode 100644
index 0000000..9c9b847
--- /dev/null
+++ b/html/search/pages_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['learning_20objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]],
+ ['license_1',['License',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md14',1,'']]]
+];
diff --git a/html/search/pages_3.js b/html/search/pages_3.js
new file mode 100644
index 0000000..3c88a3a
--- /dev/null
+++ b/html/search/pages_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]]
+];
diff --git a/html/search/pages_4.js b/html/search/pages_4.js
new file mode 100644
index 0000000..00a588a
--- /dev/null
+++ b/html/search/pages_4.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['php_0',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
+ ['project_20structure_1',['Project Structure',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md6',1,'']]],
+ ['projet_20php_2',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]]
+];
diff --git a/html/search/pages_5.js b/html/search/pages_5.js
new file mode 100644
index 0000000..cc6d51c
--- /dev/null
+++ b/html/search/pages_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['stack_0',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]],
+ ['structure_1',['Project Structure',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md6',1,'']]]
+];
diff --git a/html/search/pages_6.js b/html/search/pages_6.js
new file mode 100644
index 0000000..cabc0de
--- /dev/null
+++ b/html/search/pages_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['tech_20stack_0',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]]
+];
diff --git a/html/search/pages_7.js b/html/search/pages_7.js
new file mode 100644
index 0000000..93dc4b6
--- /dev/null
+++ b/html/search/pages_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['–_20projet_20php_0',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]]
+];
diff --git a/html/search/searchdata.js b/html/search/searchdata.js
index d6cd187..7ece18c 100644
--- a/html/search/searchdata.js
+++ b/html/search/searchdata.js
@@ -1,21 +1,24 @@
var indexSectionsWithContent =
{
- 0: "_acdefghilmprsuv",
+ 0: "_acdefghilmoprstuv–",
1: "aceimpu",
- 2: "_acdefghilmprsuv"
+ 2: "_acdefghilmprsuv",
+ 3: "filopst–"
};
var indexSectionNames =
{
0: "all",
1: "classes",
- 2: "functions"
+ 2: "functions",
+ 3: "pages"
};
var indexSectionLabels =
{
0: "All",
1: "Data Structures",
- 2: "Functions"
+ 2: "Functions",
+ 3: "Pages"
};
diff --git a/index.php b/index.php
index 0b6c7b0..72358a6 100644
--- a/index.php
+++ b/index.php
@@ -2,12 +2,11 @@
session_start();
require(__DIR__ . "/vendor/autoload.php");
- // Environnement
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->safeLoad();
- $strCtrl = $_GET['ctrl'] ?? 'project';
- $strMethod = $_GET['action'] ?? 'home';
+ $strCtrl = preg_replace('/[^a-zA-Z]/', '', $_GET['ctrl'] ?? 'project');
+ $strMethod = preg_replace('/[^a-zA-Z_]/', '', $_GET['action'] ?? 'home');
$strClassName = "Controllers\\" . ucfirst($strCtrl) . "Ctrl";
@@ -26,6 +25,8 @@
}
if ($boolError) {
- header("Location: index.php?ctrl=error&action=error_404");
- exit;
+ http_response_code(404); // ← important pour le SEO et les navigateurs
+ $error = new \Controllers\ErrorCtrl();
+ $error->error_404(); // ← pas de "return", juste l'appel
+ exit; // ← stoppe l'exécution après l'affichage
}
\ No newline at end of file
diff --git a/models/CategoryModel.php b/models/CategoryModel.php
index 2511e11..3ce1dc4 100644
--- a/models/CategoryModel.php
+++ b/models/CategoryModel.php
@@ -22,10 +22,18 @@
FROM category";
if ($intLimit > 0){
- $strRq .= " LIMIT ".$intLimit;
+ $strRq .= " LIMIT :limit";
}
- return $this->_db->query($strRq)->fetchAll();
+ $rqPrep = $this->_db->prepare($strRq);
+
+ if ($intLimit > 0){
+ $rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT);
+ }
+
+ $rqPrep->execute();
+
+ return $rqPrep->fetchAll();
}
/**
diff --git a/models/ImageModel.php b/models/ImageModel.php
index c471da4..c3cc95d 100644
--- a/models/ImageModel.php
+++ b/models/ImageModel.php
@@ -22,11 +22,18 @@
$strRq = "SELECT image.*
FROM image";
-
if ($intLimit > 0){
- $strRq .= " LIMIT ".$intLimit;
+ $strRq .= " LIMIT :limit";
}
- return $this->_db->query($strRq)->fetchAll();
+ $rqPrep = $this->_db->prepare($strRq);
+
+ if ($intLimit > 0){
+ $rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT);
+ }
+
+ $rqPrep->execute();
+
+ return $rqPrep->fetchAll();
}
}
\ No newline at end of file
diff --git a/models/MotherModel.php b/models/MotherModel.php
index df9f2f7..079d791 100644
--- a/models/MotherModel.php
+++ b/models/MotherModel.php
@@ -10,9 +10,9 @@
public function __construct(){
try{
$this->_db = new PDO(
- "mysql:host=localhost;dbname=projet_folliow",
- "projet_user",
- "F0lliowRules!",
+ "mysql:host=".$_ENV['DB_HOSTNAME'].";dbname=".$_ENV['DB_DATABASE'],
+ $_ENV['DB_USERNAME'],
+ $_ENV['DB_PASSWORD'],
array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC)
);
$this->_db->exec("SET CHARACTER SET utf8");
diff --git a/models/ProjectModel.php b/models/ProjectModel.php
index a248884..5e1b89f 100644
--- a/models/ProjectModel.php
+++ b/models/ProjectModel.php
@@ -23,58 +23,84 @@
string $strEndDate='', int $intCategory=0, bool $boolOlderThan6Months=false): array {
- $strRq = "SELECT project.*,
+ $strRq = "SELECT project.*,
user_pseudo AS 'project_creatorname',
user_image
FROM project
- INNER JOIN users ON user_id = project_user_id";
-
- $strRq .= " WHERE project_deleted_at IS NULL";
-
- $strAnd = " AND ";
+ INNER JOIN users ON user_id = project_user_id
+ WHERE 1=1";
if ($strKeywords != '') {
-
- $strSafeKeywords = $this->_db->quote("%" . $strKeywords . "%");
-
- $strRq .= $strAnd. " (project_title LIKE ".$strSafeKeywords."
- OR project_content LIKE ".$strSafeKeywords.") ";
-
+ $strRq .= " AND (project_title LIKE :keywords OR project_content LIKE :keywords)";
}
if ($intAuthor > 0){
- $strRq .= $strAnd." user_id = ".$intAuthor;
+ $strRq .= " AND project_user_id = :author";
+ }
- }
if ($intCategory > 0){
- $strRq .= $strAnd." project_category = ".$intCategory;
+ $strRq .= " AND project_category = :category";
}
+
if ($boolOlderThan6Months === true) {
- $strRq .= $strAnd . " project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH) ";
+ $strRq .= " AND project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH)";
}
+
if ($intPeriod == 0){
if ($strDate != ''){
- $strRq .= $strAnd." project_creation_date = '".$strDate."'";
+ $strRq .= " AND project_creation_date = :date_exacte";
}
- }else{
+ } else {
if ($strStartDate != '' && $strEndDate != ''){
- $strRq .= $strAnd." project_creation_date BETWEEN '".$strStartDate."' AND '".$strEndDate."'";
- }else{
+ $strRq .= " AND project_creation_date BETWEEN :date_debut AND :date_fin";
+ } else {
if ($strStartDate != ''){
- $strRq .= $strAnd." project_creation_date >= '".$strStartDate."'";
- }else if ($strEndDate != ''){
- $strRq .= $strAnd." project_creation_date <= '".$strEndDate."'";
+ $strRq .= " AND project_creation_date >= :date_debut";
+ } else if ($strEndDate != ''){
+ $strRq .= " AND project_creation_date <= :date_fin";
}
}
}
-
+
$strRq .= " ORDER BY project_creation_date DESC";
if ($intLimit > 0){
- $strRq .= " LIMIT ".$intLimit;
+ $strRq .= " LIMIT :limit";
}
- return $this->_db->query($strRq)->fetchAll();
+ $rqPrep = $this->_db->prepare($strRq);
+
+ if ($strKeywords != '') {
+ $rqPrep->bindValue(':keywords', '%' . $strKeywords . '%', PDO::PARAM_STR);
+ }
+ if ($intAuthor > 0){
+ $rqPrep->bindValue(':author', $intAuthor, PDO::PARAM_INT);
+ }
+ if ($intCategory > 0){
+ $rqPrep->bindValue(':category', $intCategory, PDO::PARAM_INT);
+ }
+ if ($intPeriod == 0){
+ if ($strDate != ''){
+ $rqPrep->bindValue(':date_exacte', $strDate, PDO::PARAM_STR);
+ }
+ } else {
+ if ($strStartDate != '' && $strEndDate != ''){
+ $rqPrep->bindValue(':date_debut', $strStartDate, PDO::PARAM_STR);
+ $rqPrep->bindValue(':date_fin', $strEndDate, PDO::PARAM_STR);
+ } else {
+ if ($strStartDate != ''){
+ $rqPrep->bindValue(':date_debut', $strStartDate, PDO::PARAM_STR);
+ } else if ($strEndDate != ''){
+ $rqPrep->bindValue(':date_fin', $strEndDate, PDO::PARAM_STR);
+ }
+ }
+ }
+ if ($intLimit > 0){
+ $rqPrep->bindValue(':limit', $intLimit, PDO::PARAM_INT);
+ }
+
+ $rqPrep->execute();
+ return $rqPrep->fetchAll();
}
@@ -110,9 +136,9 @@
/**
* Fonction de recherche d'un seul projet
* @param int $intId
- * @return array
+ * @return array|bool
*/
- public function findOne(int $intId) :array{
+ public function findOne(int $intId) :array|bool{
$strRq = "SELECT project.*,
users.user_pseudo AS 'project_creatorname',
users.user_image,
@@ -168,7 +194,8 @@
public function delete_soft_project(int $intId): bool {
$strRq = "UPDATE project
SET project_deleted_at = NOW(),
- project_edit_date = NOW()
+ project_edit_date = NOW(),
+ project_status = 'supprimé'
WHERE project_id = :id";
$rqPrep = $this->_db->prepare($strRq);
diff --git a/models/UserModel.php b/models/UserModel.php
index 3563238..5663504 100644
--- a/models/UserModel.php
+++ b/models/UserModel.php
@@ -37,9 +37,15 @@
$strRq = "SELECT user_id, user_name, user_firstname, user_password, user_image, user_status, authorisation_name, user_pseudo
FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status
- WHERE user_mail = '".$strMail."'";
+ WHERE user_mail = :mail";
+
+ $rqPrep = $this->_db->prepare($strRq);
+ $rqPrep->bindValue(":mail", $strMail, PDO::PARAM_STR);
+ $rqPrep->execute();
+
+
- $arrUser = $this->_db->query($strRq)->fetch();
+ $arrUser = $rqPrep->fetch();
if (password_verify($strPwd, $arrUser['user_password'])){
unset($arrUser['user_password']);
return $arrUser;
@@ -236,7 +242,7 @@
/**
* Verifie sur le pseudo entré n'est pas déjà utilisé
* @param string $pseudo Pseudo a verifié
- * @return array Tableau associatif (ou false si pas trouvé)
+ * @return bool Le pseudo existe ou pas
*/
public function pseudoExists(string $pseudo): bool{
@@ -244,6 +250,6 @@
$rq->bindValue(":pseudo", $pseudo, PDO::PARAM_STR);
$rq->execute();
- return $rq->fetchColumn();
+ return (bool)$rq->fetchColumn();
}
}
diff --git a/uploads/profiles/699d648ba35c3.webp b/uploads/profiles/699d648ba35c3.webp
deleted file mode 100644
index 3fa3f0a..0000000
Binary files a/uploads/profiles/699d648ba35c3.webp and /dev/null differ
diff --git a/uploads/profiles/69a5f0418103c.webp b/uploads/profiles/69a5f0418103c.webp
new file mode 100644
index 0000000..5652841
Binary files /dev/null and b/uploads/profiles/69a5f0418103c.webp differ
diff --git a/uploads/profiles/69a5f1e87275c.webp b/uploads/profiles/69a5f1e87275c.webp
new file mode 100644
index 0000000..db8dfc7
Binary files /dev/null and b/uploads/profiles/69a5f1e87275c.webp differ
diff --git a/uploads/profiles/69a5f231cd969.webp b/uploads/profiles/69a5f231cd969.webp
new file mode 100644
index 0000000..0605d6c
Binary files /dev/null and b/uploads/profiles/69a5f231cd969.webp differ
diff --git a/views/_partial/apigeo.tpl b/views/_partial/apigeo.tpl
new file mode 100644
index 0000000..fb32c47
--- /dev/null
+++ b/views/_partial/apigeo.tpl
@@ -0,0 +1,112 @@
+
+
\ No newline at end of file
diff --git a/views/_partial/delphoto.tpl b/views/_partial/delphoto.tpl
new file mode 100644
index 0000000..019ebcb
--- /dev/null
+++ b/views/_partial/delphoto.tpl
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/views/_partial/footer.tpl b/views/_partial/footer.tpl
index e90b260..fd0d63c 100644
--- a/views/_partial/footer.tpl
+++ b/views/_partial/footer.tpl
@@ -4,20 +4,24 @@
-
+
\ No newline at end of file
diff --git a/views/_partial/header.tpl b/views/_partial/header.tpl
index 316ce2e..6f60a4d 100644
--- a/views/_partial/header.tpl
+++ b/views/_partial/header.tpl
@@ -3,101 +3,108 @@
-
-
-
+
+
Folliow{block name="title"}{/block}
+
-
-
+
+
+
+
-
-
+
+
+
-
-
-
-
-
- À propos
-
+
+
+
+
+
-
-
+
+
+
{if !isset($smarty.session.user)}
-
{else}
-
+
-
-
-
-
-
- {block name="h2"}{/block}
-
-
- {block name="p"}{/block}
-
-
- {block name="date_maj"}{/block}
-
-
-
-
-
+
+
+
+
+ {block name="h2"}{/block}
+
+
+ {block name="p"}{/block}
+
+
+ {block name="date_maj"}{/block}
+
+
+
+
+
{include file="views/_partial/messages.tpl"}
diff --git a/views/_partial/preview.tpl b/views/_partial/preview.tpl
index 19ff6d3..a8c94d5 100644
--- a/views/_partial/preview.tpl
+++ b/views/_partial/preview.tpl
@@ -3,30 +3,46 @@
-
-
+
getCreatorName()|stripos:'minou' !== false}
+ style =" box-shadow: 0 0 0 4px #000; "{/if}
alt=""
loading="lazy">
-
+
getCreatorName()|stripos:'minou' !== false}style=" background-color: #ff8c00 !important; /* Orange tigre */
+ background-image: repeating-linear-gradient(
+ 45deg,
+ transparent,
+ transparent 30px,
+ rgba(0, 0, 0, 0.15) 30px,
+ rgba(0, 0, 0, 0.15) 60px
+ ) !important;
+ color: #000 !important;
+ position: relative;
+ z-index: 1;"{/if}>