Compare commits
1 commit
d2549828d0
...
cc5a57f8b2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc5a57f8b2 |
98 changed files with 552 additions and 1905 deletions
10
.env
Normal file
10
.env
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# 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,4 +1,3 @@
|
|||
/templates_c/
|
||||
/templates_c/**
|
||||
.env
|
||||
.htaccess
|
||||
|
|
@ -10,12 +10,7 @@ body {
|
|||
background-color: #ffffff;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
padding: 0.8rem 2rem;
|
||||
min-height: 64px;
|
||||
max-height: 64px;
|
||||
}
|
||||
.navbar .navbar-collapse {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-size: 1.5rem;
|
||||
|
|
@ -34,13 +29,7 @@ body {
|
|||
margin: 0 0.2rem;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
.nav-avatar {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
object-fit: cover;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.navbar-nav .nav-link:hover {
|
||||
color: #0d6efd;
|
||||
}
|
||||
|
|
@ -128,51 +117,3 @@ body {
|
|||
.txt_title {
|
||||
color: rgb(51, 152, 217);
|
||||
}
|
||||
|
||||
/* On cible la card sans casser ses propriétés Bootstrap */
|
||||
.tiger-theme {
|
||||
background-color: #ff8c00 !important; /* Orange tigre */
|
||||
background-image: repeating-linear-gradient(
|
||||
45deg,
|
||||
transparent,
|
||||
transparent 30px,
|
||||
rgba(0, 0, 0, 0.15) 30px,
|
||||
rgba(0, 0, 0, 0.15) 60px
|
||||
) !important;
|
||||
border: 2px solid #000 !important;
|
||||
color: #000 !important;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* Style du texte pour qu'il ressorte sur l'orange */
|
||||
.tiger-text {
|
||||
font-weight: 800 !important;
|
||||
text-transform: uppercase;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.tiger-date {
|
||||
font-size: 0.8rem;
|
||||
font-weight: bold;
|
||||
color: rgba(0, 0, 0, 0.7);
|
||||
}
|
||||
|
||||
/* Bordure de l'image (n'affecte pas la taille de la card) */
|
||||
.tiger-border {
|
||||
box-shadow: 0 0 0 4px #000;
|
||||
}
|
||||
|
||||
/* Bouton style tigre */
|
||||
.btn-tiger {
|
||||
background-color: #000 !important;
|
||||
color: #ff8c00 !important;
|
||||
border: none !important;
|
||||
font-weight: bold !important;
|
||||
transition: transform 0.2s;
|
||||
}
|
||||
|
||||
.btn-tiger:hover {
|
||||
transform: scale(1.05);
|
||||
background-color: #222 !important;
|
||||
}
|
||||
|
|
@ -21,8 +21,8 @@
|
|||
public function admin(){
|
||||
|
||||
if (!isset($_SESSION['user']) && ($_SESSION['user']['user_status'] != 1 )){
|
||||
$error = new \Controllers\ErrorCtrl();
|
||||
return $error->error_403();
|
||||
header("Location:index.php?ctrl=error&action=error_403");
|
||||
exit;
|
||||
}
|
||||
|
||||
$objCategoryModel = new CategoryModel;
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
$newCat->setName($_POST['new_category']);
|
||||
$objCategoryModel->insertCategory($newCat);
|
||||
$_SESSION['success'] = "La catégorie a bien été ajoutée";
|
||||
header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
|
||||
header('Location: index.php?ctrl=admin&action=admin');
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
$editCat->setName($_POST['new_name']);
|
||||
$objCategoryModel->editCategory($editCat);
|
||||
$_SESSION['success'] = "La catégorie a bien été modifiée";
|
||||
header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
|
||||
header('Location: index.php?ctrl=admin&action=admin');
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
$objUserModel->delete_soft($intUserId);
|
||||
$_SESSION['success'] = "L'utilisateur a été supprimé.";
|
||||
}
|
||||
header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
|
||||
header("Location: index.php?ctrl=admin&action=admin");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,18 +11,14 @@
|
|||
* Page erreur 404
|
||||
*/
|
||||
public function error_404(){
|
||||
http_response_code(404);
|
||||
$this->_display("error_404");
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Page erreur 403
|
||||
*/
|
||||
public function error_403(){
|
||||
http_response_code(403);
|
||||
$this->_display("error_403");
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -23,7 +23,6 @@
|
|||
$objSmarty = new Smarty();
|
||||
$objSmarty->registerPlugin('modifier', 'vardump', 'var_dump');
|
||||
$objSmarty->registerPlugin('modifier', 'file_exists', 'file_exists');
|
||||
$objSmarty->registerPlugin('modifier', 'stripos', 'stripos');
|
||||
$objSmarty->caching = false;
|
||||
|
||||
$objSmarty->force_compile = true;
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@
|
|||
*/
|
||||
public function search(){
|
||||
|
||||
$strKeywords = $_POST['keywords']??"";
|
||||
$strKeywords = $_POST['keywords']??'';
|
||||
$intAuthor = $_POST['author']??0;
|
||||
$intPeriod = $_POST['period']??0;
|
||||
$strDate = $_POST['date']??'';
|
||||
|
|
@ -124,8 +124,8 @@
|
|||
*/
|
||||
public function addedit_project() {
|
||||
if (!isset($_SESSION['user'])){
|
||||
$error = new \Controllers\ErrorCtrl();
|
||||
return $error->error_403();
|
||||
header("Location:index.php?ctrl=error&action=error_403");
|
||||
exit;
|
||||
}
|
||||
|
||||
$objProject = new Project;
|
||||
|
|
@ -135,8 +135,8 @@
|
|||
if (isset($_GET['id'])){
|
||||
$arrProject = $objProjectModel->findOne($_GET['id']);
|
||||
if($_SESSION['user']['user_id'] != $arrProject['project_user_id']){
|
||||
$error = new \Controllers\ErrorCtrl();
|
||||
return $error->error_403();
|
||||
header("Location:index.php?ctrl=error&action=error_403");
|
||||
exit;
|
||||
}
|
||||
$objProject->hydrate($arrProject);
|
||||
$this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId());
|
||||
|
|
@ -200,7 +200,7 @@
|
|||
$strSource = $_FILES['thumbnail']['tmp_name'];
|
||||
list($intWidth, $intHeight) = getimagesize($strSource);
|
||||
|
||||
$intDestWidth = 1280; $intDestHeight = 720;
|
||||
$intDestWidth = 200; $intDestHeight = 250;
|
||||
$fltDestRatio = $intDestWidth / $intDestHeight;
|
||||
$fltSourceRatio = $intWidth / $intHeight;
|
||||
|
||||
|
|
@ -325,7 +325,7 @@
|
|||
}
|
||||
|
||||
$_SESSION['success'] = (!isset($_GET['id'])) ? "Le projet a bien été créé" : "Le projet a bien été modifié";
|
||||
header('Location:'.$_ENV['BASE_URL']);
|
||||
header("Location:index.php");
|
||||
exit;
|
||||
} else {
|
||||
$arrError[] = "Erreur lors de l'enregistrement en base de données";
|
||||
|
|
@ -360,9 +360,9 @@
|
|||
$objProjectModel = new ProjectModel();
|
||||
$arrProject = $objProjectModel->findOne((int)$intId);
|
||||
|
||||
$arrImages = $objProjectModel->getImagesByProjectId((int)$intId);
|
||||
|
||||
if ($arrProject) {
|
||||
$arrImages = $objProjectModel->getImagesByProjectId((int)$intId);
|
||||
$objProject = new Project();
|
||||
$objProject->hydrate($arrProject);
|
||||
|
||||
|
|
@ -373,11 +373,11 @@
|
|||
$this->_display("project_display");
|
||||
|
||||
} else {
|
||||
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||
header("Location: index.php?ctrl=project&action=home");
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||
header("Location: index.php?ctrl=project&action=home");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
|
@ -395,7 +395,7 @@
|
|||
$arrProject = $objProjectModel->findOne($projectId);
|
||||
|
||||
if (!$arrProject) {
|
||||
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||
header("Location: index.php?ctrl=project&action=home");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -429,8 +429,8 @@
|
|||
|
||||
$objMail->Subject = "Projet : " . $objProject->getTitle();
|
||||
|
||||
$url = $_ENV['BASE_URL'].'/project/display/'.$projectId;
|
||||
|
||||
$url = "https://php.boulayoune.com/index.php?ctrl=project&action=display&id=" . $projectId;
|
||||
|
||||
$this->_arrData['projectTitle'] = $objProject->getTitle();
|
||||
$this->_arrData['projectDescription'] = $objProject->getDescription();
|
||||
$this->_arrData['projectUrl'] = $url;
|
||||
|
|
@ -438,14 +438,14 @@
|
|||
$objMail->Body = $this->_display("mail_message", false);
|
||||
|
||||
if ($objMail->Send()) {
|
||||
header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=ok');
|
||||
header("Location: index.php?ctrl=project&action=display&id=".$projectId."&mail=ok");
|
||||
} else {
|
||||
header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=fail');
|
||||
header("Location: index.php?ctrl=project&action=display&id=".$projectId."&mail=fail");
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||
header("Location: index.php?ctrl=project&action=home");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -459,7 +459,7 @@
|
|||
$objProjectModel = new ProjectModel;
|
||||
$objProjectModel->accept($intId);
|
||||
|
||||
header('Location: '.$_ENV['BASE_URL']);
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -473,7 +473,7 @@
|
|||
$objProjectModel = new ProjectModel;
|
||||
$objProjectModel->refuse($intId);
|
||||
|
||||
header('Location: '.$_ENV['BASE_URL']);
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -483,7 +483,7 @@
|
|||
public function delete(){
|
||||
|
||||
if (!isset($_SESSION['user']) || $_SESSION['user']['user_status'] != 2) {
|
||||
header('Location: '.$_ENV['BASE_URL']);
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -498,7 +498,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
header('Location: '.$_ENV['BASE_URL']);
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -518,7 +518,7 @@
|
|||
}
|
||||
|
||||
$urlRedirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
||||
header('Location: ' . $urlRedirect);
|
||||
header("Location: " . $urlRedirect);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -541,7 +541,7 @@
|
|||
}
|
||||
|
||||
$url = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
||||
header('Location: ' . $url);
|
||||
header("Location: " . $url);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class UserCtrl extends MotherCtrl {
|
|||
setcookie('remember_me', $token, time() + (15*24*60*60), "/", "", true, true);
|
||||
|
||||
}
|
||||
header("Location:".$_ENV['BASE_URL']);
|
||||
header("Location:index.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
|
@ -75,7 +75,7 @@ class UserCtrl extends MotherCtrl {
|
|||
|
||||
$_SESSION['success'] = "Vous êtes bien déconnecté";
|
||||
|
||||
header("Location:".$_ENV['BASE_URL']);
|
||||
header("Location:index.php");
|
||||
exit;
|
||||
|
||||
}
|
||||
|
|
@ -143,7 +143,7 @@ class UserCtrl extends MotherCtrl {
|
|||
|
||||
if ($boolInsert === true) {
|
||||
$_SESSION['success'] = "Compte créé avec succès";
|
||||
header("Location:".$_ENV['BASE_URL']."/user/login");
|
||||
header("Location:index.php?ctrl=user&action=login");
|
||||
exit;
|
||||
} else {
|
||||
$arrError['global'] = "Erreur lors de l'ajout";
|
||||
|
|
@ -169,7 +169,7 @@ class UserCtrl extends MotherCtrl {
|
|||
$arrUserData = $objUserModel->findUserByPseudo($strPseudo);
|
||||
|
||||
if ($arrUserData === false) {
|
||||
header("Location: ".$_ENV['BASE_URL']);
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -195,7 +195,7 @@ class UserCtrl extends MotherCtrl {
|
|||
*/
|
||||
public function edit(){
|
||||
if(!isset($_SESSION['user'])){
|
||||
header("Location: ".$_ENV['BASE_URL']);
|
||||
header("Location: index.php");
|
||||
exit;
|
||||
}
|
||||
$objUserModel = new UserModel;
|
||||
|
|
@ -243,7 +243,6 @@ class UserCtrl extends MotherCtrl {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (count($arrError) == 0 && isset($strImageName)) {
|
||||
$strDest = $_ENV['IMG_USER_PATH'] . $strImageName;
|
||||
|
|
@ -280,25 +279,17 @@ class UserCtrl extends MotherCtrl {
|
|||
}
|
||||
|
||||
|
||||
if ($_POST['delete_image'] === '1') {
|
||||
$strOldImg = $objUser->getImage();
|
||||
if (!empty($strOldImg) && $strOldImg !== 'images.jpg') {
|
||||
$strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
|
||||
if (file_exists($strOldFile)) unlink($strOldFile);
|
||||
}
|
||||
$objUser->setImage('images.jpg');
|
||||
}
|
||||
$boolInsert = $objUserModel->update($objUser);
|
||||
|
||||
if ($boolInsert === true) {
|
||||
if (isset($strOldImg) && !empty($strOldImg) && $strOldImg !== 'images.jpg' && isset($strImageName)) {
|
||||
$strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
|
||||
if (file_exists($strOldFile)) unlink($strOldFile);
|
||||
if (isset($strOldImg) && !empty($strOldImg) && isset($strImageName)) {
|
||||
$strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg;
|
||||
if (file_exists($strOldFile)) unlink($strOldFile);
|
||||
}
|
||||
$arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo());
|
||||
$_SESSION['user'] = $arrNewInfo;
|
||||
$_SESSION['success'] = "Compte modifier avec succès";
|
||||
header('Location:'.$_ENV['BASE_URL'].'/user/user/'.$objUser->getPseudo());
|
||||
header("Location:?ctrl=user&action=user&pseudo=".$objUser->getPseudo());
|
||||
exit;
|
||||
} else {
|
||||
$arrError['global'] = "Erreur lors de l'update";
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ class Project extends Mother{
|
|||
* Récupération de la date du projet supprimer
|
||||
* @return string date du projet
|
||||
*/
|
||||
public function getDeleted_at(){
|
||||
public function getProject_deleted_at(){
|
||||
return $this->_project_deleted_at;
|
||||
}
|
||||
|
||||
|
|
@ -234,7 +234,7 @@ class Project extends Mother{
|
|||
* Mise à jour de la date de suppression de projet
|
||||
* @param string date du projet
|
||||
*/
|
||||
public function setDeleted_at($project_deleted_at){
|
||||
public function setProject_deleted_at($project_deleted_at){
|
||||
$this->_project_deleted_at = $project_deleted_at;
|
||||
}
|
||||
}
|
||||
|
|
@ -90,7 +90,7 @@
|
|||
* @return string le nouveau pseudo de l'utilisateur
|
||||
*/
|
||||
public function setPseudo(string $pseudo){
|
||||
$this->_pseudo = str_replace(" ","_",$pseudo);
|
||||
$this->_pseudo = $pseudo;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
2
env
2
env
|
|
@ -1,7 +1,7 @@
|
|||
# config BDD
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOSTNAME=localhost
|
||||
DB_HOSTNAME=boulayoune.com
|
||||
DB_DATABASE=projet_folliow
|
||||
DB_USERNAME=
|
||||
DB_PASSWORD=
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -136,7 +135,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/controllers/<b>AdminCtrl.php</b></li>
|
||||
<li>controllers/<b>AdminCtrl.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -155,7 +154,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/controllers/<b>ErrorCtrl.php</b></li>
|
||||
<li>controllers/<b>ErrorCtrl.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -156,7 +155,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/controllers/<b>MotherCtrl.php</b></li>
|
||||
<li>controllers/<b>MotherCtrl.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -174,7 +173,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/controllers/<b>PageCtrl.php</b></li>
|
||||
<li>controllers/<b>PageCtrl.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -307,7 +306,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/controllers/<b>ProjectCtrl.php</b></li>
|
||||
<li>controllers/<b>ProjectCtrl.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -212,7 +211,7 @@ array </td><td class="memItemRight"><b>$_arrData</b> = array()</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/controllers/<b>UserCtrl.php</b></li>
|
||||
<li>controllers/<b>UserCtrl.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -222,7 +221,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/entities/<b>Authorisation.php</b></li>
|
||||
<li>entities/<b>Authorisation.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -277,7 +276,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/entities/<b>Category.php</b></li>
|
||||
<li>entities/<b>Category.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -313,7 +312,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/entities/<b>Image.php</b></li>
|
||||
<li>entities/<b>Image.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -124,7 +123,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>
|
||||
<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>
|
||||
<li>C:/Users/Guill/projet_php/entities/<b>Mother.php</b></li>
|
||||
<li>entities/<b>Mother.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -663,7 +662,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/entities/<b>Project.php</b></li>
|
||||
<li>entities/<b>Project.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -697,7 +696,7 @@ string </td><td class="memItemRight"><b>$_prefix</b> = ''</td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/entities/<b>User.php</b></li>
|
||||
<li>entities/<b>User.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -154,7 +153,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/models/<b>AuthorisationModel.php</b></li>
|
||||
<li>models/<b>AuthorisationModel.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -215,7 +214,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/models/<b>CategoryModel.php</b></li>
|
||||
<li>models/<b>CategoryModel.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -140,7 +139,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/models/<b>ImageModel.php</b></li>
|
||||
<li>models/<b>ImageModel.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -112,7 +111,7 @@ Protected Attributes</h2></td></tr>
|
|||
 </td><td class="memItemRight"><b>$_db</b></td></tr>
|
||||
</table>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/models/<b>MotherModel.php</b></li>
|
||||
<li>models/<b>MotherModel.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -340,7 +339,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>array|bool </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>array </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -469,7 +468,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/models/<b>ProjectModel.php</b></li>
|
||||
<li>models/<b>ProjectModel.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -377,7 +376,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>bool Le pseudo existe ou pas </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>array Tableau associatif (ou false si pas trouvé) </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -465,7 +464,7 @@ Additional Inherited Members</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/Guill/projet_php/models/<b>UserModel.php</b></li>
|
||||
<li>models/<b>UserModel.php</b></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<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 Directory Reference</title>
|
||||
<title>Folliow: 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>
|
||||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -63,7 +62,7 @@ $(function() {
|
|||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function(){initNavTree('dir_d522931ffa1371640980b621734a4381.html','',''); });
|
||||
$(function(){initNavTree('dir_1ae4179d5e953611aae20c997279e02c.html','',''); });
|
||||
</script>
|
||||
<div id="container">
|
||||
<div id="doc-content">
|
||||
|
|
@ -89,7 +88,7 @@ $(function(){initNavTree('dir_d522931ffa1371640980b621734a4381.html','',''); });
|
|||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">Users Directory Reference</div></div>
|
||||
<div class="headertitle"><div class="title">models Directory Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
</div><!-- contents -->
|
||||
|
|
@ -105,7 +104,7 @@ $(function(){initNavTree('dir_d522931ffa1371640980b621734a4381.html','',''); });
|
|||
<!-- 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>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>
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<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>
|
||||
<title>Folliow: 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>
|
||||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -63,7 +62,7 @@ $(function() {
|
|||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function(){initNavTree('dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html','',''); });
|
||||
$(function(){initNavTree('dir_2262efd7ced881ba2289deea4945d6ba.html','',''); });
|
||||
</script>
|
||||
<div id="container">
|
||||
<div id="doc-content">
|
||||
|
|
@ -105,7 +104,7 @@ $(function(){initNavTree('dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html','',''); });
|
|||
<!-- 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="navelem"><b>controllers</b></li><li class="navelem"><b>templates_c</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>
|
||||
|
|
@ -1,201 +0,0 @@
|
|||
<!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>
|
||||
|
|
@ -1,201 +0,0 @@
|
|||
<!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>
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
<!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>
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
<!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 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>
|
||||
<title>Folliow: 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>
|
||||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -63,7 +62,7 @@ $(function() {
|
|||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function(){initNavTree('dir_1c617d677ef58765205e8a044aafa06e.html','',''); });
|
||||
$(function(){initNavTree('dir_78f8c0daf938bfa31437d013d3fc896d.html','',''); });
|
||||
</script>
|
||||
<div id="container">
|
||||
<div id="doc-content">
|
||||
|
|
@ -89,7 +88,7 @@ $(function(){initNavTree('dir_1c617d677ef58765205e8a044aafa06e.html','',''); });
|
|||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">models Directory Reference</div></div>
|
||||
<div class="headertitle"><div class="title">templates_c Directory Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
</div><!-- contents -->
|
||||
|
|
@ -105,7 +104,7 @@ $(function(){initNavTree('dir_1c617d677ef58765205e8a044aafa06e.html','',''); });
|
|||
<!-- 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="navelem"><b>models</b></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>
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<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>
|
||||
<title>Folliow: 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>
|
||||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -63,7 +62,7 @@ $(function() {
|
|||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function(){initNavTree('dir_2756e6070b02be5d362619ded783829c.html','',''); });
|
||||
$(function(){initNavTree('dir_87b6ed4386158a4d6cd0ecd5fb5bd5c2.html','',''); });
|
||||
</script>
|
||||
<div id="container">
|
||||
<div id="doc-content">
|
||||
|
|
@ -95,7 +94,7 @@ $(function(){initNavTree('dir_2756e6070b02be5d362619ded783829c.html','',''); });
|
|||
<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_a64c5c967bbc6a18c5d8eb713e8e97ff.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_78f8c0daf938bfa31437d013d3fc896d.html">templates_c</a></td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
|
|
@ -110,7 +109,7 @@ Directories</h2></td></tr>
|
|||
<!-- 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="navelem"><b>controllers</b></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>
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<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>
|
||||
<title>Folliow: 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>
|
||||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -63,7 +62,7 @@ $(function() {
|
|||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function(){initNavTree('dir_91977dd5ba3542af9d4aecff9e888690.html','',''); });
|
||||
$(function(){initNavTree('dir_9404ca00d5cf333c309ae0ebf80749c4.html','',''); });
|
||||
</script>
|
||||
<div id="container">
|
||||
<div id="doc-content">
|
||||
|
|
@ -105,7 +104,7 @@ $(function(){initNavTree('dir_91977dd5ba3542af9d4aecff9e888690.html','',''); });
|
|||
<!-- 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="navelem"><b>entities</b></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>
|
||||
|
|
@ -1,118 +0,0 @@
|
|||
<!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>
|
||||
|
|
@ -1,118 +0,0 @@
|
|||
<!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>
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
<!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#add0b4b63ca02cb8b73ad136b93ccf52f"/>
|
||||
<a href="classes.html"/>
|
||||
<a href="dir_1c617d677ef58765205e8a044aafa06e.html"/>
|
||||
<a href="dir_2756e6070b02be5d362619ded783829c.html"/>
|
||||
<a href="dir_3a74e34fc6fa82edd10e4beee4ded801.html"/>
|
||||
<a href="dir_91977dd5ba3542af9d4aecff9e888690.html"/>
|
||||
<a href="dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html"/>
|
||||
<a href="dir_1ae4179d5e953611aae20c997279e02c.html"/>
|
||||
<a href="dir_2262efd7ced881ba2289deea4945d6ba.html"/>
|
||||
<a href="dir_78f8c0daf938bfa31437d013d3fc896d.html"/>
|
||||
<a href="dir_87b6ed4386158a4d6cd0ecd5fb5bd5c2.html"/>
|
||||
<a href="dir_9404ca00d5cf333c309ae0ebf80749c4.html"/>
|
||||
<a href="doxygen_crawl.html"/>
|
||||
<a href="functions.html"/>
|
||||
<a href="functions_func.html"/>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
<td id="projectalign">
|
||||
<div id="projectname">Folliow
|
||||
</div>
|
||||
<div id="projectbrief">Un projet de site web réaliser en PHP</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
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']]]
|
||||
];
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['verifuser_0',['verifUser',['../class_models_1_1_user_model.html#a04e007855c8aa842068779d8a871bb42',1,'Models::UserModel']]]
|
||||
];
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['–_20projet_20php_0',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]]
|
||||
];
|
||||
|
|
@ -1,15 +1,12 @@
|
|||
var searchData=
|
||||
[
|
||||
['features_0',['Features',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md2',1,'']]],
|
||||
['findall_1',['findAll',['../class_models_1_1_project_model.html#acbfa7e289b7712cf5200f398cff05c43',1,'Models::ProjectModel']]],
|
||||
['findallauthorisation_2',['findAllAuthorisation',['../class_models_1_1_authorisation_model.html#af7bd93cc2fd6ac548707d3a66a8380df',1,'Models::AuthorisationModel']]],
|
||||
['findallcategory_3',['findAllCategory',['../class_models_1_1_category_model.html#a4e6d48b9130d9cb4cc08a88cef84e8f9',1,'Models::CategoryModel']]],
|
||||
['findallimage_4',['findAllImage',['../class_models_1_1_image_model.html#aaf9e88eb8d1aff57a085e1d38de15060',1,'Models::ImageModel']]],
|
||||
['findallusers_5',['findAllUsers',['../class_models_1_1_user_model.html#a404b6b890d58bfa7220da4a08a60f445',1,'Models::UserModel']]],
|
||||
['findimage_6',['findImage',['../class_models_1_1_project_model.html#a0a8e47e6d6b839638ab85addfda45e3b',1,'Models::ProjectModel']]],
|
||||
['findone_7',['findOne',['../class_models_1_1_project_model.html#ae0fabc6b177cda25efeee083f904c207',1,'Models::ProjectModel']]],
|
||||
['finduserbyid_8',['findUserById',['../class_models_1_1_user_model.html#a6620c458b01ecbb1ed76083a4ac2345e',1,'Models::UserModel']]],
|
||||
['finduserbypseudo_9',['findUserByPseudo',['../class_models_1_1_user_model.html#a9f95476e8b07dbc01f711f36672684ad',1,'Models::UserModel']]],
|
||||
['folliow_20–_20projet_20php_10',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
|
||||
['future_20improvements_11',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]]
|
||||
['findall_0',['findAll',['../class_models_1_1_project_model.html#acbfa7e289b7712cf5200f398cff05c43',1,'Models::ProjectModel']]],
|
||||
['findallauthorisation_1',['findAllAuthorisation',['../class_models_1_1_authorisation_model.html#af7bd93cc2fd6ac548707d3a66a8380df',1,'Models::AuthorisationModel']]],
|
||||
['findallcategory_2',['findAllCategory',['../class_models_1_1_category_model.html#a4e6d48b9130d9cb4cc08a88cef84e8f9',1,'Models::CategoryModel']]],
|
||||
['findallimage_3',['findAllImage',['../class_models_1_1_image_model.html#aaf9e88eb8d1aff57a085e1d38de15060',1,'Models::ImageModel']]],
|
||||
['findallusers_4',['findAllUsers',['../class_models_1_1_user_model.html#a404b6b890d58bfa7220da4a08a60f445',1,'Models::UserModel']]],
|
||||
['findimage_5',['findImage',['../class_models_1_1_project_model.html#a0a8e47e6d6b839638ab85addfda45e3b',1,'Models::ProjectModel']]],
|
||||
['findone_6',['findOne',['../class_models_1_1_project_model.html#ae0fabc6b177cda25efeee083f904c207',1,'Models::ProjectModel']]],
|
||||
['finduserbyid_7',['findUserById',['../class_models_1_1_user_model.html#a6620c458b01ecbb1ed76083a4ac2345e',1,'Models::UserModel']]],
|
||||
['finduserbypseudo_8',['findUserByPseudo',['../class_models_1_1_user_model.html#a9f95476e8b07dbc01f711f36672684ad',1,'Models::UserModel']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@ var searchData=
|
|||
[
|
||||
['image_0',['Image',['../class_entities_1_1_image.html',1,'Entities']]],
|
||||
['imagemodel_1',['ImageModel',['../class_models_1_1_image_model.html',1,'Models']]],
|
||||
['improvements_2',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]],
|
||||
['insert_3',['insert',['../class_models_1_1_project_model.html#ad2a2f3e436d06db0fc4af3c44c867805',1,'Models\\ProjectModel\\insert()'],['../class_models_1_1_user_model.html#ab0eb29a478a1230d479aee1046b0f1dc',1,'Models\\UserModel\\insert()']]],
|
||||
['insertcategory_4',['insertCategory',['../class_models_1_1_category_model.html#a1102f9228de8f7938a1f35a3abbc2dc7',1,'Models::CategoryModel']]],
|
||||
['installation_5',['Installation',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md8',1,'']]]
|
||||
['insert_2',['insert',['../class_models_1_1_project_model.html#ad2a2f3e436d06db0fc4af3c44c867805',1,'Models\\ProjectModel\\insert()'],['../class_models_1_1_user_model.html#ab0eb29a478a1230d479aee1046b0f1dc',1,'Models\\UserModel\\insert()']]],
|
||||
['insertcategory_3',['insertCategory',['../class_models_1_1_category_model.html#a1102f9228de8f7938a1f35a3abbc2dc7',1,'Models::CategoryModel']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
var searchData=
|
||||
[
|
||||
['learning_20objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]],
|
||||
['license_1',['License',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md14',1,'']]],
|
||||
['login_2',['login',['../class_controllers_1_1_user_ctrl.html#aa311da27ba5706f5710cea7706c8eae1',1,'Controllers::UserCtrl']]],
|
||||
['logout_3',['logout',['../class_controllers_1_1_user_ctrl.html#a082405d89acd6835c3a7c7a08a7adbab',1,'Controllers::UserCtrl']]]
|
||||
['login_0',['login',['../class_controllers_1_1_user_ctrl.html#aa311da27ba5706f5710cea7706c8eae1',1,'Controllers::UserCtrl']]],
|
||||
['logout_1',['logout',['../class_controllers_1_1_user_ctrl.html#a082405d89acd6835c3a7c7a08a7adbab',1,'Controllers::UserCtrl']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
var searchData=
|
||||
[
|
||||
['objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]]
|
||||
['pagectrl_0',['PageCtrl',['../class_controllers_1_1_page_ctrl.html',1,'Controllers']]],
|
||||
['project_1',['Project',['../class_entities_1_1_project.html',1,'Entities']]],
|
||||
['projectctrl_2',['ProjectCtrl',['../class_controllers_1_1_project_ctrl.html',1,'Controllers']]],
|
||||
['projectmodel_3',['ProjectModel',['../class_models_1_1_project_model.html',1,'Models']]],
|
||||
['pseudoexists_4',['pseudoExists',['../class_models_1_1_user_model.html#aaf42cd7de4bddf6d3a075aa9bc252b8f',1,'Models::UserModel']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,11 +1,5 @@
|
|||
var searchData=
|
||||
[
|
||||
['pagectrl_0',['PageCtrl',['../class_controllers_1_1_page_ctrl.html',1,'Controllers']]],
|
||||
['php_1',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
|
||||
['project_2',['Project',['../class_entities_1_1_project.html',1,'Entities']]],
|
||||
['project_20structure_3',['Project Structure',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md6',1,'']]],
|
||||
['projectctrl_4',['ProjectCtrl',['../class_controllers_1_1_project_ctrl.html',1,'Controllers']]],
|
||||
['projectmodel_5',['ProjectModel',['../class_models_1_1_project_model.html',1,'Models']]],
|
||||
['projet_20php_6',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]],
|
||||
['pseudoexists_7',['pseudoExists',['../class_models_1_1_user_model.html#aaf42cd7de4bddf6d3a075aa9bc252b8f',1,'Models::UserModel']]]
|
||||
['refuse_0',['refuse',['../class_controllers_1_1_project_ctrl.html#a68a43ec4877b5210ef8ad989fbc14d82',1,'Controllers\\ProjectCtrl\\refuse()'],['../class_models_1_1_project_model.html#a64714f38f74ab942d027f04e86e40d25',1,'Models\\ProjectModel\\refuse()']]],
|
||||
['remember_1',['remember',['../class_models_1_1_user_model.html#a30563e7cabc0c9aa2bf4157b241ad55a',1,'Models::UserModel']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,31 @@
|
|||
var searchData=
|
||||
[
|
||||
['refuse_0',['refuse',['../class_controllers_1_1_project_ctrl.html#a68a43ec4877b5210ef8ad989fbc14d82',1,'Controllers\\ProjectCtrl\\refuse()'],['../class_models_1_1_project_model.html#a64714f38f74ab942d027f04e86e40d25',1,'Models\\ProjectModel\\refuse()']]],
|
||||
['remember_1',['remember',['../class_models_1_1_user_model.html#a30563e7cabc0c9aa2bf4157b241ad55a',1,'Models::UserModel']]]
|
||||
['search_0',['search',['../class_controllers_1_1_project_ctrl.html#a796bf438724e047aeef18579732a3780',1,'Controllers::ProjectCtrl']]],
|
||||
['sendemail_1',['sendEmail',['../class_controllers_1_1_project_ctrl.html#a6665aeb6e312ea89283ce785f0dfad60',1,'Controllers::ProjectCtrl']]],
|
||||
['setaccountcreation_2',['setAccountCreation',['../class_entities_1_1_user.html#aa8eb1e10f1ab32dcfa4df144fe02ba16',1,'Entities::User']]],
|
||||
['setalt_3',['setAlt',['../class_entities_1_1_image.html#a23d9d1d65334db3a72b3c19e146cfe28',1,'Entities::Image']]],
|
||||
['setbirth_4',['setBirth',['../class_entities_1_1_user.html#a4a6578fae7673e253c0ddb1f95cf227c',1,'Entities::User']]],
|
||||
['setcategory_5',['setCategory',['../class_entities_1_1_project.html#a309475f82c8fca1a84f96f802f05a5fb',1,'Entities::Project']]],
|
||||
['setcontent_6',['setContent',['../class_entities_1_1_project.html#a04a5eddb7c3abc7bf31fa25b58f046bf',1,'Entities::Project']]],
|
||||
['setcreation_5fdate_7',['setCreation_date',['../class_entities_1_1_project.html#a547ac5297a9b9efc8a4b6bef00eb6c2e',1,'Entities::Project']]],
|
||||
['setcreatorname_8',['setCreatorName',['../class_entities_1_1_project.html#aa37594941aea25a0f0d3a33d6a8757b7',1,'Entities::Project']]],
|
||||
['setdescription_9',['setDescription',['../class_entities_1_1_project.html#a31fad3e39336ea079ea758e051866627',1,'Entities\\Project\\setDescription()'],['../class_entities_1_1_user.html#a3eda7afea80371b606cd289c66ab3e7c',1,'Entities\\User\\setDescription(string $description)']]],
|
||||
['setfirstname_10',['setFirstname',['../class_entities_1_1_user.html#a102793bdeeaa7eaa2bca4e31eb3782e5',1,'Entities::User']]],
|
||||
['setid_11',['setId',['../class_entities_1_1_authorisation.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Authorisation\\setId()'],['../class_entities_1_1_category.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Category\\setId()'],['../class_entities_1_1_image.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Image\\setId()'],['../class_entities_1_1_project.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Project\\setId()'],['../class_entities_1_1_user.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\User\\setId(int $id)']]],
|
||||
['setimage_12',['setImage',['../class_entities_1_1_user.html#a6c7550f5363e74b3ee9225bf85e11b8d',1,'Entities::User']]],
|
||||
['setlocation_13',['setLocation',['../class_entities_1_1_user.html#a4c5c6e78f1e8c0ae4bf416d0f0d73ef1',1,'Entities::User']]],
|
||||
['setmail_14',['setMail',['../class_entities_1_1_user.html#ad5ba083b208ed11aa16938a8ba87a78c',1,'Entities::User']]],
|
||||
['setname_15',['setName',['../class_entities_1_1_authorisation.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\Authorisation\\setName()'],['../class_entities_1_1_category.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Category\\setName()'],['../class_entities_1_1_image.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Image\\setName()'],['../class_entities_1_1_user.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\User\\setName()']]],
|
||||
['setparent_16',['setParent',['../class_entities_1_1_category.html#a3b949fc022c82eb25e8650e0e01404fa',1,'Entities::Category']]],
|
||||
['setphone_17',['setPhone',['../class_entities_1_1_user.html#a652bfdb5ce275246ece54449fe5ca59e',1,'Entities::User']]],
|
||||
['setproject_5fdeleted_5fat_18',['setProject_deleted_at',['../class_entities_1_1_project.html#a621433ce4917a196047b78e58e38d7fe',1,'Entities::Project']]],
|
||||
['setpseudo_19',['setPseudo',['../class_entities_1_1_user.html#a02d546b854db37406ec591d3e16809eb',1,'Entities::User']]],
|
||||
['setpwd_20',['setPwd',['../class_entities_1_1_user.html#a9cc7dc33859895f98da4e22f5ae1a9bf',1,'Entities::User']]],
|
||||
['setstatus_21',['setStatus',['../class_entities_1_1_image.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Image\\setStatus()'],['../class_entities_1_1_project.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Project\\setStatus()'],['../class_entities_1_1_user.html#a2f8308ff566858664b95361214f29eac',1,'Entities\\User\\setStatus()']]],
|
||||
['setthumbnail_22',['setThumbnail',['../class_entities_1_1_project.html#a89bdfd911301f4ac284a937e93f4de50',1,'Entities::Project']]],
|
||||
['settitle_23',['setTitle',['../class_entities_1_1_project.html#a884ba9bb0d54bde7839e798db7964476',1,'Entities::Project']]],
|
||||
['setuser_5fid_24',['setUser_id',['../class_entities_1_1_project.html#a74bdd06d4bca0de42e55bdf7763ebfc4',1,'Entities::Project']]],
|
||||
['setuser_5fimage_25',['setUser_image',['../class_entities_1_1_project.html#a17164d0ccbccaceb60280836d060e21f',1,'Entities::Project']]],
|
||||
['setwork_26',['setWork',['../class_entities_1_1_user.html#ae6c2c46108019bd83091add6417eb894',1,'Entities::User']]],
|
||||
['signup_27',['signup',['../class_controllers_1_1_user_ctrl.html#a852ed40b79f143c1478699d908f46957',1,'Controllers::UserCtrl']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,33 +1,10 @@
|
|||
var searchData=
|
||||
[
|
||||
['search_0',['search',['../class_controllers_1_1_project_ctrl.html#a796bf438724e047aeef18579732a3780',1,'Controllers::ProjectCtrl']]],
|
||||
['sendemail_1',['sendEmail',['../class_controllers_1_1_project_ctrl.html#a6665aeb6e312ea89283ce785f0dfad60',1,'Controllers::ProjectCtrl']]],
|
||||
['setaccountcreation_2',['setAccountCreation',['../class_entities_1_1_user.html#aa8eb1e10f1ab32dcfa4df144fe02ba16',1,'Entities::User']]],
|
||||
['setalt_3',['setAlt',['../class_entities_1_1_image.html#a23d9d1d65334db3a72b3c19e146cfe28',1,'Entities::Image']]],
|
||||
['setbirth_4',['setBirth',['../class_entities_1_1_user.html#a4a6578fae7673e253c0ddb1f95cf227c',1,'Entities::User']]],
|
||||
['setcategory_5',['setCategory',['../class_entities_1_1_project.html#a309475f82c8fca1a84f96f802f05a5fb',1,'Entities::Project']]],
|
||||
['setcontent_6',['setContent',['../class_entities_1_1_project.html#a04a5eddb7c3abc7bf31fa25b58f046bf',1,'Entities::Project']]],
|
||||
['setcreation_5fdate_7',['setCreation_date',['../class_entities_1_1_project.html#a547ac5297a9b9efc8a4b6bef00eb6c2e',1,'Entities::Project']]],
|
||||
['setcreatorname_8',['setCreatorName',['../class_entities_1_1_project.html#aa37594941aea25a0f0d3a33d6a8757b7',1,'Entities::Project']]],
|
||||
['setdescription_9',['setDescription',['../class_entities_1_1_project.html#a31fad3e39336ea079ea758e051866627',1,'Entities\\Project\\setDescription()'],['../class_entities_1_1_user.html#a3eda7afea80371b606cd289c66ab3e7c',1,'Entities\\User\\setDescription(string $description)']]],
|
||||
['setfirstname_10',['setFirstname',['../class_entities_1_1_user.html#a102793bdeeaa7eaa2bca4e31eb3782e5',1,'Entities::User']]],
|
||||
['setid_11',['setId',['../class_entities_1_1_authorisation.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Authorisation\\setId()'],['../class_entities_1_1_category.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Category\\setId()'],['../class_entities_1_1_image.html#a87313ad678fb2a2a8efb435cf0bdb9a0',1,'Entities\\Image\\setId()'],['../class_entities_1_1_project.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\Project\\setId()'],['../class_entities_1_1_user.html#af8e956b8b0343ff7d1b955c26cb0c780',1,'Entities\\User\\setId(int $id)']]],
|
||||
['setimage_12',['setImage',['../class_entities_1_1_user.html#a6c7550f5363e74b3ee9225bf85e11b8d',1,'Entities::User']]],
|
||||
['setlocation_13',['setLocation',['../class_entities_1_1_user.html#a4c5c6e78f1e8c0ae4bf416d0f0d73ef1',1,'Entities::User']]],
|
||||
['setmail_14',['setMail',['../class_entities_1_1_user.html#ad5ba083b208ed11aa16938a8ba87a78c',1,'Entities::User']]],
|
||||
['setname_15',['setName',['../class_entities_1_1_authorisation.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\Authorisation\\setName()'],['../class_entities_1_1_category.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Category\\setName()'],['../class_entities_1_1_image.html#a2fe666694997d047711d7653eca2f132',1,'Entities\\Image\\setName()'],['../class_entities_1_1_user.html#a392752b62c4f6aacea5c269690921ef3',1,'Entities\\User\\setName()']]],
|
||||
['setparent_16',['setParent',['../class_entities_1_1_category.html#a3b949fc022c82eb25e8650e0e01404fa',1,'Entities::Category']]],
|
||||
['setphone_17',['setPhone',['../class_entities_1_1_user.html#a652bfdb5ce275246ece54449fe5ca59e',1,'Entities::User']]],
|
||||
['setproject_5fdeleted_5fat_18',['setProject_deleted_at',['../class_entities_1_1_project.html#a621433ce4917a196047b78e58e38d7fe',1,'Entities::Project']]],
|
||||
['setpseudo_19',['setPseudo',['../class_entities_1_1_user.html#a02d546b854db37406ec591d3e16809eb',1,'Entities::User']]],
|
||||
['setpwd_20',['setPwd',['../class_entities_1_1_user.html#a9cc7dc33859895f98da4e22f5ae1a9bf',1,'Entities::User']]],
|
||||
['setstatus_21',['setStatus',['../class_entities_1_1_image.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Image\\setStatus()'],['../class_entities_1_1_project.html#a7d02c100d684fe1dffc6cb3486a48511',1,'Entities\\Project\\setStatus()'],['../class_entities_1_1_user.html#a2f8308ff566858664b95361214f29eac',1,'Entities\\User\\setStatus()']]],
|
||||
['setthumbnail_22',['setThumbnail',['../class_entities_1_1_project.html#a89bdfd911301f4ac284a937e93f4de50',1,'Entities::Project']]],
|
||||
['settitle_23',['setTitle',['../class_entities_1_1_project.html#a884ba9bb0d54bde7839e798db7964476',1,'Entities::Project']]],
|
||||
['setuser_5fid_24',['setUser_id',['../class_entities_1_1_project.html#a74bdd06d4bca0de42e55bdf7763ebfc4',1,'Entities::Project']]],
|
||||
['setuser_5fimage_25',['setUser_image',['../class_entities_1_1_project.html#a17164d0ccbccaceb60280836d060e21f',1,'Entities::Project']]],
|
||||
['setwork_26',['setWork',['../class_entities_1_1_user.html#ae6c2c46108019bd83091add6417eb894',1,'Entities::User']]],
|
||||
['signup_27',['signup',['../class_controllers_1_1_user_ctrl.html#a852ed40b79f143c1478699d908f46957',1,'Controllers::UserCtrl']]],
|
||||
['stack_28',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]],
|
||||
['structure_29',['Project Structure',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md6',1,'']]]
|
||||
['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']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var searchData=
|
||||
[
|
||||
['tech_20stack_0',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]]
|
||||
['verifuser_0',['verifUser',['../class_models_1_1_user_model.html#a04e007855c8aa842068779d8a871bb42',1,'Models::UserModel']]]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
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,'']]]
|
||||
];
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['improvements_0',['Future Improvements',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md12',1,'']]],
|
||||
['installation_1',['Installation',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md8',1,'']]]
|
||||
];
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['learning_20objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]],
|
||||
['license_1',['License',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md14',1,'']]]
|
||||
];
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['objectives_0',['Learning Objectives',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md10',1,'']]]
|
||||
];
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
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,'']]]
|
||||
];
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['stack_0',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]],
|
||||
['structure_1',['Project Structure',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md6',1,'']]]
|
||||
];
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['tech_20stack_0',['Tech Stack',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md4',1,'']]]
|
||||
];
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
var searchData=
|
||||
[
|
||||
['–_20projet_20php_0',['Folliow – Projet PHP',['../dir_3a74e34fc6fa82edd10e4beee4ded801.html#autotoc_md0',1,'']]]
|
||||
];
|
||||
|
|
@ -1,24 +1,21 @@
|
|||
var indexSectionsWithContent =
|
||||
{
|
||||
0: "_acdefghilmoprstuv–",
|
||||
0: "_acdefghilmprsuv",
|
||||
1: "aceimpu",
|
||||
2: "_acdefghilmprsuv",
|
||||
3: "filopst–"
|
||||
2: "_acdefghilmprsuv"
|
||||
};
|
||||
|
||||
var indexSectionNames =
|
||||
{
|
||||
0: "all",
|
||||
1: "classes",
|
||||
2: "functions",
|
||||
3: "pages"
|
||||
2: "functions"
|
||||
};
|
||||
|
||||
var indexSectionLabels =
|
||||
{
|
||||
0: "All",
|
||||
1: "Data Structures",
|
||||
2: "Functions",
|
||||
3: "Pages"
|
||||
2: "Functions"
|
||||
};
|
||||
|
||||
|
|
|
|||
11
index.php
11
index.php
|
|
@ -2,11 +2,12 @@
|
|||
session_start();
|
||||
require(__DIR__ . "/vendor/autoload.php");
|
||||
|
||||
// Environnement
|
||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
||||
$dotenv->safeLoad();
|
||||
|
||||
$strCtrl = preg_replace('/[^a-zA-Z]/', '', $_GET['ctrl'] ?? 'project');
|
||||
$strMethod = preg_replace('/[^a-zA-Z_]/', '', $_GET['action'] ?? 'home');
|
||||
$strCtrl = $_GET['ctrl'] ?? 'project';
|
||||
$strMethod = $_GET['action'] ?? 'home';
|
||||
|
||||
$strClassName = "Controllers\\" . ucfirst($strCtrl) . "Ctrl";
|
||||
|
||||
|
|
@ -25,8 +26,6 @@
|
|||
}
|
||||
|
||||
if ($boolError) {
|
||||
http_response_code(404); // ← important pour le SEO et les navigateurs
|
||||
$error = new \Controllers\ErrorCtrl();
|
||||
$error->error_404(); // ← pas de "return", juste l'appel
|
||||
exit; // ← stoppe l'exécution après l'affichage
|
||||
header("Location: index.php?ctrl=error&action=error_404");
|
||||
exit;
|
||||
}
|
||||
|
|
@ -22,18 +22,10 @@
|
|||
FROM category";
|
||||
|
||||
if ($intLimit > 0){
|
||||
$strRq .= " LIMIT :limit";
|
||||
$strRq .= " LIMIT ".$intLimit;
|
||||
}
|
||||
|
||||
$rqPrep = $this->_db->prepare($strRq);
|
||||
|
||||
if ($intLimit > 0){
|
||||
$rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT);
|
||||
}
|
||||
|
||||
$rqPrep->execute();
|
||||
|
||||
return $rqPrep->fetchAll();
|
||||
return $this->_db->query($strRq)->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -22,18 +22,11 @@
|
|||
$strRq = "SELECT image.*
|
||||
FROM image";
|
||||
|
||||
if ($intLimit > 0){
|
||||
$strRq .= " LIMIT :limit";
|
||||
}
|
||||
|
||||
$rqPrep = $this->_db->prepare($strRq);
|
||||
|
||||
if ($intLimit > 0){
|
||||
$rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT);
|
||||
}
|
||||
|
||||
$rqPrep->execute();
|
||||
if ($intLimit > 0){
|
||||
$strRq .= " LIMIT ".$intLimit;
|
||||
}
|
||||
|
||||
return $rqPrep->fetchAll();
|
||||
return $this->_db->query($strRq)->fetchAll();
|
||||
}
|
||||
}
|
||||
|
|
@ -10,9 +10,9 @@
|
|||
public function __construct(){
|
||||
try{
|
||||
$this->_db = new PDO(
|
||||
"mysql:host=".$_ENV['DB_HOSTNAME'].";dbname=".$_ENV['DB_DATABASE'],
|
||||
$_ENV['DB_USERNAME'],
|
||||
$_ENV['DB_PASSWORD'],
|
||||
"mysql:host=localhost;dbname=projet_folliow",
|
||||
"projet_user",
|
||||
"F0lliowRules!",
|
||||
array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC)
|
||||
);
|
||||
$this->_db->exec("SET CHARACTER SET utf8");
|
||||
|
|
|
|||
|
|
@ -23,84 +23,58 @@
|
|||
string $strEndDate='', int $intCategory=0, bool $boolOlderThan6Months=false): array {
|
||||
|
||||
|
||||
$strRq = "SELECT project.*,
|
||||
$strRq = "SELECT project.*,
|
||||
user_pseudo AS 'project_creatorname',
|
||||
user_image
|
||||
FROM project
|
||||
INNER JOIN users ON user_id = project_user_id
|
||||
WHERE 1=1";
|
||||
INNER JOIN users ON user_id = project_user_id";
|
||||
|
||||
$strRq .= " WHERE project_deleted_at IS NULL";
|
||||
|
||||
$strAnd = " AND ";
|
||||
|
||||
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){
|
||||
$strRq .= " AND project_user_id = :author";
|
||||
}
|
||||
$strRq .= $strAnd." user_id = ".$intAuthor;
|
||||
|
||||
}
|
||||
if ($intCategory > 0){
|
||||
$strRq .= " AND project_category = :category";
|
||||
$strRq .= $strAnd." project_category = ".$intCategory;
|
||||
}
|
||||
|
||||
if ($boolOlderThan6Months === true) {
|
||||
$strRq .= " AND project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH)";
|
||||
$strRq .= $strAnd . " project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH) ";
|
||||
}
|
||||
|
||||
if ($intPeriod == 0){
|
||||
if ($strDate != ''){
|
||||
$strRq .= " AND project_creation_date = :date_exacte";
|
||||
$strRq .= $strAnd." project_creation_date = '".$strDate."'";
|
||||
}
|
||||
} else {
|
||||
}else{
|
||||
if ($strStartDate != '' && $strEndDate != ''){
|
||||
$strRq .= " AND project_creation_date BETWEEN :date_debut AND :date_fin";
|
||||
} else {
|
||||
$strRq .= $strAnd." project_creation_date BETWEEN '".$strStartDate."' AND '".$strEndDate."'";
|
||||
}else{
|
||||
if ($strStartDate != ''){
|
||||
$strRq .= " AND project_creation_date >= :date_debut";
|
||||
} else if ($strEndDate != ''){
|
||||
$strRq .= " AND project_creation_date <= :date_fin";
|
||||
$strRq .= $strAnd." project_creation_date >= '".$strStartDate."'";
|
||||
}else if ($strEndDate != ''){
|
||||
$strRq .= $strAnd." project_creation_date <= '".$strEndDate."'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$strRq .= " ORDER BY project_creation_date DESC";
|
||||
|
||||
if ($intLimit > 0){
|
||||
$strRq .= " LIMIT :limit";
|
||||
$strRq .= " LIMIT ".$intLimit;
|
||||
}
|
||||
|
||||
$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();
|
||||
return $this->_db->query($strRq)->fetchAll();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -136,9 +110,9 @@
|
|||
/**
|
||||
* Fonction de recherche d'un seul projet
|
||||
* @param int $intId
|
||||
* @return array|bool
|
||||
* @return array
|
||||
*/
|
||||
public function findOne(int $intId) :array|bool{
|
||||
public function findOne(int $intId) :array{
|
||||
$strRq = "SELECT project.*,
|
||||
users.user_pseudo AS 'project_creatorname',
|
||||
users.user_image,
|
||||
|
|
@ -194,8 +168,7 @@
|
|||
public function delete_soft_project(int $intId): bool {
|
||||
$strRq = "UPDATE project
|
||||
SET project_deleted_at = NOW(),
|
||||
project_edit_date = NOW(),
|
||||
project_status = 'supprimé'
|
||||
project_edit_date = NOW()
|
||||
WHERE project_id = :id";
|
||||
|
||||
$rqPrep = $this->_db->prepare($strRq);
|
||||
|
|
|
|||
|
|
@ -37,15 +37,9 @@
|
|||
|
||||
$strRq = "SELECT user_id, user_name, user_firstname, user_password, user_image, user_status, authorisation_name, user_pseudo
|
||||
FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status
|
||||
WHERE user_mail = :mail";
|
||||
|
||||
$rqPrep = $this->_db->prepare($strRq);
|
||||
$rqPrep->bindValue(":mail", $strMail, PDO::PARAM_STR);
|
||||
$rqPrep->execute();
|
||||
|
||||
|
||||
WHERE user_mail = '".$strMail."'";
|
||||
|
||||
$arrUser = $rqPrep->fetch();
|
||||
$arrUser = $this->_db->query($strRq)->fetch();
|
||||
if (password_verify($strPwd, $arrUser['user_password'])){
|
||||
unset($arrUser['user_password']);
|
||||
return $arrUser;
|
||||
|
|
@ -242,7 +236,7 @@
|
|||
/**
|
||||
* Verifie sur le pseudo entré n'est pas déjà utilisé
|
||||
* @param string $pseudo Pseudo a verifié
|
||||
* @return bool Le pseudo existe ou pas
|
||||
* @return array Tableau associatif (ou false si pas trouvé)
|
||||
*/
|
||||
public function pseudoExists(string $pseudo): bool{
|
||||
|
||||
|
|
@ -250,6 +244,6 @@
|
|||
$rq->bindValue(":pseudo", $pseudo, PDO::PARAM_STR);
|
||||
$rq->execute();
|
||||
|
||||
return (bool)$rq->fetchColumn();
|
||||
return $rq->fetchColumn();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
BIN
uploads/profiles/699d648ba35c3.webp
Normal file
BIN
uploads/profiles/699d648ba35c3.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.9 KiB |
|
|
@ -1,112 +0,0 @@
|
|||
<!-- 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>
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<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,24 +4,20 @@
|
|||
<nav aria-label="Navigation pied de page">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item">
|
||||
<a href="{$smarty.env.BASE_URL}/page/about">A propos</a>
|
||||
<a href="?ctrl=page&action=about">A propos</a>
|
||||
</li>
|
||||
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||
<li class="list-inline-item">
|
||||
<a href="{$smarty.env.BASE_URL}/page/help">Aide et support</a>
|
||||
<a href="index.php?ctrl=page&action=help">Aide et support</a>
|
||||
</li>
|
||||
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||
<li class="list-inline-item">
|
||||
<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>
|
||||
<a href="?ctrl=page&action=mentions">Mentions légales</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</footer>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
||||
<script src="{$smarty.env.BASE_URL}/assests/js/scripts.js"></script>
|
||||
<script src="assests/js/scripts.js"></script>
|
||||
|
||||
|
||||
|
|
@ -3,108 +3,101 @@
|
|||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="{$smarty.env.BASE_URL}/assests/css/style.css">
|
||||
<link rel="shortcut icon" href="{$smarty.env.BASE_URL}/assests/img/Group-49.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="assests/css/style.css">
|
||||
<link rel="shortcut icon" href="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">
|
||||
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||
<title>Folliow{block name="title"}{/block}</title>
|
||||
</head>
|
||||
<body class="d-flex flex-column min-vh-100">
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-light">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- 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 class="navbar-brand d-flex align-items-center" href="index.php">
|
||||
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
|
||||
</a>
|
||||
|
||||
<!-- 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">
|
||||
|
||||
<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>
|
||||
</button>
|
||||
|
||||
<!-- Liens de navigation -->
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
|
||||
<!-- Liens gauche -->
|
||||
<ul class="navbar-nav me-auto mb-0">
|
||||
<ul class="navbar-nav me-auto">
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{$smarty.env.BASE_URL}/page/about">À propos</a>
|
||||
<a class="nav-link" href="?ctrl=page&action=about">À propos</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{$smarty.env.BASE_URL}/project/search">Rechercher</a>
|
||||
<a class="nav-link" href="?ctrl=project&action=search">Rechercher</a>
|
||||
</li>
|
||||
{if isset($smarty.session.user)}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{$smarty.env.BASE_URL}/project/addedit_project">Ajouter un projet</a>
|
||||
<a class="nav-link" href="?ctrl=project&action=addedit_project">Ajouter un projet</a>
|
||||
</li>
|
||||
{if $smarty.session.user.authorisation_name == "Administrateur"}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{$smarty.env.BASE_URL}/admin/admin">Admin</a>
|
||||
<a class="nav-link" href="?ctrl=admin&action=admin">Admin</a>
|
||||
</li>
|
||||
{/if}
|
||||
{/if}
|
||||
</ul>
|
||||
|
||||
<!-- Liens droite (connexion / profil) -->
|
||||
<nav aria-label="Connexion utilisateur">
|
||||
|
||||
<nav class="col-4 d-flex justify-content-end align-items-center" aria-label="Connexion utilisateur">
|
||||
{if !isset($smarty.session.user)}
|
||||
<ul class="navbar-nav d-flex flex-row align-items-center gap-1 mb-0">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/signup"
|
||||
title="Créer un compte" aria-label="Créer un compte">
|
||||
<a class="nav-link" href="index.php?ctrl=user&action=signup" title="Créer un compte" aria-label="Créer un compte">
|
||||
S'inscrire
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/login"
|
||||
title="Se connecter" aria-label="Se connecter">
|
||||
Se connecter
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="index.php?ctrl=user&action=login" title="Se connecter" aria-label="Se connecter">
|
||||
Se connecter
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
{else}
|
||||
<ul class="navbar-nav d-flex flex-row align-items-center gap-2 mb-0">
|
||||
<li class="nav-item d-flex align-items-center">
|
||||
<a class="nav-link p-0" href="{$smarty.env.BASE_URL}/user/user/{$smarty.session.user.user_pseudo}"
|
||||
title="Modifier mon compte" aria-label="Modifier mon compte">
|
||||
<img
|
||||
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}"
|
||||
class="nav-avatar"
|
||||
alt="Photo de profil"
|
||||
>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<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">
|
||||
<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}
|
||||
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
||||
style="width: 36px; height: 36px; object-fit: cover;"
|
||||
alt="Photo de profil">
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item d-flex align-items-center">
|
||||
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/logout"
|
||||
title="Se déconnecter" aria-label="Se déconnecter">
|
||||
|
||||
<li>
|
||||
<a class="nav-link" href="index.php?ctrl=user&action=logout" title="Se déconnecter" aria-label="Se déconnecter">
|
||||
Se déconnecter
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{/if}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main id="main-content" class="container my-4">
|
||||
<section
|
||||
class="p-4 mb-4 text-center txt_title "
|
||||
aria-labelledby="page-title"
|
||||
>
|
||||
<div class="col-lg-8 mx-auto">
|
||||
<h2 id="page-title" class="display-5 fw-semibold mb-3">
|
||||
{block name="h2"}{/block}
|
||||
</h2>
|
||||
<p class="lead mb-2">
|
||||
{block name="p"}{/block}
|
||||
</p>
|
||||
<p class="text-muted small mb-0">
|
||||
{block name="date_maj"}{/block}
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<main id="main-content" class="container my-4" {block name="display"}{/block}>
|
||||
<section class="p-4 mb-4 text-center txt_title" aria-labelledby="page-title">
|
||||
<div class="col-lg-8 mx-auto">
|
||||
<h2 id="page-title" class="display-5 fw-semibold mb-3">
|
||||
{block name="h2"}{/block}
|
||||
</h2>
|
||||
<p class="lead mb-2">
|
||||
{block name="p"}{/block}
|
||||
</p>
|
||||
<p class="text-muted small mb-0">
|
||||
{block name="date_maj"}{/block}
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
</body>
|
||||
{include file="views/_partial/messages.tpl"}
|
||||
|
|
|
|||
|
|
@ -3,46 +3,30 @@
|
|||
|
||||
|
||||
<div class="ratio ratio-4x3">
|
||||
<a href="{$smarty.env.BASE_URL}/project/display/{$objProject->getId()}">
|
||||
<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}"
|
||||
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"></a>
|
||||
<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}"
|
||||
class="w-100 h-100 object-fit-cover"
|
||||
{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
||||
style =" box-shadow: 0 0 0 4px #000; "{/if}
|
||||
alt=""
|
||||
loading="lazy">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<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="card-body p-3 bg-light">
|
||||
<div class="d-flex align-items-start gap-3">
|
||||
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorname()}">
|
||||
<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}"
|
||||
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}">
|
||||
<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}"
|
||||
class="rounded-circle flex-shrink-0 border border-2 border-white"
|
||||
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}"
|
||||
style="width: 64px; height: 64px; object-fit: cover; margin-top: 8px;"
|
||||
alt="Photo de profil">
|
||||
</a>
|
||||
<div class="flex-grow-1">
|
||||
<h3 class="h6 fw-bold mb-2 mt-1">{$objProject->getTitle()}</h3>
|
||||
<p class="small text-muted mb-1">
|
||||
<i class="bi bi-person"></i>
|
||||
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorname()}"
|
||||
<a href="index.php?ctrl=user&action=user&pseudo={$objProject->getCreatorname()}"
|
||||
class="text-decoration-none text-muted"
|
||||
style="position: relative; z-index: 2;
|
||||
{if $objProject->getCreatorName()|stripos:'minou' !== false}font-weight: 800 !important;
|
||||
text-transform: uppercase;
|
||||
color: #000 !important;{/if}">
|
||||
style="position: relative; z-index: 2;">
|
||||
{$objProject->getCreatorname()}
|
||||
</a>
|
||||
</p>
|
||||
|
|
@ -57,13 +41,8 @@
|
|||
<i class="bi bi-clock"><time>{$objProject->getCreation_date()}</time></i>
|
||||
</small>
|
||||
{if $objProject->getStatus() != "refusé"}
|
||||
<a href="{$smarty.env.BASE_URL}/project/display/{$objProject->getId()}"
|
||||
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}>
|
||||
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
|
||||
class="btn btn-sm btn-primary">
|
||||
Voir →
|
||||
</a>
|
||||
{/if}
|
||||
|
|
@ -71,7 +50,7 @@
|
|||
|
||||
{if isset($smarty.session.user)}
|
||||
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
||||
<a href="{$smarty.env.BASE_URL}/project/addedit_project/{$objProject->getId()}"
|
||||
<a href="index.php?ctrl=project&action=addedit_project&id={$objProject->getId()}"
|
||||
class="btn btn-sm btn-outline-secondary mt-2 w-100"
|
||||
style="position: relative; z-index: 2;">
|
||||
Editer
|
||||
|
|
@ -86,13 +65,13 @@
|
|||
<div class="card-footer bg-white border-top-0 p-2">
|
||||
<div class="d-flex gap-2">
|
||||
<a class="btn btn-sm btn-success flex-fill"
|
||||
href="{$smarty.env.BASE_URL}/project/accept/{$objProject->getId()}"
|
||||
href="?ctrl=project&action=accept&id={$objProject->getId()}"
|
||||
name="toPublished">Accepter</a>
|
||||
<a class="btn btn-sm btn-warning flex-fill"
|
||||
href="{$smarty.env.BASE_URL}/project/refuse/{$objProject->getId()}"
|
||||
href="?ctrl=project&action=refuse&id={$objProject->getId()}"
|
||||
name="toRefused">Refuser</a>
|
||||
<a class="btn btn-sm btn-danger flex-fill"
|
||||
href="{$smarty.env.BASE_URL}/project/delete/{$objProject->getId()}"
|
||||
href="index.php?ctrl=project&action=delete&id={$objProject->getId()}"
|
||||
name="toDelete"
|
||||
onclick="return confirm('Attention ! Êtes-vous sûr de vouloir supprimer ce projet ? Cette action est irréversible.');">
|
||||
Supprimer</a>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
<input name="thumbnail" class="form-control" type="file">
|
||||
{if $objProject && $objProject->getId()}
|
||||
<label class="h5">Miniature actuelle :</label>
|
||||
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}" alt="Miniature">
|
||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}" alt="Miniature">
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
{foreach $arrImages as $image}
|
||||
<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}">
|
||||
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}"
|
||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}"
|
||||
class="card-img-top img-thumbnail"
|
||||
alt="{$image.image_alt}"
|
||||
style="height: 150px; object-fit: cover;">
|
||||
|
|
@ -80,7 +80,7 @@
|
|||
</span>
|
||||
|
||||
<div class="mt-2 d-flex flex-column gap-1">
|
||||
<a href="{$smarty.env.BASE_URL}/project/delete_image/{$image.image_id}"
|
||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
||||
class="btn btn-sm btn-danger"
|
||||
onclick="return confirm('Supprimer définitivement cette image ?')">Supprimer</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@
|
|||
<div class="text-center">
|
||||
<h1 class="display-1">Erreur 403</h1>
|
||||
<h2 class="display-3">Vous n'êtes pas autorisé à accéder à cette page !</h2>
|
||||
<img class="img-fluid" src="{$smarty.env.BASE_URL}/assests/img/error403.jpg">
|
||||
<img class="img-fluid" src="assests/img/error403.jpg">
|
||||
</div>
|
||||
{/block}
|
||||
|
|
@ -4,6 +4,6 @@
|
|||
<div class="text-center">
|
||||
<h1 class="display-1">Erreur 404</h1>
|
||||
<h2 class="display-3">Cette page n'existe pas !</h2>
|
||||
<img class="img-fluid" src="{$smarty.env.BASE_URL}/assests/img/error404.webp">
|
||||
<img class="img-fluid" src="assests/img/error404.webp">
|
||||
</div>
|
||||
{/block}
|
||||
|
|
@ -133,7 +133,7 @@
|
|||
</h2>
|
||||
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<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.
|
||||
<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.
|
||||
Cliquez dessus et vous voici dans l'antre réservée à nos fabuleux administrateurs !</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -206,7 +206,7 @@
|
|||
</h2>
|
||||
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<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,
|
||||
<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,
|
||||
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>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{extends file="views/layout.tpl"}
|
||||
{block name="display" }style="display:none;"{/block}
|
||||
|
||||
{block name="content"}
|
||||
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
||||
<h1 class="logo">Folliow</h1>
|
||||
|
|
@ -11,11 +11,13 @@
|
|||
|
||||
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
||||
<div class="mb-4">
|
||||
<form method="GET" action="{$smarty.env.BASE_URL}">
|
||||
<form method="GET" action="index.php">
|
||||
<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="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>
|
||||
<a href="{$smarty.env.BASE_URL}/project/home" class="btn btn-primary">Tout</a>
|
||||
<a href="index.php?ctrl=project&action=home" class="btn btn-primary">Tout</a>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -28,7 +30,7 @@
|
|||
|
||||
{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="isDeleted" value=($objProject->getDeleted_at() !== null)}
|
||||
{assign var="isDeleted" value=($objProject->getProject_deleted_at() !== null)}
|
||||
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
||||
|
||||
{if $isModerator
|
||||
|
|
|
|||
175
views/inscription.tpl
Normal file
175
views/inscription.tpl
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
{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"}
|
||||
|
||||
<main class="container mb-4 mt-1 flex-grow-1 d-flex flex-column align-items-center justify-content-center">
|
||||
<main class="container mb-4 mt-1">
|
||||
{block name="content"}
|
||||
{/block}
|
||||
</main>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
{extends file="views/layout.tpl"}
|
||||
{block name="title" append} - Connexion{/block}
|
||||
|
||||
{block name="display" }style="display:none;"{/block}
|
||||
{block name="content"}
|
||||
<section aria-label="Se connecter">
|
||||
|
||||
|
|
@ -70,7 +69,7 @@
|
|||
<div class="col-12 text-center">
|
||||
<small class="text-secondary">
|
||||
Pas encore de compte ?
|
||||
<a href="{$smarty.env.BASE_URL}/user/signup" class="link-primary">
|
||||
<a href="index.php?ctrl=user&action=signup" class="link-primary">
|
||||
Créer un compte
|
||||
</a>
|
||||
</small>
|
||||
|
|
|
|||
|
|
@ -24,4 +24,3 @@
|
|||
Cordialement,<br>
|
||||
L’équipe Folliow
|
||||
</p>
|
||||
<img src="{$smarty.env.BASE_URL}/assests/img/logo.png" style="height : 30px;">
|
||||
|
|
|
|||
|
|
@ -114,16 +114,16 @@
|
|||
|
||||
<dl class="row">
|
||||
<dt class="col-sm-3">Hébergeur</dt>
|
||||
<dd class="col-sm-9">Yass Le Goat en faite (et o2switch)<dd>
|
||||
<dd class="col-sm-9">OVH<dd>
|
||||
|
||||
<dt class="col-sm-3">Domaine / accès</dt>
|
||||
<dd class="col-sm-9">php.boulayoune.com</dd>
|
||||
|
||||
<dt class="col-sm-3">Adresse</dt>
|
||||
<dd class="col-sm-9">REDACTED FOR PRIVACY</dd>
|
||||
<dd class="col-sm-9">4 Rue du Rhin, 68000 Colmar</dd>
|
||||
|
||||
<dt class="col-sm-3">Téléphone</dt>
|
||||
<dd class="col-sm-9">REDACTED FOR PRIVACY</dd>
|
||||
<dd class="col-sm-9">03 68 67 20 00</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
</p>
|
||||
|
||||
<div class="mb-4 shadow-sm {if !($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}d-none{/if}" >
|
||||
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}"
|
||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}"
|
||||
class="img-fluid rounded w-100">
|
||||
</div>
|
||||
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
<h4 class="border-bottom pb-2">Description</h4>
|
||||
<p class="lead">{$objProject->getDescription()}</p>
|
||||
|
||||
<div class="mt-4" style="white-space: pre-wrap; overflow-wrap: break-word;">
|
||||
<div class="mt-4" style="white-space: pre-wrap;">
|
||||
{$objProject->getContent()}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -50,16 +50,16 @@
|
|||
<div class="col-md-4 mb-4">
|
||||
<div class="card {if $image.image_status != 'approuvé'}border-warning shadow-none opacity-75{/if}">
|
||||
|
||||
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}" class="card-img-top" alt="{$image.image_alt}">
|
||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}" class="card-img-top" alt="{$image.image_alt}">
|
||||
|
||||
{* Visible uniquement par le modérateur *}
|
||||
{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="d-flex gap-2">
|
||||
<a href="{$smarty.env.BASE_URL}/project/change_image_status/{$image.image_id}&status=approuvé"
|
||||
<a href="index.php?ctrl=project&action=change_image_status&id_img={$image.image_id}&status=approuvé"
|
||||
class="btn btn-sm btn-success">Valider</a>
|
||||
|
||||
<a href="{$smarty.env.BASE_URL}/project/delete_image/{$image.image_id}"
|
||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
||||
class="btn btn-sm btn-outline-danger"
|
||||
onclick="return confirm('Supprimer définitivement ?')">Supprimer</a>
|
||||
</div>
|
||||
|
|
@ -75,9 +75,9 @@
|
|||
</section>
|
||||
|
||||
|
||||
<!-- Formulaire qui envoie la demande au contrôleur (sendEmail) -->
|
||||
<!-- Formulaire qui envoie la demande au contrôleur (shareProject) -->
|
||||
<div class="card shadow-sm p-4 mb-5">
|
||||
<form method="post" action="{$smarty.env.BASE_URL}/project/sendEmail">
|
||||
<form method="post" action="index.php?ctrl=project&action=shareProject">
|
||||
|
||||
<input type="hidden" name="project_id"
|
||||
value="{$objProject->getId()}">
|
||||
|
|
@ -97,66 +97,37 @@
|
|||
|
||||
<!-- Sidebar : informations du créateur -->
|
||||
<div class="col-lg-4">
|
||||
<div class="card text-center shadow-sm p-4" {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;
|
||||
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>
|
||||
|
||||
<h5 {if $objProject->getCreatorName()|stripos:'minou' !== false}style="font-weight: 800 !important;
|
||||
text-transform: uppercase;
|
||||
color: #000 !important;"{/if}>
|
||||
{$objProject->getCreatorName()}
|
||||
</h5>
|
||||
<div class="card text-center shadow-sm p-4">
|
||||
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}" class="text-decoration-none text-dark">
|
||||
<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}"
|
||||
class="rounded-circle mb-3 mx-auto"
|
||||
style="width:100px;height:100px;object-fit:cover;">
|
||||
</a>
|
||||
<h5>{$objProject->getCreatorName()}</h5>
|
||||
|
||||
<p class="text-muted small">
|
||||
Publié le {$objProject->getCreation_date()}
|
||||
</p>
|
||||
<p class="text-muted small">
|
||||
Publié le {$objProject->getCreation_date()}
|
||||
</p>
|
||||
|
||||
<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>
|
||||
<button class="btn btn-primary">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*}
|
||||
{if isset($smarty.session.user)}
|
||||
{if ($smarty.session.user.user_status == 2 || $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||
<div class="border rounded text-center">
|
||||
<a class="btn btn-sm m-1 btn-danger" href="{$smarty.env.BASE_URL}/project/delete/{$objProject->getId()}" name="toDelete">Supprimer le projet</a>
|
||||
<a class="btn btn-sm m-1 btn-danger" href="?ctrl=project&action=delete&id={$objProject->getId()}" name="toDelete">Supprimer le projet</a>
|
||||
{/if}
|
||||
|
||||
|
||||
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
||||
<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>
|
||||
<a class="btn btn-sm m-1 btn-warning" href="?ctrl=project&action=addedit_project&id={$objProject->getId()}" name="addedit">Modifier le projet</a>
|
||||
{/if}
|
||||
|
||||
{*Conditions permettant au Modérateur de modifier le status d'un projet*}
|
||||
{if $smarty.session.user.user_status == 2 && $objProject->getStatus() == "en_attente"}
|
||||
<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="{$smarty.env.BASE_URL}/project/refuse/{$objProject->getId()}" name="toRefused">Refuser</a>
|
||||
<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-warning" href="?ctrl=project&action=refuse&id={$objProject->getId()}" name="toRefused">Refuser</a>
|
||||
</div>
|
||||
{elseif $projectStatus == "refusé"}
|
||||
<p class="text-danger fw-bold">Portfolio refusé</p>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<h2 class="visually-hidden">Rechercher parmi les projets</h2>
|
||||
<div class="row mb-2">
|
||||
<section class="mb-5" aria-labelledby="search-heading">
|
||||
<form name="formSearch" method="post" action="" class="border rounded p-4 bg-light">
|
||||
<form name="formSearch" method="post" action="?ctrl=project&action=search" class="border rounded p-4 bg-light">
|
||||
<h3 id="search-heading" class="h4 mb-4">
|
||||
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
||||
Rechercher des projets
|
||||
|
|
@ -134,7 +134,7 @@
|
|||
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
||||
Rechercher
|
||||
</button>
|
||||
<a href="{$smarty.env.BASE_URL}/project/search" class="btn btn-secondary ms-2">
|
||||
<a href="index.php?ctrl=project&action=search" class="btn btn-secondary ms-2">
|
||||
<i class="fas fa-redo me-2" aria-hidden="true"></i>
|
||||
Réinitialiser
|
||||
</a>
|
||||
|
|
@ -155,7 +155,7 @@
|
|||
|
||||
{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="isDeleted" value=($objProject->getDeleted_at() !== null)}
|
||||
{assign var="isDeleted" value=($objProject->getProject_deleted_at() !== null)}
|
||||
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
||||
|
||||
{if $isModerator
|
||||
|
|
|
|||
114
views/signup.tpl
114
views/signup.tpl
|
|
@ -1,9 +1,9 @@
|
|||
{extends file="views/layout.tpl"}
|
||||
{block name="title" append} - Inscription{/block}
|
||||
|
||||
{block name="display" }style="display:none;"{/block}
|
||||
{block name="content"}
|
||||
<!-- Page : Inscription -->
|
||||
|
||||
<div class="py-5">
|
||||
|
||||
<!-- Centrage horizontal du formulaire -->
|
||||
|
|
@ -94,33 +94,13 @@
|
|||
<label class="form-label" for="user_password">
|
||||
Mot de passe *
|
||||
</label>
|
||||
<div class="position-relative">
|
||||
<input
|
||||
class="form-control pe-5"
|
||||
type="password"
|
||||
id="user_password"
|
||||
name="user_password"
|
||||
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>
|
||||
<input
|
||||
class="form-control"
|
||||
type="password"
|
||||
id="user_password"
|
||||
name="user_password"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
|
||||
<!-- Champ : confirmer le mot de passe -->
|
||||
|
|
@ -128,22 +108,13 @@
|
|||
<label class="form-label" for="pwd_confirm">
|
||||
Confirmer le mot de passe *
|
||||
</label>
|
||||
<div class="position-relative">
|
||||
<input
|
||||
class="form-control"
|
||||
type="password"
|
||||
id="pwd_confirm"
|
||||
name="pwd_confirm"
|
||||
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>
|
||||
|
||||
<!-- Champ optionnel : numéro de téléphone -->
|
||||
|
|
@ -179,23 +150,13 @@
|
|||
<label class="form-label" for="user_location">
|
||||
Localisation
|
||||
</label>
|
||||
<div class="position-relative">
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
id="user_location"
|
||||
name="user_location"
|
||||
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>
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
id="user_location"
|
||||
name="user_location"
|
||||
value="{$objUser->getLocation()|default:''}"
|
||||
>
|
||||
</div>
|
||||
|
||||
<!-- Champ optionnel : phrase d'accroche -->
|
||||
|
|
@ -207,8 +168,9 @@
|
|||
class="form-control"
|
||||
id="user_description"
|
||||
name="user_description"
|
||||
value="{$objUser->getDescription()|default:''}"
|
||||
rows="3"
|
||||
>{$objUser->getDescription()|default:''}</textarea>
|
||||
></textarea>
|
||||
</div>
|
||||
|
||||
<!-- Bouton de soumission du formulaire -->
|
||||
|
|
@ -222,7 +184,7 @@
|
|||
<div class="col-12 text-center">
|
||||
<small class="text-secondary">
|
||||
Déjà un compte ?
|
||||
<a class="link-primary" href="{$smarty.env.BASE_URL}/user/login">
|
||||
<a class="link-primary" href="index.php?ctrl=user&action=login">
|
||||
Se connecter
|
||||
</a>
|
||||
</small>
|
||||
|
|
@ -237,42 +199,4 @@
|
|||
</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}
|
||||
|
|
@ -2,62 +2,31 @@
|
|||
|
||||
{block name="content"}
|
||||
|
||||
<section class="user-profile mb-5 /*vh /* p-5" {if $user->getPseudo()|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;
|
||||
border: 2px solid #000 !important;
|
||||
color: #000 !important;
|
||||
position: relative;
|
||||
z-index: 1;"{/if}>
|
||||
<div class="row" >
|
||||
<section class="user-profile mb-5 mt-5/*vh /*">
|
||||
<div class="row">
|
||||
<div class="col-md-4 text-center">
|
||||
<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;{if $user->getPseudo()|stripos:'minou' !== false}
|
||||
box-shadow: 0 0 0 4px #000; {/if}"
|
||||
<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"
|
||||
style="width: 256px; height: 256px; object-fit: cover; margin-top: 8px;"
|
||||
>
|
||||
</div>
|
||||
<div class="col-md-8 align-items-center p-0">
|
||||
<div>
|
||||
<h1 {if $user->getPseudo()|stripos:'minou' !== false}style="font-weight: 800 !important;
|
||||
text-transform: uppercase;
|
||||
color: #000 !important;"{/if}>{$user->getPseudo()}</h1>
|
||||
<h1>{$user->getPseudo()}</h1>
|
||||
<p class="text-muted">{$user->getMail()}</p>
|
||||
|
||||
{if $user->getWork()}
|
||||
<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>
|
||||
<p>{$user->getWork()}</p>
|
||||
{/if}
|
||||
|
||||
{if $user->getLocation()}
|
||||
|
||||
<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>
|
||||
<p>{$user->getLocation()}</p>
|
||||
{/if}
|
||||
|
||||
{if isset($smarty.session.user) && $smarty.session.user.user_id == $user->getId()}
|
||||
<a class="btn btn-sm btn-primary flex-fill" {if $user->getPseudo()|stripos:'minou' !== false}style="
|
||||
background-color: #000 !important;
|
||||
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}
|
||||
<p class="mt-3">{$user->getDescription()}</p>
|
||||
{if $smarty.session.user.user_id == $user->getId()}
|
||||
<a class="btn btn-sm btn-primary flex-fill"
|
||||
href="?ctrl=user&action=edit">Edit account</a>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
|
||||
|
||||
<!-- Titre principal de la page -->
|
||||
<h1 class="h3 fw-bold mb-1">Modification du profil</h1>
|
||||
<h1 class="h3 fw-bold mb-1">Edit du profile</h1>
|
||||
|
||||
{if (isset($arrError) && count($arrError) > 0) }
|
||||
<div class="alert alert-danger">
|
||||
|
|
@ -72,42 +72,23 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<label class="form-label" for="image">Photo de profil</label>
|
||||
|
||||
<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;"
|
||||
<label class="form-label" for="image">
|
||||
Photo de profil
|
||||
</label>
|
||||
{if $objUser->getImage()}
|
||||
<div class="mb-2">
|
||||
<img src="{$smarty.env.IMG_USER_PATH}{$objUser->getImage()}" alt="image actuel" class="rounded-circle" width="80" height="80">
|
||||
</div>
|
||||
{/if}
|
||||
<input
|
||||
class="form-control"
|
||||
type="file"
|
||||
id="image"
|
||||
name="image"
|
||||
accept="image/jpeg, image/png, image/webp"
|
||||
>
|
||||
|
||||
<!-- 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>
|
||||
{if $objUser->getImage() != "images.jpg"}
|
||||
<button type="button" class="btn btn-outline-danger btn-sm" id="btn-delete-image">
|
||||
<i class="fa-solid fa-trash me-1"></i> Supprimer la photo
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="form-text">Formats acceptés : JPG, PNG, WEBP. Laisser vide pour ne pas changer.</div>
|
||||
</div>
|
||||
|
||||
<!-- Input file caché, déclenché par le label -->
|
||||
<input
|
||||
class="d-none"
|
||||
type="file"
|
||||
id="image"
|
||||
name="image"
|
||||
accept="image/jpeg, image/png, image/webp"
|
||||
>
|
||||
<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 class="col-12">
|
||||
<label class="form-label" for="user_mail">
|
||||
Adresse e-mail
|
||||
|
|
@ -151,29 +132,18 @@
|
|||
</div>
|
||||
|
||||
|
||||
<!-- Champ optionnel : localisation de l'utilisateur -->
|
||||
<div class="col-12">
|
||||
<label class="form-label" for="user_location">
|
||||
Localisation
|
||||
</label>
|
||||
<div class="position-relative">
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
id="user_location"
|
||||
name="user_location"
|
||||
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 class="col-12">
|
||||
<label class="form-label" for="user_location">
|
||||
Localisation
|
||||
</label>
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
id="user_location"
|
||||
name="user_location"
|
||||
value="{$objUser->getLocation()}"
|
||||
>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-12">
|
||||
|
|
@ -191,7 +161,7 @@
|
|||
</div>
|
||||
<div class="col-12 d-grid mt-2">
|
||||
<button type="submit" class="btn btn-primary btn-lg rounded-3">
|
||||
Confirmer
|
||||
Edit profile
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
|
@ -206,6 +176,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</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