Compare commits
38 commits
cc5a57f8b2
...
d2549828d0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2549828d0 | ||
|
|
c5acb87ccb | ||
|
|
f663b33c77 | ||
|
|
da33d61b69 | ||
|
|
ef21c4b33d | ||
|
|
41880662a6 | ||
|
|
b75ae2542a | ||
|
|
5071d5f2f3 | ||
|
|
480559ba48 | ||
|
|
c8343faec7 | ||
|
|
0dcbaf8e7c | ||
|
|
f1ef53c4ac | ||
|
|
5541f7e604 | ||
|
|
5c77c83349 | ||
|
|
4bddf0b409 | ||
|
|
5d03bf936d | ||
|
|
04d7d564f1 | ||
|
|
5638c0712d | ||
|
|
bc05f1e7bd | ||
|
|
7e0ba13ad5 | ||
|
|
31b2c00956 | ||
|
|
334dd55dee | ||
|
|
42ec68178a | ||
|
|
7475c3ce49 | ||
|
|
444f6ee155 | ||
|
|
b88ff889a2 | ||
|
|
e243169157 | ||
|
|
01bf507879 | ||
|
|
13d64fa908 | ||
|
|
c147631bc1 | ||
|
|
017c46f6ba | ||
|
|
7de8462d7b | ||
|
|
4c40d2f591 | ||
|
|
dd9cf43c42 | ||
|
|
ba75ac2dff | ||
|
|
3836927aa2 | ||
|
|
fd6f8829f4 | ||
|
|
e3d85f7946 |
98 changed files with 1906 additions and 553 deletions
10
.env
10
.env
|
|
@ -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/
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
||||||
/templates_c/
|
/templates_c/
|
||||||
/templates_c/**
|
/templates_c/**
|
||||||
.env
|
.env
|
||||||
|
.htaccess
|
||||||
|
|
@ -10,7 +10,12 @@ body {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||||
padding: 0.8rem 2rem;
|
padding: 0.8rem 2rem;
|
||||||
|
min-height: 64px;
|
||||||
|
max-height: 64px;
|
||||||
}
|
}
|
||||||
|
.navbar .navbar-collapse {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
.navbar-brand {
|
.navbar-brand {
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
|
|
@ -29,7 +34,13 @@ body {
|
||||||
margin: 0 0.2rem;
|
margin: 0 0.2rem;
|
||||||
transition: color 0.3s;
|
transition: color 0.3s;
|
||||||
}
|
}
|
||||||
|
.nav-avatar {
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
object-fit: cover;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
.navbar-nav .nav-link:hover {
|
.navbar-nav .nav-link:hover {
|
||||||
color: #0d6efd;
|
color: #0d6efd;
|
||||||
}
|
}
|
||||||
|
|
@ -117,3 +128,51 @@ body {
|
||||||
.txt_title {
|
.txt_title {
|
||||||
color: rgb(51, 152, 217);
|
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;
|
||||||
|
}
|
||||||
|
|
@ -21,8 +21,8 @@
|
||||||
public function admin(){
|
public function admin(){
|
||||||
|
|
||||||
if (!isset($_SESSION['user']) && ($_SESSION['user']['user_status'] != 1 )){
|
if (!isset($_SESSION['user']) && ($_SESSION['user']['user_status'] != 1 )){
|
||||||
header("Location:index.php?ctrl=error&action=error_403");
|
$error = new \Controllers\ErrorCtrl();
|
||||||
exit;
|
return $error->error_403();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objCategoryModel = new CategoryModel;
|
$objCategoryModel = new CategoryModel;
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
$newCat->setName($_POST['new_category']);
|
$newCat->setName($_POST['new_category']);
|
||||||
$objCategoryModel->insertCategory($newCat);
|
$objCategoryModel->insertCategory($newCat);
|
||||||
$_SESSION['success'] = "La catégorie a bien été ajoutée";
|
$_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;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
$editCat->setName($_POST['new_name']);
|
$editCat->setName($_POST['new_name']);
|
||||||
$objCategoryModel->editCategory($editCat);
|
$objCategoryModel->editCategory($editCat);
|
||||||
$_SESSION['success'] = "La catégorie a bien été modifiée";
|
$_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;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
$objUserModel->delete_soft($intUserId);
|
$objUserModel->delete_soft($intUserId);
|
||||||
$_SESSION['success'] = "L'utilisateur a été supprimé.";
|
$_SESSION['success'] = "L'utilisateur a été supprimé.";
|
||||||
}
|
}
|
||||||
header("Location: index.php?ctrl=admin&action=admin");
|
header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,14 +11,18 @@
|
||||||
* Page erreur 404
|
* Page erreur 404
|
||||||
*/
|
*/
|
||||||
public function error_404(){
|
public function error_404(){
|
||||||
|
http_response_code(404);
|
||||||
$this->_display("error_404");
|
$this->_display("error_404");
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page erreur 403
|
* Page erreur 403
|
||||||
*/
|
*/
|
||||||
public function error_403(){
|
public function error_403(){
|
||||||
|
http_response_code(403);
|
||||||
$this->_display("error_403");
|
$this->_display("error_403");
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -23,6 +23,7 @@
|
||||||
$objSmarty = new Smarty();
|
$objSmarty = new Smarty();
|
||||||
$objSmarty->registerPlugin('modifier', 'vardump', 'var_dump');
|
$objSmarty->registerPlugin('modifier', 'vardump', 'var_dump');
|
||||||
$objSmarty->registerPlugin('modifier', 'file_exists', 'file_exists');
|
$objSmarty->registerPlugin('modifier', 'file_exists', 'file_exists');
|
||||||
|
$objSmarty->registerPlugin('modifier', 'stripos', 'stripos');
|
||||||
$objSmarty->caching = false;
|
$objSmarty->caching = false;
|
||||||
|
|
||||||
$objSmarty->force_compile = true;
|
$objSmarty->force_compile = true;
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
*/
|
*/
|
||||||
public function search(){
|
public function search(){
|
||||||
|
|
||||||
$strKeywords = $_POST['keywords']??'';
|
$strKeywords = $_POST['keywords']??"";
|
||||||
$intAuthor = $_POST['author']??0;
|
$intAuthor = $_POST['author']??0;
|
||||||
$intPeriod = $_POST['period']??0;
|
$intPeriod = $_POST['period']??0;
|
||||||
$strDate = $_POST['date']??'';
|
$strDate = $_POST['date']??'';
|
||||||
|
|
@ -124,8 +124,8 @@
|
||||||
*/
|
*/
|
||||||
public function addedit_project() {
|
public function addedit_project() {
|
||||||
if (!isset($_SESSION['user'])){
|
if (!isset($_SESSION['user'])){
|
||||||
header("Location:index.php?ctrl=error&action=error_403");
|
$error = new \Controllers\ErrorCtrl();
|
||||||
exit;
|
return $error->error_403();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objProject = new Project;
|
$objProject = new Project;
|
||||||
|
|
@ -135,8 +135,8 @@
|
||||||
if (isset($_GET['id'])){
|
if (isset($_GET['id'])){
|
||||||
$arrProject = $objProjectModel->findOne($_GET['id']);
|
$arrProject = $objProjectModel->findOne($_GET['id']);
|
||||||
if($_SESSION['user']['user_id'] != $arrProject['project_user_id']){
|
if($_SESSION['user']['user_id'] != $arrProject['project_user_id']){
|
||||||
header("Location:index.php?ctrl=error&action=error_403");
|
$error = new \Controllers\ErrorCtrl();
|
||||||
exit;
|
return $error->error_403();
|
||||||
}
|
}
|
||||||
$objProject->hydrate($arrProject);
|
$objProject->hydrate($arrProject);
|
||||||
$this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId());
|
$this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId());
|
||||||
|
|
@ -200,7 +200,7 @@
|
||||||
$strSource = $_FILES['thumbnail']['tmp_name'];
|
$strSource = $_FILES['thumbnail']['tmp_name'];
|
||||||
list($intWidth, $intHeight) = getimagesize($strSource);
|
list($intWidth, $intHeight) = getimagesize($strSource);
|
||||||
|
|
||||||
$intDestWidth = 200; $intDestHeight = 250;
|
$intDestWidth = 1280; $intDestHeight = 720;
|
||||||
$fltDestRatio = $intDestWidth / $intDestHeight;
|
$fltDestRatio = $intDestWidth / $intDestHeight;
|
||||||
$fltSourceRatio = $intWidth / $intHeight;
|
$fltSourceRatio = $intWidth / $intHeight;
|
||||||
|
|
||||||
|
|
@ -325,7 +325,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$_SESSION['success'] = (!isset($_GET['id'])) ? "Le projet a bien été créé" : "Le projet a bien été modifié";
|
$_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;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$arrError[] = "Erreur lors de l'enregistrement en base de données";
|
$arrError[] = "Erreur lors de l'enregistrement en base de données";
|
||||||
|
|
@ -360,9 +360,9 @@
|
||||||
$objProjectModel = new ProjectModel();
|
$objProjectModel = new ProjectModel();
|
||||||
$arrProject = $objProjectModel->findOne((int)$intId);
|
$arrProject = $objProjectModel->findOne((int)$intId);
|
||||||
|
|
||||||
$arrImages = $objProjectModel->getImagesByProjectId((int)$intId);
|
|
||||||
|
|
||||||
if ($arrProject) {
|
if ($arrProject) {
|
||||||
|
$arrImages = $objProjectModel->getImagesByProjectId((int)$intId);
|
||||||
$objProject = new Project();
|
$objProject = new Project();
|
||||||
$objProject->hydrate($arrProject);
|
$objProject->hydrate($arrProject);
|
||||||
|
|
||||||
|
|
@ -373,11 +373,11 @@
|
||||||
$this->_display("project_display");
|
$this->_display("project_display");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -395,7 +395,7 @@
|
||||||
$arrProject = $objProjectModel->findOne($projectId);
|
$arrProject = $objProjectModel->findOne($projectId);
|
||||||
|
|
||||||
if (!$arrProject) {
|
if (!$arrProject) {
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -429,7 +429,7 @@
|
||||||
|
|
||||||
$objMail->Subject = "Projet : " . $objProject->getTitle();
|
$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['projectTitle'] = $objProject->getTitle();
|
||||||
$this->_arrData['projectDescription'] = $objProject->getDescription();
|
$this->_arrData['projectDescription'] = $objProject->getDescription();
|
||||||
|
|
@ -438,14 +438,14 @@
|
||||||
$objMail->Body = $this->_display("mail_message", false);
|
$objMail->Body = $this->_display("mail_message", false);
|
||||||
|
|
||||||
if ($objMail->Send()) {
|
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 {
|
} else {
|
||||||
header("Location: index.php?ctrl=project&action=display&id=".$projectId."&mail=fail");
|
header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=fail');
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -459,7 +459,7 @@
|
||||||
$objProjectModel = new ProjectModel;
|
$objProjectModel = new ProjectModel;
|
||||||
$objProjectModel->accept($intId);
|
$objProjectModel->accept($intId);
|
||||||
|
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -473,7 +473,7 @@
|
||||||
$objProjectModel = new ProjectModel;
|
$objProjectModel = new ProjectModel;
|
||||||
$objProjectModel->refuse($intId);
|
$objProjectModel->refuse($intId);
|
||||||
|
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -483,7 +483,7 @@
|
||||||
public function delete(){
|
public function delete(){
|
||||||
|
|
||||||
if (!isset($_SESSION['user']) || $_SESSION['user']['user_status'] != 2) {
|
if (!isset($_SESSION['user']) || $_SESSION['user']['user_status'] != 2) {
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -498,7 +498,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -518,7 +518,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$urlRedirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
$urlRedirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
||||||
header("Location: " . $urlRedirect);
|
header('Location: ' . $urlRedirect);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -541,7 +541,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
$url = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
||||||
header("Location: " . $url);
|
header('Location: ' . $url);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
setcookie('remember_me', $token, time() + (15*24*60*60), "/", "", true, true);
|
setcookie('remember_me', $token, time() + (15*24*60*60), "/", "", true, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
header("Location:index.php");
|
header("Location:".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -75,7 +75,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
|
|
||||||
$_SESSION['success'] = "Vous êtes bien déconnecté";
|
$_SESSION['success'] = "Vous êtes bien déconnecté";
|
||||||
|
|
||||||
header("Location:index.php");
|
header("Location:".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -143,7 +143,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
|
|
||||||
if ($boolInsert === true) {
|
if ($boolInsert === true) {
|
||||||
$_SESSION['success'] = "Compte créé avec succès";
|
$_SESSION['success'] = "Compte créé avec succès";
|
||||||
header("Location:index.php?ctrl=user&action=login");
|
header("Location:".$_ENV['BASE_URL']."/user/login");
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$arrError['global'] = "Erreur lors de l'ajout";
|
$arrError['global'] = "Erreur lors de l'ajout";
|
||||||
|
|
@ -169,7 +169,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
$arrUserData = $objUserModel->findUserByPseudo($strPseudo);
|
$arrUserData = $objUserModel->findUserByPseudo($strPseudo);
|
||||||
|
|
||||||
if ($arrUserData === false) {
|
if ($arrUserData === false) {
|
||||||
header("Location: index.php");
|
header("Location: ".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -195,7 +195,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
*/
|
*/
|
||||||
public function edit(){
|
public function edit(){
|
||||||
if(!isset($_SESSION['user'])){
|
if(!isset($_SESSION['user'])){
|
||||||
header("Location: index.php");
|
header("Location: ".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$objUserModel = new UserModel;
|
$objUserModel = new UserModel;
|
||||||
|
|
@ -244,6 +244,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (count($arrError) == 0 && isset($strImageName)) {
|
if (count($arrError) == 0 && isset($strImageName)) {
|
||||||
$strDest = $_ENV['IMG_USER_PATH'] . $strImageName;
|
$strDest = $_ENV['IMG_USER_PATH'] . $strImageName;
|
||||||
$strSource = $_FILES['image']['tmp_name'];
|
$strSource = $_FILES['image']['tmp_name'];
|
||||||
|
|
@ -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);
|
$boolInsert = $objUserModel->update($objUser);
|
||||||
|
|
||||||
if ($boolInsert === true) {
|
if ($boolInsert === true) {
|
||||||
if (isset($strOldImg) && !empty($strOldImg) && isset($strImageName)) {
|
if (isset($strOldImg) && !empty($strOldImg) && $strOldImg !== 'images.jpg' && isset($strImageName)) {
|
||||||
$strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
|
$strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
|
||||||
if (file_exists($strOldFile)) unlink($strOldFile);
|
if (file_exists($strOldFile)) unlink($strOldFile);
|
||||||
}
|
}
|
||||||
$arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo());
|
$arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo());
|
||||||
$_SESSION['user'] = $arrNewInfo;
|
$_SESSION['user'] = $arrNewInfo;
|
||||||
$_SESSION['success'] = "Compte modifier avec succès";
|
$_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;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$arrError['global'] = "Erreur lors de l'update";
|
$arrError['global'] = "Erreur lors de l'update";
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,7 @@ class Project extends Mother{
|
||||||
* Récupération de la date du projet supprimer
|
* Récupération de la date du projet supprimer
|
||||||
* @return string date du projet
|
* @return string date du projet
|
||||||
*/
|
*/
|
||||||
public function getProject_deleted_at(){
|
public function getDeleted_at(){
|
||||||
return $this->_project_deleted_at;
|
return $this->_project_deleted_at;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -234,7 +234,7 @@ class Project extends Mother{
|
||||||
* Mise à jour de la date de suppression de projet
|
* Mise à jour de la date de suppression de projet
|
||||||
* @param string date du 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;
|
$this->_project_deleted_at = $project_deleted_at;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
* @return string le nouveau pseudo de l'utilisateur
|
* @return string le nouveau pseudo de l'utilisateur
|
||||||
*/
|
*/
|
||||||
public function setPseudo(string $pseudo){
|
public function setPseudo(string $pseudo){
|
||||||
$this->_pseudo = $pseudo;
|
$this->_pseudo = str_replace(" ","_",$pseudo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
2
env
2
env
|
|
@ -1,7 +1,7 @@
|
||||||
# config BDD
|
# config BDD
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
DB_HOSTNAME=boulayoune.com
|
DB_HOSTNAME=localhost
|
||||||
DB_DATABASE=projet_folliow
|
DB_DATABASE=projet_folliow
|
||||||
DB_USERNAME=
|
DB_USERNAME=
|
||||||
DB_PASSWORD=
|
DB_PASSWORD=
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -135,7 +136,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>controllers/<b>AdminCtrl.php</b></li>
|
<li>C:/Users/Guill/projet_php/controllers/<b>AdminCtrl.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -154,7 +155,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>controllers/<b>ErrorCtrl.php</b></li>
|
<li>C:/Users/Guill/projet_php/controllers/<b>ErrorCtrl.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -155,7 +156,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>controllers/<b>MotherCtrl.php</b></li>
|
<li>C:/Users/Guill/projet_php/controllers/<b>MotherCtrl.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -173,7 +174,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>controllers/<b>PageCtrl.php</b></li>
|
<li>C:/Users/Guill/projet_php/controllers/<b>PageCtrl.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -306,7 +307,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>controllers/<b>ProjectCtrl.php</b></li>
|
<li>C:/Users/Guill/projet_php/controllers/<b>ProjectCtrl.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -211,7 +212,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>controllers/<b>UserCtrl.php</b></li>
|
<li>C:/Users/Guill/projet_php/controllers/<b>UserCtrl.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -221,7 +222,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>entities/<b>Authorisation.php</b></li>
|
<li>C:/Users/Guill/projet_php/entities/<b>Authorisation.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -276,7 +277,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>entities/<b>Category.php</b></li>
|
<li>C:/Users/Guill/projet_php/entities/<b>Category.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -312,7 +313,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>entities/<b>Image.php</b></li>
|
<li>C:/Users/Guill/projet_php/entities/<b>Image.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -123,7 +124,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
||||||
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
||||||
<div class="textblock"><p>Classe d'un Mere de tout objet </p><dl class="section author"><dt>Author</dt><dd>Yass & Laura </dd></dl>
|
<div class="textblock"><p>Classe d'un Mere de tout objet </p><dl class="section author"><dt>Author</dt><dd>Yass & Laura </dd></dl>
|
||||||
</div><hr/>The documentation for this class was generated from the following file:<ul>
|
</div><hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>entities/<b>Mother.php</b></li>
|
<li>C:/Users/Guill/projet_php/entities/<b>Mother.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -662,7 +663,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>entities/<b>Project.php</b></li>
|
<li>C:/Users/Guill/projet_php/entities/<b>Project.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -696,7 +697,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>entities/<b>User.php</b></li>
|
<li>C:/Users/Guill/projet_php/entities/<b>User.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -153,7 +154,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>models/<b>AuthorisationModel.php</b></li>
|
<li>C:/Users/Guill/projet_php/models/<b>AuthorisationModel.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -214,7 +215,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>models/<b>CategoryModel.php</b></li>
|
<li>C:/Users/Guill/projet_php/models/<b>CategoryModel.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -139,7 +140,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>models/<b>ImageModel.php</b></li>
|
<li>C:/Users/Guill/projet_php/models/<b>ImageModel.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -111,7 +112,7 @@ Protected Attributes</h2></td></tr>
|
||||||
 </td><td class="memItemRight"><b>$_db</b></td></tr>
|
 </td><td class="memItemRight"><b>$_db</b></td></tr>
|
||||||
</table>
|
</table>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>models/<b>MotherModel.php</b></li>
|
<li>C:/Users/Guill/projet_php/models/<b>MotherModel.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -339,7 +340,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>array </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>array|bool </dd></dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -468,7 +469,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>models/<b>ProjectModel.php</b></li>
|
<li>C:/Users/Guill/projet_php/models/<b>ProjectModel.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -376,7 +377,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>array Tableau associatif (ou false si pas trouvé) </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>bool Le pseudo existe ou pas </dd></dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -464,7 +465,7 @@ Additional Inherited Members</h2></td></tr>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
<li>models/<b>UserModel.php</b></li>
|
<li>C:/Users/Guill/projet_php/models/<b>UserModel.php</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
<meta name="generator" content="Doxygen 1.16.1"/>
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<title>Folliow: models Directory Reference</title>
|
<title>Folliow: C:/Users/Guill/projet_php/models Directory Reference</title>
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -62,7 +63,7 @@ $(function() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function(){initNavTree('dir_1ae4179d5e953611aae20c997279e02c.html','',''); });
|
$(function(){initNavTree('dir_1c617d677ef58765205e8a044aafa06e.html','',''); });
|
||||||
</script>
|
</script>
|
||||||
<div id="container">
|
<div id="container">
|
||||||
<div id="doc-content">
|
<div id="doc-content">
|
||||||
|
|
@ -104,7 +105,7 @@ $(function(){initNavTree('dir_1ae4179d5e953611aae20c997279e02c.html','',''); });
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
<ul>
|
<ul>
|
||||||
<li class="navelem"><b>models</b></li>
|
<li class="navelem"><a href="dir_3a74e34fc6fa82edd10e4beee4ded801.html">projet_php</a></li><li class="navelem"><b>models</b></li>
|
||||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
<meta name="generator" content="Doxygen 1.16.1"/>
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<title>Folliow: controllers Directory Reference</title>
|
<title>Folliow: C:/Users/Guill/projet_php/controllers Directory Reference</title>
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -62,7 +63,7 @@ $(function() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function(){initNavTree('dir_87b6ed4386158a4d6cd0ecd5fb5bd5c2.html','',''); });
|
$(function(){initNavTree('dir_2756e6070b02be5d362619ded783829c.html','',''); });
|
||||||
</script>
|
</script>
|
||||||
<div id="container">
|
<div id="container">
|
||||||
<div id="doc-content">
|
<div id="doc-content">
|
||||||
|
|
@ -94,7 +95,7 @@ $(function(){initNavTree('dir_87b6ed4386158a4d6cd0ecd5fb5bd5c2.html','',''); });
|
||||||
<table class="memberdecls">
|
<table class="memberdecls">
|
||||||
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
|
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
|
||||||
Directories</h2></td></tr>
|
Directories</h2></td></tr>
|
||||||
<tr class="memitem:templates_5Fc" id="r_templates_5Fc"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_78f8c0daf938bfa31437d013d3fc896d.html">templates_c</a></td></tr>
|
<tr class="memitem:templates_5Fc" id="r_templates_5Fc"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html">templates_c</a></td></tr>
|
||||||
</table>
|
</table>
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
</div><!-- doc-content -->
|
</div><!-- doc-content -->
|
||||||
|
|
@ -109,7 +110,7 @@ Directories</h2></td></tr>
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
<ul>
|
<ul>
|
||||||
<li class="navelem"><b>controllers</b></li>
|
<li class="navelem"><a href="dir_3a74e34fc6fa82edd10e4beee4ded801.html">projet_php</a></li><li class="navelem"><b>controllers</b></li>
|
||||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
201
html/dir_2c23dcab3ba0e8633898b60485787967.html
Normal file
201
html/dir_2c23dcab3ba0e8633898b60485787967.html
Normal file
|
|
@ -0,0 +1,201 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Folliow: C:/Users/Guill/projet_php Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<script type="text/javascript" src="clipboard.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<script type="text/javascript" src="cookie.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">Folliow
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.16.1 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() { codefold.init(); });
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search',true);
|
||||||
|
$(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){initNavTree('dir_2c23dcab3ba0e8633898b60485787967.html','',''); });
|
||||||
|
</script>
|
||||||
|
<div id="container">
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<div id="MSearchResults">
|
||||||
|
<div class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">projet_php Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
|
||||||
|
Directories</h2></td></tr>
|
||||||
|
<tr class="memitem:controllers" id="r_controllers"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_bfcb6842af0098861ea59b43701e0022.html">controllers</a></td></tr>
|
||||||
|
<tr class="memitem:entities" id="r_entities"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_6a59aaef8e4f4bee39467ed807742262.html">entities</a></td></tr>
|
||||||
|
<tr class="memitem:models" id="r_models"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_f880fbcdfabe64616040b95a4e03089d.html">models</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><h1 class="doxsection"><a class="anchor" id="autotoc_md0"></a>
|
||||||
|
Folliow – Projet PHP</h1>
|
||||||
|
<p>A platform for sharing portfolios and projects, designed as a mix between Behance and LinkedIn. Folliow focuses on highlighting real projects while making it easy to connect with other users.</p>
|
||||||
|
<p>This project was developed as part of the <b>DWWM (Développeur Web et Web Mobile)</b> training.</p>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md2"></a>
|
||||||
|
Features</h1>
|
||||||
|
<ul>
|
||||||
|
<li>User authentication and profile management</li>
|
||||||
|
<li>Portfolio and project creation</li>
|
||||||
|
<li>Project showcase with descriptions and technologies</li>
|
||||||
|
<li>User connections / follow system</li>
|
||||||
|
<li>Project feed and discovery</li>
|
||||||
|
<li>Profile and project search</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md4"></a>
|
||||||
|
Tech Stack</h1>
|
||||||
|
<p><b>Client:</b> HTML, CSS, JavaScript <br />
|
||||||
|
<b>Server:</b> PHP (MVC architecture) <br />
|
||||||
|
<b>Database:</b> MySQL <br />
|
||||||
|
<b>Web Server:</b> Apache</p>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md6"></a>
|
||||||
|
Project Structure</h1>
|
||||||
|
<div class="fragment"><div class="line">folliow/</div>
|
||||||
|
<div class="line">├── app/</div>
|
||||||
|
<div class="line">│ ├── controllers/</div>
|
||||||
|
<div class="line">│ ├── models/</div>
|
||||||
|
<div class="line">│ └── views/</div>
|
||||||
|
<div class="line">├── public/</div>
|
||||||
|
<div class="line">│ ├── assets/</div>
|
||||||
|
<div class="line">│ └── index.php</div>
|
||||||
|
<div class="line">├── config/</div>
|
||||||
|
<div class="line">│ └── database.php</div>
|
||||||
|
<div class="line">├── sql/</div>
|
||||||
|
<div class="line">│ └── folliow.sql</div>
|
||||||
|
<div class="line">└── README.md</div>
|
||||||
|
</div><!-- fragment --><hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md8"></a>
|
||||||
|
Installation</h1>
|
||||||
|
<p>Clone the project</p>
|
||||||
|
<div class="fragment"><div class="line">git clone https://github.com/Yasder5/projet_php.git</div>
|
||||||
|
</div><!-- fragment --><p>Go to the project directory</p>
|
||||||
|
<div class="fragment"><div class="line">cd projet_php</div>
|
||||||
|
</div><!-- fragment --><p>Import the database</p>
|
||||||
|
<ul>
|
||||||
|
<li>Use the SQL file located in the <span class="tt">sql/</span> directory</li>
|
||||||
|
</ul>
|
||||||
|
<p>Configure database access</p>
|
||||||
|
<ul>
|
||||||
|
<li>Update credentials in <span class="tt">config/database.php</span></li>
|
||||||
|
</ul>
|
||||||
|
<p>Run the project</p>
|
||||||
|
<ul>
|
||||||
|
<li>Use a local server (XAMPP, WAMP, or Apache on Linux)</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md10"></a>
|
||||||
|
Learning Objectives</h1>
|
||||||
|
<ul>
|
||||||
|
<li>Build a complete PHP web application</li>
|
||||||
|
<li>Apply MVC architecture</li>
|
||||||
|
<li>Manage a relational database</li>
|
||||||
|
<li>Design a user-oriented portfolio platform</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md12"></a>
|
||||||
|
Future Improvements</h1>
|
||||||
|
<ul>
|
||||||
|
<li>Private messaging</li>
|
||||||
|
<li>Likes and comments on projects</li>
|
||||||
|
<li>Tags and categories</li>
|
||||||
|
<li>Improved responsive design</li>
|
||||||
|
<li>Advanced authentication and roles</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md14"></a>
|
||||||
|
License</h1>
|
||||||
|
<p>This project is for educational purposes. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<div id="page-nav" class="page-nav-panel">
|
||||||
|
<div id="page-nav-resize-handle"></div>
|
||||||
|
<div id="page-nav-tree">
|
||||||
|
<div id="page-nav-contents">
|
||||||
|
</div><!-- page-nav-contents -->
|
||||||
|
</div><!-- page-nav-tree -->
|
||||||
|
</div><!-- page-nav -->
|
||||||
|
</div><!-- container -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>Users</b></li><li class="navelem"><b>Guill</b></li><li class="navelem"><a href="dir_2c23dcab3ba0e8633898b60485787967.html">projet_php</a></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
201
html/dir_3a74e34fc6fa82edd10e4beee4ded801.html
Normal file
201
html/dir_3a74e34fc6fa82edd10e4beee4ded801.html
Normal file
|
|
@ -0,0 +1,201 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Folliow: C:/Users/Guill/projet_php Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<script type="text/javascript" src="clipboard.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<script type="text/javascript" src="cookie.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">Folliow
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.16.1 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() { codefold.init(); });
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search',true);
|
||||||
|
$(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){initNavTree('dir_3a74e34fc6fa82edd10e4beee4ded801.html','',''); });
|
||||||
|
</script>
|
||||||
|
<div id="container">
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<div id="MSearchResults">
|
||||||
|
<div class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">projet_php Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
|
||||||
|
Directories</h2></td></tr>
|
||||||
|
<tr class="memitem:controllers" id="r_controllers"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_2756e6070b02be5d362619ded783829c.html">controllers</a></td></tr>
|
||||||
|
<tr class="memitem:entities" id="r_entities"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_91977dd5ba3542af9d4aecff9e888690.html">entities</a></td></tr>
|
||||||
|
<tr class="memitem:models" id="r_models"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_1c617d677ef58765205e8a044aafa06e.html">models</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><h1 class="doxsection"><a class="anchor" id="autotoc_md0"></a>
|
||||||
|
Folliow – Projet PHP</h1>
|
||||||
|
<p>A platform for sharing portfolios and projects, designed as a mix between Behance and LinkedIn. Folliow focuses on highlighting real projects while making it easy to connect with other users.</p>
|
||||||
|
<p>This project was developed as part of the <b>DWWM (Développeur Web et Web Mobile)</b> training.</p>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md2"></a>
|
||||||
|
Features</h1>
|
||||||
|
<ul>
|
||||||
|
<li>User authentication and profile management</li>
|
||||||
|
<li>Portfolio and project creation</li>
|
||||||
|
<li>Project showcase with descriptions and technologies</li>
|
||||||
|
<li>User connections / follow system</li>
|
||||||
|
<li>Project feed and discovery</li>
|
||||||
|
<li>Profile and project search</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md4"></a>
|
||||||
|
Tech Stack</h1>
|
||||||
|
<p><b>Client:</b> HTML, CSS, JavaScript <br />
|
||||||
|
<b>Server:</b> PHP (MVC architecture) <br />
|
||||||
|
<b>Database:</b> MySQL <br />
|
||||||
|
<b>Web Server:</b> Apache</p>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md6"></a>
|
||||||
|
Project Structure</h1>
|
||||||
|
<div class="fragment"><div class="line">folliow/</div>
|
||||||
|
<div class="line">├── app/</div>
|
||||||
|
<div class="line">│ ├── controllers/</div>
|
||||||
|
<div class="line">│ ├── models/</div>
|
||||||
|
<div class="line">│ └── views/</div>
|
||||||
|
<div class="line">├── public/</div>
|
||||||
|
<div class="line">│ ├── assets/</div>
|
||||||
|
<div class="line">│ └── index.php</div>
|
||||||
|
<div class="line">├── config/</div>
|
||||||
|
<div class="line">│ └── database.php</div>
|
||||||
|
<div class="line">├── sql/</div>
|
||||||
|
<div class="line">│ └── folliow.sql</div>
|
||||||
|
<div class="line">└── README.md</div>
|
||||||
|
</div><!-- fragment --><hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md8"></a>
|
||||||
|
Installation</h1>
|
||||||
|
<p>Clone the project</p>
|
||||||
|
<div class="fragment"><div class="line">git clone https://github.com/Yasder5/projet_php.git</div>
|
||||||
|
</div><!-- fragment --><p>Go to the project directory</p>
|
||||||
|
<div class="fragment"><div class="line">cd projet_php</div>
|
||||||
|
</div><!-- fragment --><p>Import the database</p>
|
||||||
|
<ul>
|
||||||
|
<li>Use the SQL file located in the <span class="tt">sql/</span> directory</li>
|
||||||
|
</ul>
|
||||||
|
<p>Configure database access</p>
|
||||||
|
<ul>
|
||||||
|
<li>Update credentials in <span class="tt">config/database.php</span></li>
|
||||||
|
</ul>
|
||||||
|
<p>Run the project</p>
|
||||||
|
<ul>
|
||||||
|
<li>Use a local server (XAMPP, WAMP, or Apache on Linux)</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md10"></a>
|
||||||
|
Learning Objectives</h1>
|
||||||
|
<ul>
|
||||||
|
<li>Build a complete PHP web application</li>
|
||||||
|
<li>Apply MVC architecture</li>
|
||||||
|
<li>Manage a relational database</li>
|
||||||
|
<li>Design a user-oriented portfolio platform</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md12"></a>
|
||||||
|
Future Improvements</h1>
|
||||||
|
<ul>
|
||||||
|
<li>Private messaging</li>
|
||||||
|
<li>Likes and comments on projects</li>
|
||||||
|
<li>Tags and categories</li>
|
||||||
|
<li>Improved responsive design</li>
|
||||||
|
<li>Advanced authentication and roles</li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h1 class="doxsection"><a class="anchor" id="autotoc_md14"></a>
|
||||||
|
License</h1>
|
||||||
|
<p>This project is for educational purposes. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<div id="page-nav" class="page-nav-panel">
|
||||||
|
<div id="page-nav-resize-handle"></div>
|
||||||
|
<div id="page-nav-tree">
|
||||||
|
<div id="page-nav-contents">
|
||||||
|
</div><!-- page-nav-contents -->
|
||||||
|
</div><!-- page-nav-tree -->
|
||||||
|
</div><!-- page-nav -->
|
||||||
|
</div><!-- container -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a href="dir_3a74e34fc6fa82edd10e4beee4ded801.html">projet_php</a></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
113
html/dir_5498806e52ccd7d2d905ac8baf67301b.html
Normal file
113
html/dir_5498806e52ccd7d2d905ac8baf67301b.html
Normal file
|
|
@ -0,0 +1,113 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Folliow: C:/Users/Guill/projet_php/controllers/templates_c Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<script type="text/javascript" src="clipboard.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<script type="text/javascript" src="cookie.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">Folliow
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.16.1 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() { codefold.init(); });
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search',true);
|
||||||
|
$(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){initNavTree('dir_5498806e52ccd7d2d905ac8baf67301b.html','',''); });
|
||||||
|
</script>
|
||||||
|
<div id="container">
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<div id="MSearchResults">
|
||||||
|
<div class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">templates_c Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<div id="page-nav" class="page-nav-panel">
|
||||||
|
<div id="page-nav-resize-handle"></div>
|
||||||
|
<div id="page-nav-tree">
|
||||||
|
<div id="page-nav-contents">
|
||||||
|
</div><!-- page-nav-contents -->
|
||||||
|
</div><!-- page-nav-tree -->
|
||||||
|
</div><!-- page-nav -->
|
||||||
|
</div><!-- container -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>Users</b></li><li class="navelem"><b>Guill</b></li><li class="navelem"><a href="dir_2c23dcab3ba0e8633898b60485787967.html">projet_php</a></li><li class="navelem"><b>controllers</b></li><li class="navelem"><b>templates_c</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
113
html/dir_6a59aaef8e4f4bee39467ed807742262.html
Normal file
113
html/dir_6a59aaef8e4f4bee39467ed807742262.html
Normal file
|
|
@ -0,0 +1,113 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Folliow: C:/Users/Guill/projet_php/entities Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<script type="text/javascript" src="clipboard.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<script type="text/javascript" src="cookie.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">Folliow
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.16.1 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() { codefold.init(); });
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search',true);
|
||||||
|
$(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){initNavTree('dir_6a59aaef8e4f4bee39467ed807742262.html','',''); });
|
||||||
|
</script>
|
||||||
|
<div id="container">
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<div id="MSearchResults">
|
||||||
|
<div class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">entities Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<div id="page-nav" class="page-nav-panel">
|
||||||
|
<div id="page-nav-resize-handle"></div>
|
||||||
|
<div id="page-nav-tree">
|
||||||
|
<div id="page-nav-contents">
|
||||||
|
</div><!-- page-nav-contents -->
|
||||||
|
</div><!-- page-nav-tree -->
|
||||||
|
</div><!-- page-nav -->
|
||||||
|
</div><!-- container -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>Users</b></li><li class="navelem"><b>Guill</b></li><li class="navelem"><a href="dir_2c23dcab3ba0e8633898b60485787967.html">projet_php</a></li><li class="navelem"><b>entities</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
<meta name="generator" content="Doxygen 1.16.1"/>
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<title>Folliow: controllers/templates_c Directory Reference</title>
|
<title>Folliow: C:/Users/Guill/projet_php/entities Directory Reference</title>
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -62,7 +63,7 @@ $(function() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function(){initNavTree('dir_78f8c0daf938bfa31437d013d3fc896d.html','',''); });
|
$(function(){initNavTree('dir_91977dd5ba3542af9d4aecff9e888690.html','',''); });
|
||||||
</script>
|
</script>
|
||||||
<div id="container">
|
<div id="container">
|
||||||
<div id="doc-content">
|
<div id="doc-content">
|
||||||
|
|
@ -88,7 +89,7 @@ $(function(){initNavTree('dir_78f8c0daf938bfa31437d013d3fc896d.html','',''); });
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headertitle"><div class="title">templates_c Directory Reference</div></div>
|
<div class="headertitle"><div class="title">entities Directory Reference</div></div>
|
||||||
</div><!--header-->
|
</div><!--header-->
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
|
|
@ -104,7 +105,7 @@ $(function(){initNavTree('dir_78f8c0daf938bfa31437d013d3fc896d.html','',''); });
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
<ul>
|
<ul>
|
||||||
<li class="navelem"><b>controllers</b></li><li class="navelem"><b>templates_c</b></li>
|
<li class="navelem"><a href="dir_3a74e34fc6fa82edd10e4beee4ded801.html">projet_php</a></li><li class="navelem"><b>entities</b></li>
|
||||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
<meta name="generator" content="Doxygen 1.16.1"/>
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<title>Folliow: templates_c Directory Reference</title>
|
<title>Folliow: C:/Users/Guill/projet_php/controllers/templates_c Directory Reference</title>
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -62,7 +63,7 @@ $(function() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function(){initNavTree('dir_2262efd7ced881ba2289deea4945d6ba.html','',''); });
|
$(function(){initNavTree('dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html','',''); });
|
||||||
</script>
|
</script>
|
||||||
<div id="container">
|
<div id="container">
|
||||||
<div id="doc-content">
|
<div id="doc-content">
|
||||||
|
|
@ -104,7 +105,7 @@ $(function(){initNavTree('dir_2262efd7ced881ba2289deea4945d6ba.html','',''); });
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
<ul>
|
<ul>
|
||||||
<li class="navelem"><b>templates_c</b></li>
|
<li class="navelem"><a href="dir_3a74e34fc6fa82edd10e4beee4ded801.html">projet_php</a></li><li class="navelem"><b>controllers</b></li><li class="navelem"><b>templates_c</b></li>
|
||||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
118
html/dir_bfcb6842af0098861ea59b43701e0022.html
Normal file
118
html/dir_bfcb6842af0098861ea59b43701e0022.html
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Folliow: C:/Users/Guill/projet_php/controllers Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<script type="text/javascript" src="clipboard.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<script type="text/javascript" src="cookie.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">Folliow
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.16.1 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() { codefold.init(); });
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search',true);
|
||||||
|
$(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){initNavTree('dir_bfcb6842af0098861ea59b43701e0022.html','',''); });
|
||||||
|
</script>
|
||||||
|
<div id="container">
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<div id="MSearchResults">
|
||||||
|
<div class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">controllers Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
|
||||||
|
Directories</h2></td></tr>
|
||||||
|
<tr class="memitem:templates_5Fc" id="r_templates_5Fc"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_5498806e52ccd7d2d905ac8baf67301b.html">templates_c</a></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<div id="page-nav" class="page-nav-panel">
|
||||||
|
<div id="page-nav-resize-handle"></div>
|
||||||
|
<div id="page-nav-tree">
|
||||||
|
<div id="page-nav-contents">
|
||||||
|
</div><!-- page-nav-contents -->
|
||||||
|
</div><!-- page-nav-tree -->
|
||||||
|
</div><!-- page-nav -->
|
||||||
|
</div><!-- container -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>Users</b></li><li class="navelem"><b>Guill</b></li><li class="navelem"><a href="dir_2c23dcab3ba0e8633898b60485787967.html">projet_php</a></li><li class="navelem"><b>controllers</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
<meta name="generator" content="Doxygen 1.16.1"/>
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<title>Folliow: entities Directory Reference</title>
|
<title>Folliow: C:/Users Directory Reference</title>
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -62,7 +63,7 @@ $(function() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function(){initNavTree('dir_9404ca00d5cf333c309ae0ebf80749c4.html','',''); });
|
$(function(){initNavTree('dir_d522931ffa1371640980b621734a4381.html','',''); });
|
||||||
</script>
|
</script>
|
||||||
<div id="container">
|
<div id="container">
|
||||||
<div id="doc-content">
|
<div id="doc-content">
|
||||||
|
|
@ -88,7 +89,7 @@ $(function(){initNavTree('dir_9404ca00d5cf333c309ae0ebf80749c4.html','',''); });
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headertitle"><div class="title">entities Directory Reference</div></div>
|
<div class="headertitle"><div class="title">Users Directory Reference</div></div>
|
||||||
</div><!--header-->
|
</div><!--header-->
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
|
|
@ -104,7 +105,7 @@ $(function(){initNavTree('dir_9404ca00d5cf333c309ae0ebf80749c4.html','',''); });
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
<ul>
|
<ul>
|
||||||
<li class="navelem"><b>entities</b></li>
|
<li class="navelem"><b>Users</b></li>
|
||||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
118
html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html
Normal file
118
html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Folliow: C:/Users/Guill Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<script type="text/javascript" src="clipboard.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<script type="text/javascript" src="cookie.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">Folliow
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.16.1 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() { codefold.init(); });
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search',true);
|
||||||
|
$(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){initNavTree('dir_d6b6a3db1c3a00708b1a36123c6a63cc.html','',''); });
|
||||||
|
</script>
|
||||||
|
<div id="container">
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<div id="MSearchResults">
|
||||||
|
<div class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Guill Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
|
||||||
|
Directories</h2></td></tr>
|
||||||
|
<tr class="memitem:projet_5Fphp" id="r_projet_5Fphp"><td class="memItemLeft"><span class="iconfolder"><div class="folder-icon"></div></span> </td><td class="memItemRight"><a class="el" href="dir_2c23dcab3ba0e8633898b60485787967.html">projet_php</a></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<div id="page-nav" class="page-nav-panel">
|
||||||
|
<div id="page-nav-resize-handle"></div>
|
||||||
|
<div id="page-nav-tree">
|
||||||
|
<div id="page-nav-contents">
|
||||||
|
</div><!-- page-nav-contents -->
|
||||||
|
</div><!-- page-nav-tree -->
|
||||||
|
</div><!-- page-nav -->
|
||||||
|
</div><!-- container -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>Users</b></li><li class="navelem"><b>Guill</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
113
html/dir_f880fbcdfabe64616040b95a4e03089d.html
Normal file
113
html/dir_f880fbcdfabe64616040b95a4e03089d.html
Normal file
|
|
@ -0,0 +1,113 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Folliow: C:/Users/Guill/projet_php/models Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<script type="text/javascript" src="clipboard.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<script type="text/javascript" src="cookie.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">Folliow
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.16.1 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() { codefold.init(); });
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search',true);
|
||||||
|
$(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){initNavTree('dir_f880fbcdfabe64616040b95a4e03089d.html','',''); });
|
||||||
|
</script>
|
||||||
|
<div id="container">
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<div id="MSearchResults">
|
||||||
|
<div class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">models Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<div id="page-nav" class="page-nav-panel">
|
||||||
|
<div id="page-nav-resize-handle"></div>
|
||||||
|
<div id="page-nav-tree">
|
||||||
|
<div id="page-nav-contents">
|
||||||
|
</div><!-- page-nav-contents -->
|
||||||
|
</div><!-- page-nav-tree -->
|
||||||
|
</div><!-- page-nav -->
|
||||||
|
</div><!-- container -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>Users</b></li><li class="navelem"><b>Guill</b></li><li class="navelem"><a href="dir_2c23dcab3ba0e8633898b60485787967.html">projet_php</a></li><li class="navelem"><b>models</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -157,11 +157,11 @@
|
||||||
<a href="class_models_1_1_user_model.html#ad83e4adc529c6c0a4925e4d74c7c7ae7"/>
|
<a href="class_models_1_1_user_model.html#ad83e4adc529c6c0a4925e4d74c7c7ae7"/>
|
||||||
<a href="class_models_1_1_user_model.html#add0b4b63ca02cb8b73ad136b93ccf52f"/>
|
<a href="class_models_1_1_user_model.html#add0b4b63ca02cb8b73ad136b93ccf52f"/>
|
||||||
<a href="classes.html"/>
|
<a href="classes.html"/>
|
||||||
<a href="dir_1ae4179d5e953611aae20c997279e02c.html"/>
|
<a href="dir_1c617d677ef58765205e8a044aafa06e.html"/>
|
||||||
<a href="dir_2262efd7ced881ba2289deea4945d6ba.html"/>
|
<a href="dir_2756e6070b02be5d362619ded783829c.html"/>
|
||||||
<a href="dir_78f8c0daf938bfa31437d013d3fc896d.html"/>
|
<a href="dir_3a74e34fc6fa82edd10e4beee4ded801.html"/>
|
||||||
<a href="dir_87b6ed4386158a4d6cd0ecd5fb5bd5c2.html"/>
|
<a href="dir_91977dd5ba3542af9d4aecff9e888690.html"/>
|
||||||
<a href="dir_9404ca00d5cf333c309ae0ebf80749c4.html"/>
|
<a href="dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html"/>
|
||||||
<a href="doxygen_crawl.html"/>
|
<a href="doxygen_crawl.html"/>
|
||||||
<a href="functions.html"/>
|
<a href="functions.html"/>
|
||||||
<a href="functions_func.html"/>
|
<a href="functions_func.html"/>
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
<td id="projectalign">
|
<td id="projectalign">
|
||||||
<div id="projectname">Folliow
|
<div id="projectname">Folliow
|
||||||
</div>
|
</div>
|
||||||
|
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
10
html/search/all_10.js
Normal file
10
html/search/all_10.js
Normal file
|
|
@ -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']]]
|
||||||
|
];
|
||||||
4
html/search/all_11.js
Normal file
4
html/search/all_11.js
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['verifuser_0',['verifUser',['../class_models_1_1_user_model.html#a04e007855c8aa842068779d8a871bb42',1,'Models::UserModel']]]
|
||||||
|
];
|
||||||
4
html/search/all_12.js
Normal file
4
html/search/all_12.js
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['–_20projet_20php_0',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]]
|
||||||
|
];
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['findall_0',['findAll',['../class_models_1_1_project_model.html#acbfa7e289b7712cf5200f398cff05c43',1,'Models::ProjectModel']]],
|
['features_0',['Features',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md2',1,'']]],
|
||||||
['findallauthorisation_1',['findAllAuthorisation',['../class_models_1_1_authorisation_model.html#af7bd93cc2fd6ac548707d3a66a8380df',1,'Models::AuthorisationModel']]],
|
['findall_1',['findAll',['../class_models_1_1_project_model.html#acbfa7e289b7712cf5200f398cff05c43',1,'Models::ProjectModel']]],
|
||||||
['findallcategory_2',['findAllCategory',['../class_models_1_1_category_model.html#a4e6d48b9130d9cb4cc08a88cef84e8f9',1,'Models::CategoryModel']]],
|
['findallauthorisation_2',['findAllAuthorisation',['../class_models_1_1_authorisation_model.html#af7bd93cc2fd6ac548707d3a66a8380df',1,'Models::AuthorisationModel']]],
|
||||||
['findallimage_3',['findAllImage',['../class_models_1_1_image_model.html#aaf9e88eb8d1aff57a085e1d38de15060',1,'Models::ImageModel']]],
|
['findallcategory_3',['findAllCategory',['../class_models_1_1_category_model.html#a4e6d48b9130d9cb4cc08a88cef84e8f9',1,'Models::CategoryModel']]],
|
||||||
['findallusers_4',['findAllUsers',['../class_models_1_1_user_model.html#a404b6b890d58bfa7220da4a08a60f445',1,'Models::UserModel']]],
|
['findallimage_4',['findAllImage',['../class_models_1_1_image_model.html#aaf9e88eb8d1aff57a085e1d38de15060',1,'Models::ImageModel']]],
|
||||||
['findimage_5',['findImage',['../class_models_1_1_project_model.html#a0a8e47e6d6b839638ab85addfda45e3b',1,'Models::ProjectModel']]],
|
['findallusers_5',['findAllUsers',['../class_models_1_1_user_model.html#a404b6b890d58bfa7220da4a08a60f445',1,'Models::UserModel']]],
|
||||||
['findone_6',['findOne',['../class_models_1_1_project_model.html#ae0fabc6b177cda25efeee083f904c207',1,'Models::ProjectModel']]],
|
['findimage_6',['findImage',['../class_models_1_1_project_model.html#a0a8e47e6d6b839638ab85addfda45e3b',1,'Models::ProjectModel']]],
|
||||||
['finduserbyid_7',['findUserById',['../class_models_1_1_user_model.html#a6620c458b01ecbb1ed76083a4ac2345e',1,'Models::UserModel']]],
|
['findone_7',['findOne',['../class_models_1_1_project_model.html#ae0fabc6b177cda25efeee083f904c207',1,'Models::ProjectModel']]],
|
||||||
['finduserbypseudo_8',['findUserByPseudo',['../class_models_1_1_user_model.html#a9f95476e8b07dbc01f711f36672684ad',1,'Models::UserModel']]]
|
['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,'']]]
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ var searchData=
|
||||||
[
|
[
|
||||||
['image_0',['Image',['../class_entities_1_1_image.html',1,'Entities']]],
|
['image_0',['Image',['../class_entities_1_1_image.html',1,'Entities']]],
|
||||||
['imagemodel_1',['ImageModel',['../class_models_1_1_image_model.html',1,'Models']]],
|
['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()']]],
|
['improvements_2',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]],
|
||||||
['insertcategory_3',['insertCategory',['../class_models_1_1_category_model.html#a1102f9228de8f7938a1f35a3abbc2dc7',1,'Models::CategoryModel']]]
|
['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,'']]]
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['login_0',['login',['../class_controllers_1_1_user_ctrl.html#aa311da27ba5706f5710cea7706c8eae1',1,'Controllers::UserCtrl']]],
|
['learning_20objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]],
|
||||||
['logout_1',['logout',['../class_controllers_1_1_user_ctrl.html#a082405d89acd6835c3a7c7a08a7adbab',1,'Controllers::UserCtrl']]]
|
['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']]]
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,4 @@
|
||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['pagectrl_0',['PageCtrl',['../class_controllers_1_1_page_ctrl.html',1,'Controllers']]],
|
['objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]]
|
||||||
['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']]]
|
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,11 @@
|
||||||
var searchData=
|
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()']]],
|
['pagectrl_0',['PageCtrl',['../class_controllers_1_1_page_ctrl.html',1,'Controllers']]],
|
||||||
['remember_1',['remember',['../class_models_1_1_user_model.html#a30563e7cabc0c9aa2bf4157b241ad55a',1,'Models::UserModel']]]
|
['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']]]
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,5 @@
|
||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['search_0',['search',['../class_controllers_1_1_project_ctrl.html#a796bf438724e047aeef18579732a3780',1,'Controllers::ProjectCtrl']]],
|
['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()']]],
|
||||||
['sendemail_1',['sendEmail',['../class_controllers_1_1_project_ctrl.html#a6665aeb6e312ea89283ce785f0dfad60',1,'Controllers::ProjectCtrl']]],
|
['remember_1',['remember',['../class_models_1_1_user_model.html#a30563e7cabc0c9aa2bf4157b241ad55a',1,'Models::UserModel']]]
|
||||||
['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']]]
|
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,33 @@
|
||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['update_0',['update',['../class_models_1_1_user_model.html#a4f2888d0004092a367fa2d1b2620818f',1,'Models::UserModel']]],
|
['search_0',['search',['../class_controllers_1_1_project_ctrl.html#a796bf438724e047aeef18579732a3780',1,'Controllers::ProjectCtrl']]],
|
||||||
['updateimagestatus_1',['updateImageStatus',['../class_models_1_1_project_model.html#aeb942ee7cfbea8509e49a5114228f53b',1,'Models::ProjectModel']]],
|
['sendemail_1',['sendEmail',['../class_controllers_1_1_project_ctrl.html#a6665aeb6e312ea89283ce785f0dfad60',1,'Controllers::ProjectCtrl']]],
|
||||||
['updateproject_2',['updateProject',['../class_models_1_1_project_model.html#a1736ff58fc8fadf358ddb510b4c8d3f7',1,'Models::ProjectModel']]],
|
['setaccountcreation_2',['setAccountCreation',['../class_entities_1_1_user.html#aa8eb1e10f1ab32dcfa4df144fe02ba16',1,'Entities::User']]],
|
||||||
['user_3',['User',['../class_entities_1_1_user.html',1,'Entities']]],
|
['setalt_3',['setAlt',['../class_entities_1_1_image.html#a23d9d1d65334db3a72b3c19e146cfe28',1,'Entities::Image']]],
|
||||||
['user_4',['user',['../class_controllers_1_1_user_ctrl.html#ae8a275690ff1b618e1947378b0ed73ae',1,'Controllers::UserCtrl']]],
|
['setbirth_4',['setBirth',['../class_entities_1_1_user.html#a4a6578fae7673e253c0ddb1f95cf227c',1,'Entities::User']]],
|
||||||
['userctrl_5',['UserCtrl',['../class_controllers_1_1_user_ctrl.html',1,'Controllers']]],
|
['setcategory_5',['setCategory',['../class_entities_1_1_project.html#a309475f82c8fca1a84f96f802f05a5fb',1,'Entities::Project']]],
|
||||||
['usermodel_6',['UserModel',['../class_models_1_1_user_model.html',1,'Models']]]
|
['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,'']]]
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
var searchData=
|
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,'']]]
|
||||||
];
|
];
|
||||||
|
|
|
||||||
6
html/search/pages_0.js
Normal file
6
html/search/pages_0.js
Normal file
|
|
@ -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,'']]]
|
||||||
|
];
|
||||||
5
html/search/pages_1.js
Normal file
5
html/search/pages_1.js
Normal file
|
|
@ -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,'']]]
|
||||||
|
];
|
||||||
5
html/search/pages_2.js
Normal file
5
html/search/pages_2.js
Normal file
|
|
@ -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,'']]]
|
||||||
|
];
|
||||||
4
html/search/pages_3.js
Normal file
4
html/search/pages_3.js
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]]
|
||||||
|
];
|
||||||
6
html/search/pages_4.js
Normal file
6
html/search/pages_4.js
Normal file
|
|
@ -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,'']]]
|
||||||
|
];
|
||||||
5
html/search/pages_5.js
Normal file
5
html/search/pages_5.js
Normal file
|
|
@ -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,'']]]
|
||||||
|
];
|
||||||
4
html/search/pages_6.js
Normal file
4
html/search/pages_6.js
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['tech_20stack_0',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]]
|
||||||
|
];
|
||||||
4
html/search/pages_7.js
Normal file
4
html/search/pages_7.js
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['–_20projet_20php_0',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]]
|
||||||
|
];
|
||||||
|
|
@ -1,21 +1,24 @@
|
||||||
var indexSectionsWithContent =
|
var indexSectionsWithContent =
|
||||||
{
|
{
|
||||||
0: "_acdefghilmprsuv",
|
0: "_acdefghilmoprstuv–",
|
||||||
1: "aceimpu",
|
1: "aceimpu",
|
||||||
2: "_acdefghilmprsuv"
|
2: "_acdefghilmprsuv",
|
||||||
|
3: "filopst–"
|
||||||
};
|
};
|
||||||
|
|
||||||
var indexSectionNames =
|
var indexSectionNames =
|
||||||
{
|
{
|
||||||
0: "all",
|
0: "all",
|
||||||
1: "classes",
|
1: "classes",
|
||||||
2: "functions"
|
2: "functions",
|
||||||
|
3: "pages"
|
||||||
};
|
};
|
||||||
|
|
||||||
var indexSectionLabels =
|
var indexSectionLabels =
|
||||||
{
|
{
|
||||||
0: "All",
|
0: "All",
|
||||||
1: "Data Structures",
|
1: "Data Structures",
|
||||||
2: "Functions"
|
2: "Functions",
|
||||||
|
3: "Pages"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
11
index.php
11
index.php
|
|
@ -2,12 +2,11 @@
|
||||||
session_start();
|
session_start();
|
||||||
require(__DIR__ . "/vendor/autoload.php");
|
require(__DIR__ . "/vendor/autoload.php");
|
||||||
|
|
||||||
// Environnement
|
|
||||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
||||||
$dotenv->safeLoad();
|
$dotenv->safeLoad();
|
||||||
|
|
||||||
$strCtrl = $_GET['ctrl'] ?? 'project';
|
$strCtrl = preg_replace('/[^a-zA-Z]/', '', $_GET['ctrl'] ?? 'project');
|
||||||
$strMethod = $_GET['action'] ?? 'home';
|
$strMethod = preg_replace('/[^a-zA-Z_]/', '', $_GET['action'] ?? 'home');
|
||||||
|
|
||||||
$strClassName = "Controllers\\" . ucfirst($strCtrl) . "Ctrl";
|
$strClassName = "Controllers\\" . ucfirst($strCtrl) . "Ctrl";
|
||||||
|
|
||||||
|
|
@ -26,6 +25,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($boolError) {
|
if ($boolError) {
|
||||||
header("Location: index.php?ctrl=error&action=error_404");
|
http_response_code(404); // ← important pour le SEO et les navigateurs
|
||||||
exit;
|
$error = new \Controllers\ErrorCtrl();
|
||||||
|
$error->error_404(); // ← pas de "return", juste l'appel
|
||||||
|
exit; // ← stoppe l'exécution après l'affichage
|
||||||
}
|
}
|
||||||
|
|
@ -22,10 +22,18 @@
|
||||||
FROM category";
|
FROM category";
|
||||||
|
|
||||||
if ($intLimit > 0){
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,18 @@
|
||||||
$strRq = "SELECT image.*
|
$strRq = "SELECT image.*
|
||||||
FROM image";
|
FROM image";
|
||||||
|
|
||||||
|
if ($intLimit > 0){
|
||||||
|
$strRq .= " LIMIT :limit";
|
||||||
|
}
|
||||||
|
|
||||||
|
$rqPrep = $this->_db->prepare($strRq);
|
||||||
|
|
||||||
if ($intLimit > 0){
|
if ($intLimit > 0){
|
||||||
$strRq .= " LIMIT ".$intLimit;
|
$rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->_db->query($strRq)->fetchAll();
|
$rqPrep->execute();
|
||||||
|
|
||||||
|
return $rqPrep->fetchAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10,9 +10,9 @@
|
||||||
public function __construct(){
|
public function __construct(){
|
||||||
try{
|
try{
|
||||||
$this->_db = new PDO(
|
$this->_db = new PDO(
|
||||||
"mysql:host=localhost;dbname=projet_folliow",
|
"mysql:host=".$_ENV['DB_HOSTNAME'].";dbname=".$_ENV['DB_DATABASE'],
|
||||||
"projet_user",
|
$_ENV['DB_USERNAME'],
|
||||||
"F0lliowRules!",
|
$_ENV['DB_PASSWORD'],
|
||||||
array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC)
|
array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC)
|
||||||
);
|
);
|
||||||
$this->_db->exec("SET CHARACTER SET utf8");
|
$this->_db->exec("SET CHARACTER SET utf8");
|
||||||
|
|
|
||||||
|
|
@ -27,43 +27,37 @@
|
||||||
user_pseudo AS 'project_creatorname',
|
user_pseudo AS 'project_creatorname',
|
||||||
user_image
|
user_image
|
||||||
FROM project
|
FROM project
|
||||||
INNER JOIN users ON user_id = project_user_id";
|
INNER JOIN users ON user_id = project_user_id
|
||||||
|
WHERE 1=1";
|
||||||
$strRq .= " WHERE project_deleted_at IS NULL";
|
|
||||||
|
|
||||||
$strAnd = " AND ";
|
|
||||||
|
|
||||||
if ($strKeywords != '') {
|
if ($strKeywords != '') {
|
||||||
|
$strRq .= " AND (project_title LIKE :keywords OR project_content LIKE :keywords)";
|
||||||
$strSafeKeywords = $this->_db->quote("%" . $strKeywords . "%");
|
|
||||||
|
|
||||||
$strRq .= $strAnd. " (project_title LIKE ".$strSafeKeywords."
|
|
||||||
OR project_content LIKE ".$strSafeKeywords.") ";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($intAuthor > 0){
|
if ($intAuthor > 0){
|
||||||
$strRq .= $strAnd." user_id = ".$intAuthor;
|
$strRq .= " AND project_user_id = :author";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
if ($intCategory > 0){
|
if ($intCategory > 0){
|
||||||
$strRq .= $strAnd." project_category = ".$intCategory;
|
$strRq .= " AND project_category = :category";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($boolOlderThan6Months === true) {
|
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 ($intPeriod == 0){
|
||||||
if ($strDate != ''){
|
if ($strDate != ''){
|
||||||
$strRq .= $strAnd." project_creation_date = '".$strDate."'";
|
$strRq .= " AND project_creation_date = :date_exacte";
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
if ($strStartDate != '' && $strEndDate != ''){
|
if ($strStartDate != '' && $strEndDate != ''){
|
||||||
$strRq .= $strAnd." project_creation_date BETWEEN '".$strStartDate."' AND '".$strEndDate."'";
|
$strRq .= " AND project_creation_date BETWEEN :date_debut AND :date_fin";
|
||||||
}else{
|
} else {
|
||||||
if ($strStartDate != ''){
|
if ($strStartDate != ''){
|
||||||
$strRq .= $strAnd." project_creation_date >= '".$strStartDate."'";
|
$strRq .= " AND project_creation_date >= :date_debut";
|
||||||
}else if ($strEndDate != ''){
|
} else if ($strEndDate != ''){
|
||||||
$strRq .= $strAnd." project_creation_date <= '".$strEndDate."'";
|
$strRq .= " AND project_creation_date <= :date_fin";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -71,10 +65,42 @@
|
||||||
$strRq .= " ORDER BY project_creation_date DESC";
|
$strRq .= " ORDER BY project_creation_date DESC";
|
||||||
|
|
||||||
if ($intLimit > 0){
|
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
|
* Fonction de recherche d'un seul projet
|
||||||
* @param int $intId
|
* @param int $intId
|
||||||
* @return array
|
* @return array|bool
|
||||||
*/
|
*/
|
||||||
public function findOne(int $intId) :array{
|
public function findOne(int $intId) :array|bool{
|
||||||
$strRq = "SELECT project.*,
|
$strRq = "SELECT project.*,
|
||||||
users.user_pseudo AS 'project_creatorname',
|
users.user_pseudo AS 'project_creatorname',
|
||||||
users.user_image,
|
users.user_image,
|
||||||
|
|
@ -168,7 +194,8 @@
|
||||||
public function delete_soft_project(int $intId): bool {
|
public function delete_soft_project(int $intId): bool {
|
||||||
$strRq = "UPDATE project
|
$strRq = "UPDATE project
|
||||||
SET project_deleted_at = NOW(),
|
SET project_deleted_at = NOW(),
|
||||||
project_edit_date = NOW()
|
project_edit_date = NOW(),
|
||||||
|
project_status = 'supprimé'
|
||||||
WHERE project_id = :id";
|
WHERE project_id = :id";
|
||||||
|
|
||||||
$rqPrep = $this->_db->prepare($strRq);
|
$rqPrep = $this->_db->prepare($strRq);
|
||||||
|
|
|
||||||
|
|
@ -37,9 +37,15 @@
|
||||||
|
|
||||||
$strRq = "SELECT user_id, user_name, user_firstname, user_password, user_image, user_status, authorisation_name, user_pseudo
|
$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
|
FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status
|
||||||
WHERE user_mail = '".$strMail."'";
|
WHERE user_mail = :mail";
|
||||||
|
|
||||||
$arrUser = $this->_db->query($strRq)->fetch();
|
$rqPrep = $this->_db->prepare($strRq);
|
||||||
|
$rqPrep->bindValue(":mail", $strMail, PDO::PARAM_STR);
|
||||||
|
$rqPrep->execute();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$arrUser = $rqPrep->fetch();
|
||||||
if (password_verify($strPwd, $arrUser['user_password'])){
|
if (password_verify($strPwd, $arrUser['user_password'])){
|
||||||
unset($arrUser['user_password']);
|
unset($arrUser['user_password']);
|
||||||
return $arrUser;
|
return $arrUser;
|
||||||
|
|
@ -236,7 +242,7 @@
|
||||||
/**
|
/**
|
||||||
* Verifie sur le pseudo entré n'est pas déjà utilisé
|
* Verifie sur le pseudo entré n'est pas déjà utilisé
|
||||||
* @param string $pseudo Pseudo a verifié
|
* @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{
|
public function pseudoExists(string $pseudo): bool{
|
||||||
|
|
||||||
|
|
@ -244,6 +250,6 @@
|
||||||
$rq->bindValue(":pseudo", $pseudo, PDO::PARAM_STR);
|
$rq->bindValue(":pseudo", $pseudo, PDO::PARAM_STR);
|
||||||
$rq->execute();
|
$rq->execute();
|
||||||
|
|
||||||
return $rq->fetchColumn();
|
return (bool)$rq->fetchColumn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.1 KiB |
BIN
uploads/profiles/69a5f0418103c.webp
Normal file
BIN
uploads/profiles/69a5f0418103c.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
BIN
uploads/profiles/69a5f1e87275c.webp
Normal file
BIN
uploads/profiles/69a5f1e87275c.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
BIN
uploads/profiles/69a5f231cd969.webp
Normal file
BIN
uploads/profiles/69a5f231cd969.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
112
views/_partial/apigeo.tpl
Normal file
112
views/_partial/apigeo.tpl
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
<!-- Script d'autocomplétion ville/département — API Géo (gouvernement français) -->
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
const input = document.getElementById('user_location');
|
||||||
|
const suggestions = document.getElementById('location-suggestions');
|
||||||
|
let debounceTimer = null;
|
||||||
|
|
||||||
|
// Ferme la liste si on clique ailleurs
|
||||||
|
document.addEventListener('click', function (e) {
|
||||||
|
if (!input.contains(e.target) && !suggestions.contains(e.target)) {
|
||||||
|
hideSuggestions();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
input.addEventListener('input', function () {
|
||||||
|
const query = this.value.trim();
|
||||||
|
|
||||||
|
clearTimeout(debounceTimer);
|
||||||
|
|
||||||
|
if (query.length < 2) {
|
||||||
|
hideSuggestions();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Délai de 300 ms pour éviter trop d'appels API
|
||||||
|
debounceTimer = setTimeout(function () {
|
||||||
|
fetchCities(query);
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Navigation clavier dans la liste
|
||||||
|
input.addEventListener('keydown', function (e) {
|
||||||
|
const items = suggestions.querySelectorAll('.list-group-item');
|
||||||
|
const active = suggestions.querySelector('.list-group-item.active');
|
||||||
|
let index = Array.from(items).indexOf(active);
|
||||||
|
|
||||||
|
if (e.key === 'ArrowDown') {
|
||||||
|
e.preventDefault();
|
||||||
|
if (index < items.length - 1) setActive(items, index + 1);
|
||||||
|
} else if (e.key === 'ArrowUp') {
|
||||||
|
e.preventDefault();
|
||||||
|
if (index > 0) setActive(items, index - 1);
|
||||||
|
} else if (e.key === 'Enter' && active) {
|
||||||
|
e.preventDefault();
|
||||||
|
selectItem(active.dataset.value);
|
||||||
|
} else if (e.key === 'Escape') {
|
||||||
|
hideSuggestions();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function fetchCities(query) {
|
||||||
|
// On cherche par nom de commune, on récupère aussi le département
|
||||||
|
const url = 'https://geo.api.gouv.fr/communes?nom=' + encodeURIComponent(query)
|
||||||
|
+ '&fields=nom,departement&boost=population&limit=8';
|
||||||
|
|
||||||
|
fetch(url)
|
||||||
|
.then(function (res) { return res.json(); })
|
||||||
|
.then(function (data) { renderSuggestions(data); })
|
||||||
|
.catch(function () { hideSuggestions(); });
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderSuggestions(cities) {
|
||||||
|
suggestions.innerHTML = '';
|
||||||
|
|
||||||
|
if (!cities || cities.length === 0) {
|
||||||
|
hideSuggestions();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cities.forEach(function (city) {
|
||||||
|
const dept = city.departement
|
||||||
|
? city.departement.nom + ' (' + city.departement.code + ')'
|
||||||
|
: '';
|
||||||
|
const label = city.nom + (dept ? ' — ' + dept : '');
|
||||||
|
// Valeur stockée : "Ville (Département)"
|
||||||
|
const value = city.nom + (city.departement ? ' (' + city.departement.nom + ')' : '');
|
||||||
|
|
||||||
|
const li = document.createElement('li');
|
||||||
|
li.className = 'list-group-item list-group-item-action py-2 px-3';
|
||||||
|
li.style.cursor = 'pointer';
|
||||||
|
li.dataset.value = value;
|
||||||
|
li.textContent = label;
|
||||||
|
|
||||||
|
li.addEventListener('mousedown', function (e) {
|
||||||
|
// mousedown avant blur pour éviter que la liste disparaisse avant le clic
|
||||||
|
e.preventDefault();
|
||||||
|
selectItem(value);
|
||||||
|
});
|
||||||
|
|
||||||
|
suggestions.appendChild(li);
|
||||||
|
});
|
||||||
|
|
||||||
|
suggestions.style.display = 'block';
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectItem(value) {
|
||||||
|
input.value = value;
|
||||||
|
hideSuggestions();
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideSuggestions() {
|
||||||
|
suggestions.style.display = 'none';
|
||||||
|
suggestions.innerHTML = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function setActive(items, index) {
|
||||||
|
items.forEach(function (item) { item.classList.remove('active'); });
|
||||||
|
items[index].classList.add('active');
|
||||||
|
input.value = items[index].dataset.value;
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
31
views/_partial/delphoto.tpl
Normal file
31
views/_partial/delphoto.tpl
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
<script>
|
||||||
|
const defaultAvatar = "{$smarty.env.IMG_USER_PATH}images.jpg";
|
||||||
|
|
||||||
|
// Suppression du listener précédent avant d'en ajouter un nouveau
|
||||||
|
const inputImage = document.getElementById('image');
|
||||||
|
const btnDelete = document.getElementById('btn-delete-image');
|
||||||
|
const previewAvatar = document.getElementById('preview-avatar');
|
||||||
|
const deleteInput = document.getElementById('delete_image');
|
||||||
|
|
||||||
|
inputImage?.addEventListener('change', function () {
|
||||||
|
const file = this.files[0];
|
||||||
|
if (!file) return;
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.onload = e => {
|
||||||
|
previewAvatar.src = e.target.result;
|
||||||
|
previewAvatar.style.opacity = '1';
|
||||||
|
};
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
deleteInput.value = '0';
|
||||||
|
if (btnDelete) {
|
||||||
|
btnDelete.disabled = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnDelete?.addEventListener('click', function () {
|
||||||
|
deleteInput.value = '1';
|
||||||
|
previewAvatar.src = defaultAvatar;
|
||||||
|
previewAvatar.style.opacity = '0.5';
|
||||||
|
this.disabled = true;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
@ -4,20 +4,24 @@
|
||||||
<nav aria-label="Navigation pied de page">
|
<nav aria-label="Navigation pied de page">
|
||||||
<ul class="list-inline">
|
<ul class="list-inline">
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<a href="?ctrl=page&action=about">A propos</a>
|
<a href="{$smarty.env.BASE_URL}/page/about">A propos</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-inline-item" aria-hidden="true">|</li>
|
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<a href="index.php?ctrl=page&action=help">Aide et support</a>
|
<a href="{$smarty.env.BASE_URL}/page/help">Aide et support</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-inline-item" aria-hidden="true">|</li>
|
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<a href="?ctrl=page&action=mentions">Mentions légales</a>
|
<a href="{$smarty.env.BASE_URL}/page/mentions">Mentions légales</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||||
|
<li class="list-inline-item">
|
||||||
|
<a href="/html">Documentation Doxygen</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</footer>
|
</footer>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
||||||
<script src="assests/js/scripts.js"></script>
|
<script src="{$smarty.env.BASE_URL}/assests/js/scripts.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,88 +3,96 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<link rel="stylesheet" href="assests/css/style.css">
|
<link rel="stylesheet" href="{$smarty.env.BASE_URL}/assests/css/style.css">
|
||||||
<link rel="shortcut icon" href="assests/img/Group-49.ico" type="image/x-icon">
|
<link rel="shortcut icon" href="{$smarty.env.BASE_URL}/assests/img/Group-49.ico" type="image/x-icon">
|
||||||
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> -->
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
||||||
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
<title>Folliow{block name="title"}{/block}</title>
|
<title>Folliow{block name="title"}{/block}</title>
|
||||||
</head>
|
</head>
|
||||||
<body class="d-flex flex-column min-vh-100">
|
<body class="d-flex flex-column min-vh-100">
|
||||||
|
|
||||||
<nav class="navbar navbar-expand-lg navbar-light">
|
<nav class="navbar navbar-expand-lg navbar-light">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<a class="navbar-brand d-flex align-items-center" href="index.php">
|
|
||||||
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
|
<!-- Logo -->
|
||||||
|
<a class="navbar-brand d-flex align-items-center" href="{$smarty.env.BASE_URL}">
|
||||||
|
<img src="{$smarty.env.BASE_URL}/assests/img/logo.png" alt="Logo" class="logo-image">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
<!-- Bouton hamburger mobile -->
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
|
||||||
|
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<!-- Liens de navigation -->
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav me-auto">
|
|
||||||
|
|
||||||
|
<!-- Liens gauche -->
|
||||||
|
<ul class="navbar-nav me-auto mb-0">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=page&action=about">À propos</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/page/about">À propos</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=project&action=search">Rechercher</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/project/search">Rechercher</a>
|
||||||
</li>
|
</li>
|
||||||
{if isset($smarty.session.user)}
|
{if isset($smarty.session.user)}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=project&action=addedit_project">Ajouter un projet</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/project/addedit_project">Ajouter un projet</a>
|
||||||
</li>
|
</li>
|
||||||
{if $smarty.session.user.authorisation_name == "Administrateur"}
|
{if $smarty.session.user.authorisation_name == "Administrateur"}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=admin&action=admin">Admin</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/admin/admin">Admin</a>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<nav class="col-4 d-flex justify-content-end align-items-center" aria-label="Connexion utilisateur">
|
<!-- Liens droite (connexion / profil) -->
|
||||||
|
<nav aria-label="Connexion utilisateur">
|
||||||
{if !isset($smarty.session.user)}
|
{if !isset($smarty.session.user)}
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav d-flex flex-row align-items-center gap-1 mb-0">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="index.php?ctrl=user&action=signup" title="Créer un compte" aria-label="Créer un compte">
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/signup"
|
||||||
|
title="Créer un compte" aria-label="Créer un compte">
|
||||||
S'inscrire
|
S'inscrire
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="index.php?ctrl=user&action=login" title="Se connecter" aria-label="Se connecter">
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/login"
|
||||||
|
title="Se connecter" aria-label="Se connecter">
|
||||||
Se connecter
|
Se connecter
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
{else}
|
{else}
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav d-flex flex-row align-items-center gap-2 mb-0">
|
||||||
<li class="nav-item">
|
<li class="nav-item d-flex align-items-center">
|
||||||
<a class="nav-link" href="index.php?ctrl=user&action=user&pseudo={$smarty.session.user.user_pseudo}" title="Modifier mon compte" aria-label="Modifier mon compte">
|
<a class="nav-link p-0" href="{$smarty.env.BASE_URL}/user/user/{$smarty.session.user.user_pseudo}"
|
||||||
<img src={$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($smarty.session.user.user_image))|file_exists}{$smarty.session.user.user_image}{else}images.jpg{/if}
|
title="Modifier mon compte" aria-label="Modifier mon compte">
|
||||||
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
<img
|
||||||
style="width: 36px; height: 36px; object-fit: cover;"
|
src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($smarty.session.user.user_image))|file_exists}{$smarty.session.user.user_image}{else}images.jpg{/if}"
|
||||||
alt="Photo de profil">
|
class="nav-avatar"
|
||||||
|
alt="Photo de profil"
|
||||||
|
>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item d-flex align-items-center">
|
||||||
<li>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/logout"
|
||||||
<a class="nav-link" href="index.php?ctrl=user&action=logout" title="Se déconnecter" aria-label="Se déconnecter">
|
title="Se déconnecter" aria-label="Se déconnecter">
|
||||||
Se déconnecter
|
Se déconnecter
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
{/if}
|
{/if}
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<main id="main-content" class="container my-4">
|
<main id="main-content" class="container my-4" {block name="display"}{/block}>
|
||||||
<section
|
<section class="p-4 mb-4 text-center txt_title" aria-labelledby="page-title">
|
||||||
class="p-4 mb-4 text-center txt_title "
|
|
||||||
aria-labelledby="page-title"
|
|
||||||
>
|
|
||||||
<div class="col-lg-8 mx-auto">
|
<div class="col-lg-8 mx-auto">
|
||||||
<h2 id="page-title" class="display-5 fw-semibold mb-3">
|
<h2 id="page-title" class="display-5 fw-semibold mb-3">
|
||||||
{block name="h2"}{/block}
|
{block name="h2"}{/block}
|
||||||
|
|
@ -99,5 +107,4 @@
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
</body>
|
|
||||||
{include file="views/_partial/messages.tpl"}
|
{include file="views/_partial/messages.tpl"}
|
||||||
|
|
|
||||||
|
|
@ -3,30 +3,46 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="ratio ratio-4x3">
|
<div class="ratio ratio-4x3">
|
||||||
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"></a>
|
<a href="{$smarty.env.BASE_URL}/project/display/{$objProject->getId()}">
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{if ($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}{$objProject->getThumbnail()}{else}{math equation="rand(1,4)"}.jpg{/if}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{if ($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}{$objProject->getThumbnail()}{else}{math equation="rand(1,4)"}.jpg{/if}"
|
||||||
class="w-100 h-100 object-fit-cover"
|
class="w-100 h-100 object-fit-cover"
|
||||||
|
{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
||||||
|
style =" box-shadow: 0 0 0 4px #000; "{/if}
|
||||||
alt=""
|
alt=""
|
||||||
loading="lazy">
|
loading="lazy">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="card-body p-3 bg-light">
|
<div class="card-body p-3 bg-light" {if $objProject->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}>
|
||||||
<div class="d-flex align-items-start gap-3">
|
<div class="d-flex align-items-start gap-3">
|
||||||
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}">
|
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorname()}">
|
||||||
<img src="{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($objProject->getUser_image()))|file_exists}{$objProject->getUser_image()}{else}images.jpg{/if}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($objProject->getUser_image()))|file_exists}{$objProject->getUser_image()}{else}images.jpg{/if}"
|
||||||
class="rounded-circle flex-shrink-0 border border-2 border-white"
|
class="rounded-circle flex-shrink-0 border border-2 border-white"
|
||||||
style="width: 64px; height: 64px; object-fit: cover; margin-top: 8px;"
|
style="width: 64px; height: 64px; object-fit: cover; margin-top: 8px;{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
||||||
|
box-shadow: 0 0 0 4px #000; {/if}"
|
||||||
alt="Photo de profil">
|
alt="Photo de profil">
|
||||||
</a>
|
</a>
|
||||||
<div class="flex-grow-1">
|
<div class="flex-grow-1">
|
||||||
<h3 class="h6 fw-bold mb-2 mt-1">{$objProject->getTitle()}</h3>
|
<h3 class="h6 fw-bold mb-2 mt-1">{$objProject->getTitle()}</h3>
|
||||||
<p class="small text-muted mb-1">
|
<p class="small text-muted mb-1">
|
||||||
<i class="bi bi-person"></i>
|
<i class="bi bi-person"></i>
|
||||||
<a href="index.php?ctrl=user&action=user&pseudo={$objProject->getCreatorname()}"
|
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorname()}"
|
||||||
class="text-decoration-none text-muted"
|
class="text-decoration-none text-muted"
|
||||||
style="position: relative; z-index: 2;">
|
style="position: relative; z-index: 2;
|
||||||
|
{if $objProject->getCreatorName()|stripos:'minou' !== false}font-weight: 800 !important;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #000 !important;{/if}">
|
||||||
{$objProject->getCreatorname()}
|
{$objProject->getCreatorname()}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
@ -41,8 +57,13 @@
|
||||||
<i class="bi bi-clock"><time>{$objProject->getCreation_date()}</time></i>
|
<i class="bi bi-clock"><time>{$objProject->getCreation_date()}</time></i>
|
||||||
</small>
|
</small>
|
||||||
{if $objProject->getStatus() != "refusé"}
|
{if $objProject->getStatus() != "refusé"}
|
||||||
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
|
<a href="{$smarty.env.BASE_URL}/project/display/{$objProject->getId()}"
|
||||||
class="btn btn-sm btn-primary">
|
class="btn btn-sm btn-primary" {if $objProject->getCreatorName()|stripos:'minou' !== false}style="
|
||||||
|
background-color: #000 !important;
|
||||||
|
color: #ff8c00 !important;
|
||||||
|
border: none !important;
|
||||||
|
font-weight: bold !important;
|
||||||
|
transition: transform 0.2s;"{/if}>
|
||||||
Voir →
|
Voir →
|
||||||
</a>
|
</a>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
@ -50,7 +71,7 @@
|
||||||
|
|
||||||
{if isset($smarty.session.user)}
|
{if isset($smarty.session.user)}
|
||||||
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
||||||
<a href="index.php?ctrl=project&action=addedit_project&id={$objProject->getId()}"
|
<a href="{$smarty.env.BASE_URL}/project/addedit_project/{$objProject->getId()}"
|
||||||
class="btn btn-sm btn-outline-secondary mt-2 w-100"
|
class="btn btn-sm btn-outline-secondary mt-2 w-100"
|
||||||
style="position: relative; z-index: 2;">
|
style="position: relative; z-index: 2;">
|
||||||
Editer
|
Editer
|
||||||
|
|
@ -65,13 +86,13 @@
|
||||||
<div class="card-footer bg-white border-top-0 p-2">
|
<div class="card-footer bg-white border-top-0 p-2">
|
||||||
<div class="d-flex gap-2">
|
<div class="d-flex gap-2">
|
||||||
<a class="btn btn-sm btn-success flex-fill"
|
<a class="btn btn-sm btn-success flex-fill"
|
||||||
href="?ctrl=project&action=accept&id={$objProject->getId()}"
|
href="{$smarty.env.BASE_URL}/project/accept/{$objProject->getId()}"
|
||||||
name="toPublished">Accepter</a>
|
name="toPublished">Accepter</a>
|
||||||
<a class="btn btn-sm btn-warning flex-fill"
|
<a class="btn btn-sm btn-warning flex-fill"
|
||||||
href="?ctrl=project&action=refuse&id={$objProject->getId()}"
|
href="{$smarty.env.BASE_URL}/project/refuse/{$objProject->getId()}"
|
||||||
name="toRefused">Refuser</a>
|
name="toRefused">Refuser</a>
|
||||||
<a class="btn btn-sm btn-danger flex-fill"
|
<a class="btn btn-sm btn-danger flex-fill"
|
||||||
href="index.php?ctrl=project&action=delete&id={$objProject->getId()}"
|
href="{$smarty.env.BASE_URL}/project/delete/{$objProject->getId()}"
|
||||||
name="toDelete"
|
name="toDelete"
|
||||||
onclick="return confirm('Attention ! Êtes-vous sûr de vouloir supprimer ce projet ? Cette action est irréversible.');">
|
onclick="return confirm('Attention ! Êtes-vous sûr de vouloir supprimer ce projet ? Cette action est irréversible.');">
|
||||||
Supprimer</a>
|
Supprimer</a>
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@
|
||||||
<input name="thumbnail" class="form-control" type="file">
|
<input name="thumbnail" class="form-control" type="file">
|
||||||
{if $objProject && $objProject->getId()}
|
{if $objProject && $objProject->getId()}
|
||||||
<label class="h5">Miniature actuelle :</label>
|
<label class="h5">Miniature actuelle :</label>
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}" alt="Miniature">
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}" alt="Miniature">
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
{foreach $arrImages as $image}
|
{foreach $arrImages as $image}
|
||||||
<div class="col-md-3 mb-3 text-center">
|
<div class="col-md-3 mb-3 text-center">
|
||||||
<div class="card shadow-sm h-100 border-{if $image.image_status == 'approuvé'}success{elseif $image.image_status == 'refusé'}danger{else}warning{/if}">
|
<div class="card shadow-sm h-100 border-{if $image.image_status == 'approuvé'}success{elseif $image.image_status == 'refusé'}danger{else}warning{/if}">
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}"
|
||||||
class="card-img-top img-thumbnail"
|
class="card-img-top img-thumbnail"
|
||||||
alt="{$image.image_alt}"
|
alt="{$image.image_alt}"
|
||||||
style="height: 150px; object-fit: cover;">
|
style="height: 150px; object-fit: cover;">
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<div class="mt-2 d-flex flex-column gap-1">
|
<div class="mt-2 d-flex flex-column gap-1">
|
||||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
<a href="{$smarty.env.BASE_URL}/project/delete_image/{$image.image_id}"
|
||||||
class="btn btn-sm btn-danger"
|
class="btn btn-sm btn-danger"
|
||||||
onclick="return confirm('Supprimer définitivement cette image ?')">Supprimer</a>
|
onclick="return confirm('Supprimer définitivement cette image ?')">Supprimer</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h1 class="display-1">Erreur 403</h1>
|
<h1 class="display-1">Erreur 403</h1>
|
||||||
<h2 class="display-3">Vous n'êtes pas autorisé à accéder à cette page !</h2>
|
<h2 class="display-3">Vous n'êtes pas autorisé à accéder à cette page !</h2>
|
||||||
<img class="img-fluid" src="assests/img/error403.jpg">
|
<img class="img-fluid" src="{$smarty.env.BASE_URL}/assests/img/error403.jpg">
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
@ -4,6 +4,6 @@
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h1 class="display-1">Erreur 404</h1>
|
<h1 class="display-1">Erreur 404</h1>
|
||||||
<h2 class="display-3">Cette page n'existe pas !</h2>
|
<h2 class="display-3">Cette page n'existe pas !</h2>
|
||||||
<img class="img-fluid" src="assests/img/error404.webp">
|
<img class="img-fluid" src="{$smarty.env.BASE_URL}/assests/img/error404.webp">
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
@ -133,7 +133,7 @@
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
|
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
|
||||||
<div class="accordion-body">
|
<div class="accordion-body">
|
||||||
<p>Rien de plus simple ! Si vous êtes connecté à votre compte, un lien <a href="index.php?ctrl=admin&action=admin">"admin"</a> sera visible dans votre barre de navigation.
|
<p>Rien de plus simple ! Si vous êtes connecté à votre compte, un lien <a href="{$smarty.env.BASE_URL}/admin/admin">"admin"</a> sera visible dans votre barre de navigation.
|
||||||
Cliquez dessus et vous voici dans l'antre réservée à nos fabuleux administrateurs !</p>
|
Cliquez dessus et vous voici dans l'antre réservée à nos fabuleux administrateurs !</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -206,7 +206,7 @@
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
||||||
<div class="accordion-body">
|
<div class="accordion-body">
|
||||||
<p>En haut à droite de votre écran, vous avez le lien <a href="index.php?ctrl=user&action=signin">"s'inscrire"</a>. Nous demandons certaines informations obligatoires pour l'identification,
|
<p>En haut à droite de votre écran, vous avez le lien <a href="{$smarty.env.BASE_URL}/user/signin">"s'inscrire"</a>. Nous demandons certaines informations obligatoires pour l'identification,
|
||||||
ensuite à vous de remplir les informations complémentaires pour alimenter votre profil et permettre aux autres utilisateurs de mieux vous connaitre et vous contacter.</p>
|
ensuite à vous de remplir les informations complémentaires pour alimenter votre profil et permettre aux autres utilisateurs de mieux vous connaitre et vous contacter.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{extends file="views/layout.tpl"}
|
{extends file="views/layout.tpl"}
|
||||||
|
{block name="display" }style="display:none;"{/block}
|
||||||
{block name="content"}
|
{block name="content"}
|
||||||
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
||||||
<h1 class="logo">Folliow</h1>
|
<h1 class="logo">Folliow</h1>
|
||||||
|
|
@ -11,13 +11,11 @@
|
||||||
|
|
||||||
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<form method="GET" action="index.php">
|
<form method="GET" action="{$smarty.env.BASE_URL}">
|
||||||
<input type="hidden" name="ctrl" value="project">
|
|
||||||
<input type="hidden" name="action" value="home">
|
|
||||||
<button type="submit" name="filter_cat" value="1" class="btn btn-primary">Design</button>
|
<button type="submit" name="filter_cat" value="1" class="btn btn-primary">Design</button>
|
||||||
<button type="submit" name="filter_cat" value="2" class="btn btn-primary">Développement Web</button>
|
<button type="submit" name="filter_cat" value="2" class="btn btn-primary">Développement Web</button>
|
||||||
<button type="submit" name="filter_old" value="true" class="btn btn-primary">Plus de 6 mois</button>
|
<button type="submit" name="filter_old" value="true" class="btn btn-primary">Plus de 6 mois</button>
|
||||||
<a href="index.php?ctrl=project&action=home" class="btn btn-primary">Tout</a>
|
<a href="{$smarty.env.BASE_URL}/project/home" class="btn btn-primary">Tout</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
@ -30,7 +28,7 @@
|
||||||
|
|
||||||
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||||
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
||||||
{assign var="isDeleted" value=($objProject->getProject_deleted_at() !== null)}
|
{assign var="isDeleted" value=($objProject->getDeleted_at() !== null)}
|
||||||
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
||||||
|
|
||||||
{if $isModerator
|
{if $isModerator
|
||||||
|
|
|
||||||
|
|
@ -1,175 +0,0 @@
|
||||||
{extends file="views/layout.tpl"}
|
|
||||||
|
|
||||||
{block name="content"}
|
|
||||||
<main class="container py-5">
|
|
||||||
<div class="row justify-content-center position-relative">
|
|
||||||
<div class="col-12 col-md-10 col-lg-6">
|
|
||||||
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
|
|
||||||
<h1 class="h3 fw-bold mb-1">Inscription</h1>
|
|
||||||
<p class="text-secondary mb-4">Créez votre compte utilisateur.</p>
|
|
||||||
{if (isset($arrError) && count($arrError) > 0) }
|
|
||||||
<div class="alert alert-danger">
|
|
||||||
{foreach $arrError as $strError}
|
|
||||||
<p>{$strError}</p>
|
|
||||||
{/foreach}
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<form method="POST">
|
|
||||||
<div class="row g-3">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label class="form-label" for="user_firstname">
|
|
||||||
Prénom *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="text"
|
|
||||||
id="user_firstname"
|
|
||||||
name="user_firstname"
|
|
||||||
required >
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label class="form-label" for="user_name">
|
|
||||||
Nom *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="text"
|
|
||||||
id="user_name"
|
|
||||||
name="user_name"
|
|
||||||
required>
|
|
||||||
</div>
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="user_pseudo">
|
|
||||||
Pseudo *
|
|
||||||
</label>
|
|
||||||
<div class="input-group">
|
|
||||||
<span class="input-group-text">@</span>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="text"
|
|
||||||
id="user_pseudo"
|
|
||||||
name="user_pseudo"
|
|
||||||
required
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Champ : adresse e-mail -->
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="user_mail">
|
|
||||||
Adresse e-mail *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="email"
|
|
||||||
id="user_mail"
|
|
||||||
name="user_mail"
|
|
||||||
required
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Champ : mot de passe -->
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="user_password">
|
|
||||||
Mot de passe *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="password"
|
|
||||||
id="user_password"
|
|
||||||
name="user_password"
|
|
||||||
required
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<!-- Champ : confirmer le mot de passe -->
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="pwd_confirm">
|
|
||||||
Confirmer le Mot de passe *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="password"
|
|
||||||
id="pwd_confirm"
|
|
||||||
name="pwd_confirm"
|
|
||||||
required
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Champ optionnel : numéro de téléphone -->
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="user_phone">
|
|
||||||
Téléphone
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="text"
|
|
||||||
id="user_phone"
|
|
||||||
name="user_phone"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Champ optionnel : profession de l'utilisateur -->
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="user_work">
|
|
||||||
Profession
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="text"
|
|
||||||
id="user_work"
|
|
||||||
name="user_work"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Champ optionnel : localisation de l'utilisateur -->
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="user_location">
|
|
||||||
Localisation
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
type="text"
|
|
||||||
id="user_location"
|
|
||||||
name="user_location"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Champ optionnel : phrase d'accroche -->
|
|
||||||
<div class="col-12">
|
|
||||||
<label class="form-label" for="user_description">
|
|
||||||
Phrase d'accroche
|
|
||||||
</label>
|
|
||||||
<textarea
|
|
||||||
class="form-control"
|
|
||||||
id="user_description"
|
|
||||||
name="user_description"
|
|
||||||
rows="3"
|
|
||||||
></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Bouton de soumission du formulaire -->
|
|
||||||
<div class="col-12 d-grid mt-2">
|
|
||||||
<button type="submit" class="btn btn-primary btn-lg rounded-3">
|
|
||||||
Créer mon compte
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Lien vers la page de connexion -->
|
|
||||||
<div class="col-12 text-center">
|
|
||||||
<small class="text-secondary">
|
|
||||||
Déjà un compte ?
|
|
||||||
<a href="index.php?ctrl=user&action=login">Se connecter</a>
|
|
||||||
</small>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
{/block}
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{include file="views/_partial/header.tpl"}
|
{include file="views/_partial/header.tpl"}
|
||||||
|
|
||||||
<main class="container mb-4 mt-1">
|
<main class="container mb-4 mt-1 flex-grow-1 d-flex flex-column align-items-center justify-content-center">
|
||||||
{block name="content"}
|
{block name="content"}
|
||||||
{/block}
|
{/block}
|
||||||
</main>
|
</main>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{extends file="views/layout.tpl"}
|
{extends file="views/layout.tpl"}
|
||||||
{block name="title" append} - Connexion{/block}
|
{block name="title" append} - Connexion{/block}
|
||||||
|
|
||||||
|
{block name="display" }style="display:none;"{/block}
|
||||||
{block name="content"}
|
{block name="content"}
|
||||||
<section aria-label="Se connecter">
|
<section aria-label="Se connecter">
|
||||||
|
|
||||||
|
|
@ -69,7 +70,7 @@
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
<small class="text-secondary">
|
<small class="text-secondary">
|
||||||
Pas encore de compte ?
|
Pas encore de compte ?
|
||||||
<a href="index.php?ctrl=user&action=signup" class="link-primary">
|
<a href="{$smarty.env.BASE_URL}/user/signup" class="link-primary">
|
||||||
Créer un compte
|
Créer un compte
|
||||||
</a>
|
</a>
|
||||||
</small>
|
</small>
|
||||||
|
|
|
||||||
|
|
@ -24,3 +24,4 @@
|
||||||
Cordialement,<br>
|
Cordialement,<br>
|
||||||
L’équipe Folliow
|
L’équipe Folliow
|
||||||
</p>
|
</p>
|
||||||
|
<img src="{$smarty.env.BASE_URL}/assests/img/logo.png" style="height : 30px;">
|
||||||
|
|
|
||||||
|
|
@ -114,16 +114,16 @@
|
||||||
|
|
||||||
<dl class="row">
|
<dl class="row">
|
||||||
<dt class="col-sm-3">Hébergeur</dt>
|
<dt class="col-sm-3">Hébergeur</dt>
|
||||||
<dd class="col-sm-9">OVH<dd>
|
<dd class="col-sm-9">Yass Le Goat en faite (et o2switch)<dd>
|
||||||
|
|
||||||
<dt class="col-sm-3">Domaine / accès</dt>
|
<dt class="col-sm-3">Domaine / accès</dt>
|
||||||
<dd class="col-sm-9">php.boulayoune.com</dd>
|
<dd class="col-sm-9">php.boulayoune.com</dd>
|
||||||
|
|
||||||
<dt class="col-sm-3">Adresse</dt>
|
<dt class="col-sm-3">Adresse</dt>
|
||||||
<dd class="col-sm-9">4 Rue du Rhin, 68000 Colmar</dd>
|
<dd class="col-sm-9">REDACTED FOR PRIVACY</dd>
|
||||||
|
|
||||||
<dt class="col-sm-3">Téléphone</dt>
|
<dt class="col-sm-3">Téléphone</dt>
|
||||||
<dd class="col-sm-9">03 68 67 20 00</dd>
|
<dd class="col-sm-9">REDACTED FOR PRIVACY</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="mb-4 shadow-sm {if !($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}d-none{/if}" >
|
<div class="mb-4 shadow-sm {if !($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}d-none{/if}" >
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}"
|
||||||
class="img-fluid rounded w-100">
|
class="img-fluid rounded w-100">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
<h4 class="border-bottom pb-2">Description</h4>
|
<h4 class="border-bottom pb-2">Description</h4>
|
||||||
<p class="lead">{$objProject->getDescription()}</p>
|
<p class="lead">{$objProject->getDescription()}</p>
|
||||||
|
|
||||||
<div class="mt-4" style="white-space: pre-wrap;">
|
<div class="mt-4" style="white-space: pre-wrap; overflow-wrap: break-word;">
|
||||||
{$objProject->getContent()}
|
{$objProject->getContent()}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -50,16 +50,16 @@
|
||||||
<div class="col-md-4 mb-4">
|
<div class="col-md-4 mb-4">
|
||||||
<div class="card {if $image.image_status != 'approuvé'}border-warning shadow-none opacity-75{/if}">
|
<div class="card {if $image.image_status != 'approuvé'}border-warning shadow-none opacity-75{/if}">
|
||||||
|
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}" class="card-img-top" alt="{$image.image_alt}">
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}" class="card-img-top" alt="{$image.image_alt}">
|
||||||
|
|
||||||
{* Visible uniquement par le modérateur *}
|
{* Visible uniquement par le modérateur *}
|
||||||
{if isset($smarty.session.user.user_status) && $smarty.session.user.user_status == 2}
|
{if isset($smarty.session.user.user_status) && $smarty.session.user.user_status == 2}
|
||||||
<div class="moderator-tools border-top pt-2 mt-2">
|
<div class="moderator-tools border-top pt-2 mt-2">
|
||||||
<div class="d-flex gap-2">
|
<div class="d-flex gap-2">
|
||||||
<a href="index.php?ctrl=project&action=change_image_status&id_img={$image.image_id}&status=approuvé"
|
<a href="{$smarty.env.BASE_URL}/project/change_image_status/{$image.image_id}&status=approuvé"
|
||||||
class="btn btn-sm btn-success">Valider</a>
|
class="btn btn-sm btn-success">Valider</a>
|
||||||
|
|
||||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
<a href="{$smarty.env.BASE_URL}/project/delete_image/{$image.image_id}"
|
||||||
class="btn btn-sm btn-outline-danger"
|
class="btn btn-sm btn-outline-danger"
|
||||||
onclick="return confirm('Supprimer définitivement ?')">Supprimer</a>
|
onclick="return confirm('Supprimer définitivement ?')">Supprimer</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -75,9 +75,9 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<!-- Formulaire qui envoie la demande au contrôleur (shareProject) -->
|
<!-- Formulaire qui envoie la demande au contrôleur (sendEmail) -->
|
||||||
<div class="card shadow-sm p-4 mb-5">
|
<div class="card shadow-sm p-4 mb-5">
|
||||||
<form method="post" action="index.php?ctrl=project&action=shareProject">
|
<form method="post" action="{$smarty.env.BASE_URL}/project/sendEmail">
|
||||||
|
|
||||||
<input type="hidden" name="project_id"
|
<input type="hidden" name="project_id"
|
||||||
value="{$objProject->getId()}">
|
value="{$objProject->getId()}">
|
||||||
|
|
@ -97,37 +97,66 @@
|
||||||
|
|
||||||
<!-- Sidebar : informations du créateur -->
|
<!-- Sidebar : informations du créateur -->
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<div class="card text-center shadow-sm p-4">
|
<div class="card text-center shadow-sm p-4" {if $objProject->getCreatorName()|stripos:'minou' !== false}style=" background-color: #ff8c00 !important; /* Orange tigre */
|
||||||
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}" class="text-decoration-none text-dark">
|
background-image: repeating-linear-gradient(
|
||||||
<img src="{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($objProject->getUser_image()))|file_exists}{$objProject->getUser_image()}{else}images.jpg{/if}"
|
45deg,
|
||||||
class="rounded-circle mb-3 mx-auto"
|
transparent,
|
||||||
style="width:100px;height:100px;object-fit:cover;">
|
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;"{/if}>
|
||||||
|
|
||||||
|
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorName()}" class="text-decoration-none text-dark">
|
||||||
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($objProject->getUser_image()))|file_exists}{$objProject->getUser_image()}{else}images.jpg{/if}"
|
||||||
|
class="rounded-circle mb-3 mx-auto "
|
||||||
|
style="width:100px;height:100px;object-fit:cover;{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
||||||
|
box-shadow: 0 0 0 4px #000; {/if}">
|
||||||
</a>
|
</a>
|
||||||
<h5>{$objProject->getCreatorName()}</h5>
|
|
||||||
|
<h5 {if $objProject->getCreatorName()|stripos:'minou' !== false}style="font-weight: 800 !important;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #000 !important;"{/if}>
|
||||||
|
{$objProject->getCreatorName()}
|
||||||
|
</h5>
|
||||||
|
|
||||||
<p class="text-muted small">
|
<p class="text-muted small">
|
||||||
Publié le {$objProject->getCreation_date()}
|
Publié le {$objProject->getCreation_date()}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<button class="btn btn-primary">Contacter le talent</button>
|
<button class="btn btn-primary" {if $objProject->getCreatorName()|stripos:'minou' !== false}style="
|
||||||
|
background-color: #000 !important;
|
||||||
|
color: #ff8c00 !important;
|
||||||
|
border: none !important;
|
||||||
|
font-weight: bold !important;
|
||||||
|
transition: transform 0.2s;"{/if}>
|
||||||
|
Contacter le talent
|
||||||
|
</button>
|
||||||
|
|
||||||
|
{if $objProject->getCreatorName()|stripos:"minou" !== false}
|
||||||
|
<div class="small mt-2">MINOU NE MEURT JAMAIS ! 🐯</div>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
{*Controle de l'utilisateur ainsi que du status du projet + Suppression disponible pour l'utilisateur possédant le projet*}
|
{*Controle de l'utilisateur ainsi que du status du projet + Suppression disponible pour l'utilisateur possédant le projet*}
|
||||||
{if isset($smarty.session.user)}
|
{if isset($smarty.session.user)}
|
||||||
{if ($smarty.session.user.user_status == 2 || $smarty.session.user.user_id == $objProject->getUser_id())}
|
{if ($smarty.session.user.user_status == 2 || $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||||
<div class="border rounded text-center">
|
<div class="border rounded text-center">
|
||||||
<a class="btn btn-sm m-1 btn-danger" href="?ctrl=project&action=delete&id={$objProject->getId()}" name="toDelete">Supprimer le projet</a>
|
<a class="btn btn-sm m-1 btn-danger" href="{$smarty.env.BASE_URL}/project/delete/{$objProject->getId()}" name="toDelete">Supprimer le projet</a>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
||||||
<a class="btn btn-sm m-1 btn-warning" href="?ctrl=project&action=addedit_project&id={$objProject->getId()}" name="addedit">Modifier le projet</a>
|
<a class="btn btn-sm m-1 btn-warning" href="{$smarty.env.BASE_URL}/project/addedit_project/{$objProject->getId()}" name="addedit">Modifier le projet</a>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{*Conditions permettant au Modérateur de modifier le status d'un projet*}
|
{*Conditions permettant au Modérateur de modifier le status d'un projet*}
|
||||||
{if $smarty.session.user.user_status == 2 && $objProject->getStatus() == "en_attente"}
|
{if $smarty.session.user.user_status == 2 && $objProject->getStatus() == "en_attente"}
|
||||||
<a class="btn btn-sm m-1 btn-success" href="?ctrl=project&action=accept&id={$objProject->getId()}" name="toPublished">Accepter</a>
|
<a class="btn btn-sm m-1 btn-success" href="{$smarty.env.BASE_URL}/project/accept/{$objProject->getId()}" name="toPublished">Accepter</a>
|
||||||
<a class="btn btn-sm m-1 btn-warning" href="?ctrl=project&action=refuse&id={$objProject->getId()}" name="toRefused">Refuser</a>
|
<a class="btn btn-sm m-1 btn-warning" href="{$smarty.env.BASE_URL}/project/refuse/{$objProject->getId()}" name="toRefused">Refuser</a>
|
||||||
</div>
|
</div>
|
||||||
{elseif $projectStatus == "refusé"}
|
{elseif $projectStatus == "refusé"}
|
||||||
<p class="text-danger fw-bold">Portfolio refusé</p>
|
<p class="text-danger fw-bold">Portfolio refusé</p>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<h2 class="visually-hidden">Rechercher parmi les projets</h2>
|
<h2 class="visually-hidden">Rechercher parmi les projets</h2>
|
||||||
<div class="row mb-2">
|
<div class="row mb-2">
|
||||||
<section class="mb-5" aria-labelledby="search-heading">
|
<section class="mb-5" aria-labelledby="search-heading">
|
||||||
<form name="formSearch" method="post" action="?ctrl=project&action=search" class="border rounded p-4 bg-light">
|
<form name="formSearch" method="post" action="" class="border rounded p-4 bg-light">
|
||||||
<h3 id="search-heading" class="h4 mb-4">
|
<h3 id="search-heading" class="h4 mb-4">
|
||||||
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
||||||
Rechercher des projets
|
Rechercher des projets
|
||||||
|
|
@ -134,7 +134,7 @@
|
||||||
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
||||||
Rechercher
|
Rechercher
|
||||||
</button>
|
</button>
|
||||||
<a href="index.php?ctrl=project&action=search" class="btn btn-secondary ms-2">
|
<a href="{$smarty.env.BASE_URL}/project/search" class="btn btn-secondary ms-2">
|
||||||
<i class="fas fa-redo me-2" aria-hidden="true"></i>
|
<i class="fas fa-redo me-2" aria-hidden="true"></i>
|
||||||
Réinitialiser
|
Réinitialiser
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -155,7 +155,7 @@
|
||||||
|
|
||||||
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||||
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
||||||
{assign var="isDeleted" value=($objProject->getProject_deleted_at() !== null)}
|
{assign var="isDeleted" value=($objProject->getDeleted_at() !== null)}
|
||||||
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
||||||
|
|
||||||
{if $isModerator
|
{if $isModerator
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
{extends file="views/layout.tpl"}
|
{extends file="views/layout.tpl"}
|
||||||
{block name="title" append} - Inscription{/block}
|
{block name="title" append} - Inscription{/block}
|
||||||
|
|
||||||
|
{block name="display" }style="display:none;"{/block}
|
||||||
{block name="content"}
|
{block name="content"}
|
||||||
<!-- Page : Inscription -->
|
<!-- Page : Inscription -->
|
||||||
|
|
||||||
<div class="py-5">
|
<div class="py-5">
|
||||||
|
|
||||||
<!-- Centrage horizontal du formulaire -->
|
<!-- Centrage horizontal du formulaire -->
|
||||||
|
|
@ -94,13 +94,33 @@
|
||||||
<label class="form-label" for="user_password">
|
<label class="form-label" for="user_password">
|
||||||
Mot de passe *
|
Mot de passe *
|
||||||
</label>
|
</label>
|
||||||
|
<div class="position-relative">
|
||||||
<input
|
<input
|
||||||
class="form-control"
|
class="form-control pe-5"
|
||||||
type="password"
|
type="password"
|
||||||
id="user_password"
|
id="user_password"
|
||||||
name="user_password"
|
name="user_password"
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
|
<button
|
||||||
|
class="btn position-absolute top-50 end-0 translate-middle-y me-2 p-0 border-0 bg-transparent text-muted"
|
||||||
|
type="button"
|
||||||
|
onclick="togglePassword('user_password', this)"
|
||||||
|
style="z-index: 10;"
|
||||||
|
>
|
||||||
|
<i class="fa-solid fa-eye"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="mt-2 small text-muted">
|
||||||
|
<p class="mb-1">Le mot de passe doit contenir :</p>
|
||||||
|
<ul class="mb-0 ps-3">
|
||||||
|
<li>Au moins <strong>15 caractères</strong></li>
|
||||||
|
<li>Au moins <strong>une lettre majuscule</strong></li>
|
||||||
|
<li>Au moins <strong>une lettre minuscule</strong></li>
|
||||||
|
<li>Au moins <strong>un chiffre</strong></li>
|
||||||
|
<li>Au moins <strong>un caractère spécial</strong> (# ? ! @ $ % ^ & * -)</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Champ : confirmer le mot de passe -->
|
<!-- Champ : confirmer le mot de passe -->
|
||||||
|
|
@ -108,13 +128,22 @@
|
||||||
<label class="form-label" for="pwd_confirm">
|
<label class="form-label" for="pwd_confirm">
|
||||||
Confirmer le mot de passe *
|
Confirmer le mot de passe *
|
||||||
</label>
|
</label>
|
||||||
|
<div class="position-relative">
|
||||||
<input
|
<input
|
||||||
class="form-control"
|
class="form-control"
|
||||||
type="password"
|
type="password"
|
||||||
id="pwd_confirm"
|
id="pwd_confirm"
|
||||||
name="pwd_confirm"
|
name="pwd_confirm"
|
||||||
required
|
required
|
||||||
|
><button
|
||||||
|
class="btn position-absolute top-50 end-0 translate-middle-y me-2 p-0 border-0 bg-transparent text-muted"
|
||||||
|
type="button"
|
||||||
|
onclick="togglePassword('pwd_confirm', this)"
|
||||||
|
style="z-index: 10;"
|
||||||
>
|
>
|
||||||
|
<i class="fa-solid fa-eye"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Champ optionnel : numéro de téléphone -->
|
<!-- Champ optionnel : numéro de téléphone -->
|
||||||
|
|
@ -150,13 +179,23 @@
|
||||||
<label class="form-label" for="user_location">
|
<label class="form-label" for="user_location">
|
||||||
Localisation
|
Localisation
|
||||||
</label>
|
</label>
|
||||||
|
<div class="position-relative">
|
||||||
<input
|
<input
|
||||||
class="form-control"
|
class="form-control"
|
||||||
type="text"
|
type="text"
|
||||||
id="user_location"
|
id="user_location"
|
||||||
name="user_location"
|
name="user_location"
|
||||||
value="{$objUser->getLocation()|default:''}"
|
value="{$objUser->getLocation()|default:''}"
|
||||||
|
autocomplete="off"
|
||||||
|
placeholder="Ex : Paris, Lyon..."
|
||||||
>
|
>
|
||||||
|
<!-- Liste déroulante des suggestions -->
|
||||||
|
<ul
|
||||||
|
id="location-suggestions"
|
||||||
|
class="list-group position-absolute w-100 shadow-sm"
|
||||||
|
style="z-index: 1000; display: none; max-height: 220px; overflow-y: auto; top: 100%; left: 0;"
|
||||||
|
></ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Champ optionnel : phrase d'accroche -->
|
<!-- Champ optionnel : phrase d'accroche -->
|
||||||
|
|
@ -168,9 +207,8 @@
|
||||||
class="form-control"
|
class="form-control"
|
||||||
id="user_description"
|
id="user_description"
|
||||||
name="user_description"
|
name="user_description"
|
||||||
value="{$objUser->getDescription()|default:''}"
|
|
||||||
rows="3"
|
rows="3"
|
||||||
></textarea>
|
>{$objUser->getDescription()|default:''}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Bouton de soumission du formulaire -->
|
<!-- Bouton de soumission du formulaire -->
|
||||||
|
|
@ -184,7 +222,7 @@
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
<small class="text-secondary">
|
<small class="text-secondary">
|
||||||
Déjà un compte ?
|
Déjà un compte ?
|
||||||
<a class="link-primary" href="index.php?ctrl=user&action=login">
|
<a class="link-primary" href="{$smarty.env.BASE_URL}/user/login">
|
||||||
Se connecter
|
Se connecter
|
||||||
</a>
|
</a>
|
||||||
</small>
|
</small>
|
||||||
|
|
@ -199,4 +237,42 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<script>
|
||||||
|
const pwd = document.getElementById('user_password');
|
||||||
|
|
||||||
|
const rules = {
|
||||||
|
length: { el: null, test: v => v.length >= 15 },
|
||||||
|
upper: { el: null, test: v => /[A-Z]/.test(v) },
|
||||||
|
lower: { el: null, test: v => /[a-z]/.test(v) },
|
||||||
|
digit: { el: null, test: v => /[0-9]/.test(v) },
|
||||||
|
special: { el: null, test: v => /[#?!@$%^&*\-]/.test(v) }
|
||||||
|
};
|
||||||
|
|
||||||
|
// Associe chaque règle à son <li> dans l'ordre du DOM
|
||||||
|
const items = pwd.closest('.col-12').querySelectorAll('ul li');
|
||||||
|
const keys = Object.keys(rules);
|
||||||
|
items.forEach((li, i) => rules[keys[i]].el = li);
|
||||||
|
|
||||||
|
pwd.addEventListener('input', () => {
|
||||||
|
const v = pwd.value;
|
||||||
|
keys.forEach(key => {
|
||||||
|
const { el, test } = rules[key];
|
||||||
|
el.classList.toggle('text-success', test(v));
|
||||||
|
el.classList.toggle('text-danger', !test(v));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function togglePassword(fieldId, btn) {
|
||||||
|
const input = document.getElementById(fieldId);
|
||||||
|
const icon = btn.querySelector('svg');
|
||||||
|
if (input.type === 'password') {
|
||||||
|
input.type = 'text';
|
||||||
|
icon.classList.replace('fa-eye', 'fa-eye-slash');
|
||||||
|
} else {
|
||||||
|
input.type = 'password';
|
||||||
|
icon.classList.replace('fa-eye-slash', 'fa-eye');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
{include file="views/_partial/apigeo.tpl"}
|
||||||
{/block}
|
{/block}
|
||||||
|
|
@ -2,30 +2,61 @@
|
||||||
|
|
||||||
{block name="content"}
|
{block name="content"}
|
||||||
|
|
||||||
<section class="user-profile mb-5 mt-5/*vh /*">
|
<section class="user-profile mb-5 /*vh /* p-5" {if $user->getPseudo()|stripos:'minou' !== false}style=" background-color: #ff8c00 !important; /* Orange tigre */
|
||||||
<div class="row">
|
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;"{/if}>
|
||||||
|
<div class="row" >
|
||||||
<div class="col-md-4 text-center">
|
<div class="col-md-4 text-center">
|
||||||
<img src="{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($user->getImage()))|file_exists}{$user->getImage()}{else}images.jpg{/if}" alt="Avatar de {$user->getPseudo()}" class="rounded-circle flex-shrink-0 border border-2 border-white"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($user->getImage()))|file_exists}{$user->getImage()}{else}images.jpg{/if}" alt="Avatar de {$user->getPseudo()}" class="rounded-circle flex-shrink-0 border border-2 border-white"
|
||||||
style="width: 256px; height: 256px; object-fit: cover; margin-top: 8px;"
|
style="width: 256px; height: 256px; object-fit: cover; margin-top: 8px;{if $user->getPseudo()|stripos:'minou' !== false}
|
||||||
|
box-shadow: 0 0 0 4px #000; {/if}"
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-8 align-items-center p-0">
|
<div class="col-md-8 align-items-center p-0">
|
||||||
<div>
|
<div>
|
||||||
<h1>{$user->getPseudo()}</h1>
|
<h1 {if $user->getPseudo()|stripos:'minou' !== false}style="font-weight: 800 !important;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #000 !important;"{/if}>{$user->getPseudo()}</h1>
|
||||||
<p class="text-muted">{$user->getMail()}</p>
|
<p class="text-muted">{$user->getMail()}</p>
|
||||||
|
|
||||||
{if $user->getWork()}
|
{if $user->getWork()}
|
||||||
<p>{$user->getWork()}</p>
|
<div class="d-flex align-items-center gap-2 mt-3">
|
||||||
|
<i class="fa-solid fa-briefcase"></i>
|
||||||
|
<p class="mb-0">{$user->getWork()}</p>
|
||||||
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if $user->getLocation()}
|
{if $user->getLocation()}
|
||||||
<p>{$user->getLocation()}</p>
|
|
||||||
|
<div class="d-flex align-items-center gap-2 mt-3">
|
||||||
|
<i class="fa-solid fa-location-dot"></i>
|
||||||
|
<p class="mb-0">{$user->getLocation()}</p>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{if $user->getLocation()}
|
||||||
|
|
||||||
|
<div class="d-flex align-items-center gap-2 mt-3">
|
||||||
|
<i class="fa-regular fa-note-sticky"></i> <p class="mb-0">{$user->getDescription()}</p>
|
||||||
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<p class="mt-3">{$user->getDescription()}</p>
|
{if isset($smarty.session.user) && $smarty.session.user.user_id == $user->getId()}
|
||||||
{if $smarty.session.user.user_id == $user->getId()}
|
<a class="btn btn-sm btn-primary flex-fill" {if $user->getPseudo()|stripos:'minou' !== false}style="
|
||||||
<a class="btn btn-sm btn-primary flex-fill"
|
background-color: #000 !important;
|
||||||
href="?ctrl=user&action=edit">Edit account</a>
|
color: #ff8c00 !important;
|
||||||
|
border: none !important;
|
||||||
|
font-weight: bold !important;
|
||||||
|
transition: transform 0.2s;"{/if}
|
||||||
|
href="{$smarty.env.BASE_URL}/user/edit">Edit account</a>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
|
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
|
||||||
|
|
||||||
<!-- Titre principal de la page -->
|
<!-- Titre principal de la page -->
|
||||||
<h1 class="h3 fw-bold mb-1">Edit du profile</h1>
|
<h1 class="h3 fw-bold mb-1">Modification du profil</h1>
|
||||||
|
|
||||||
{if (isset($arrError) && count($arrError) > 0) }
|
{if (isset($arrError) && count($arrError) > 0) }
|
||||||
<div class="alert alert-danger">
|
<div class="alert alert-danger">
|
||||||
|
|
@ -72,22 +72,41 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<label class="form-label" for="image">
|
<label class="form-label" for="image">Photo de profil</label>
|
||||||
Photo de profil
|
|
||||||
|
<div class="d-flex align-items-center gap-4 mb-3">
|
||||||
|
<!-- Avatar preview -->
|
||||||
|
<img
|
||||||
|
id="preview-avatar"
|
||||||
|
src="{$smarty.env.BASE_URL}/{if $objUser->getImage()}{$smarty.env.IMG_USER_PATH}{$objUser->getImage()}{else}assests/img/images.jpg{/if}"
|
||||||
|
alt="Photo de profil"
|
||||||
|
class="rounded-circle border"
|
||||||
|
style="width:80px; height:80px; object-fit:cover;"
|
||||||
|
>
|
||||||
|
|
||||||
|
<!-- Actions à droite de l'avatar -->
|
||||||
|
<div class="d-flex flex-column gap-2">
|
||||||
|
<label for="image" class="btn btn-outline-secondary btn-sm mb-0">
|
||||||
|
<i class="fa-solid fa-upload me-1"></i> Changer la photo
|
||||||
</label>
|
</label>
|
||||||
{if $objUser->getImage()}
|
{if $objUser->getImage() != "images.jpg"}
|
||||||
<div class="mb-2">
|
<button type="button" class="btn btn-outline-danger btn-sm" id="btn-delete-image">
|
||||||
<img src="{$smarty.env.IMG_USER_PATH}{$objUser->getImage()}" alt="image actuel" class="rounded-circle" width="80" height="80">
|
<i class="fa-solid fa-trash me-1"></i> Supprimer la photo
|
||||||
</div>
|
</button>
|
||||||
{/if}
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Input file caché, déclenché par le label -->
|
||||||
<input
|
<input
|
||||||
class="form-control"
|
class="d-none"
|
||||||
type="file"
|
type="file"
|
||||||
id="image"
|
id="image"
|
||||||
name="image"
|
name="image"
|
||||||
accept="image/jpeg, image/png, image/webp"
|
accept="image/jpeg, image/png, image/webp"
|
||||||
>
|
>
|
||||||
<div class="form-text">Formats acceptés : JPG, PNG, WEBP. Laisser vide pour ne pas changer.</div>
|
<input type="hidden" name="delete_image" id="delete_image" value="0">
|
||||||
|
<div class="form-text">Formats acceptés : JPEG, PNG, WEBP. Laisser vide pour ne pas changer.</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<label class="form-label" for="user_mail">
|
<label class="form-label" for="user_mail">
|
||||||
|
|
@ -132,17 +151,28 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Champ optionnel : localisation de l'utilisateur -->
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<label class="form-label" for="user_location">
|
<label class="form-label" for="user_location">
|
||||||
Localisation
|
Localisation
|
||||||
</label>
|
</label>
|
||||||
|
<div class="position-relative">
|
||||||
<input
|
<input
|
||||||
class="form-control"
|
class="form-control"
|
||||||
type="text"
|
type="text"
|
||||||
id="user_location"
|
id="user_location"
|
||||||
name="user_location"
|
name="user_location"
|
||||||
value="{$objUser->getLocation()}"
|
value="{$objUser->getLocation()}"
|
||||||
|
autocomplete="off"
|
||||||
|
placeholder="Ex : Paris, Lyon..."
|
||||||
>
|
>
|
||||||
|
<!-- Liste déroulante des suggestions -->
|
||||||
|
<ul
|
||||||
|
id="location-suggestions"
|
||||||
|
class="list-group position-absolute w-100 shadow-sm"
|
||||||
|
style="z-index: 1000; display: none; max-height: 220px; overflow-y: auto; top: 100%; left: 0;"
|
||||||
|
></ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -161,7 +191,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 d-grid mt-2">
|
<div class="col-12 d-grid mt-2">
|
||||||
<button type="submit" class="btn btn-primary btn-lg rounded-3">
|
<button type="submit" class="btn btn-primary btn-lg rounded-3">
|
||||||
Edit profile
|
Confirmer
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -176,4 +206,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
{include file="views/_partial/delphoto.tpl"}
|
||||||
|
{include file="views/_partial/apigeo.tpl"}
|
||||||
{/block}
|
{/block}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue