htaccess fini
This commit is contained in:
parent
5071d5f2f3
commit
b75ae2542a
22 changed files with 101 additions and 105 deletions
26
.htaccess
26
.htaccess
|
|
@ -1,33 +1,31 @@
|
||||||
Options -Indexes
|
Options -Indexes
|
||||||
|
|
||||||
# --- Sécurité ---
|
|
||||||
<FilesMatch ".env">
|
|
||||||
Require all denied
|
|
||||||
</FilesMatch>
|
|
||||||
|
|
||||||
<FilesMatch "(composer\.json|composer\.lock|package\.json|package-lock\.json|\.git|\.env|\.gitignore|env)">
|
<FilesMatch "(composer\.json|composer\.lock|package\.json|package-lock\.json|\.git|\.env|\.gitignore|env)">
|
||||||
Require all denied
|
Require all denied
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
|
|
||||||
RewriteEngine On
|
# Gestion des erreurs
|
||||||
|
ErrorDocument 404 /error/error_404
|
||||||
|
ErrorDocument 403 /error/error_403
|
||||||
|
|
||||||
# 2. Bloquer l'accès direct au dossier vendor
|
RewriteEngine On
|
||||||
|
RewriteBase /
|
||||||
|
|
||||||
|
# Bloquer l'accès direct au dossier vendor
|
||||||
RewriteRule ^vendor/ - [F,L]
|
RewriteRule ^vendor/ - [F,L]
|
||||||
|
|
||||||
# 3. Autoriser l'accès aux fichiers/dossiers physiques (images, css, js)
|
# Autoriser l'accès aux fichiers/dossiers physiques (images, css, js)
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
|
||||||
# 4. RACINE : accueil par défaut
|
# RACINE : accueil par défaut
|
||||||
RewriteRule ^$ index.php?ctrl=project&action=home [QSA,L]
|
RewriteRule ^$ index.php?ctrl=project&action=home [QSA,L]
|
||||||
|
|
||||||
# 5. ID NUMÉRIQUE : /ctrl/action/42
|
# ID NUMÉRIQUE : /ctrl/action/42
|
||||||
RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([0-9]+)/?$ index.php?ctrl=$1&action=$2&id=$3 [QSA,L]
|
RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([0-9]+)/?$ index.php?ctrl=$1&action=$2&id=$3 [QSA,L]
|
||||||
|
|
||||||
# 6. PSEUDO : /user/profile/johndoe
|
# PSEUDO : /user/profile/johndoe
|
||||||
RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([a-zA-Z0-9_-]+)/?$ index.php?ctrl=$1&action=$2&pseudo=$3 [QSA,L]
|
RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([a-zA-Z0-9_-]+)/?$ index.php?ctrl=$1&action=$2&pseudo=$3 [QSA,L]
|
||||||
|
|
||||||
# 7. RÉÉCRITURE GÉNÉRALE (inclut tes erreurs) : /ctrl/action
|
# RÉÉCRITURE GÉNÉRALE : /ctrl/action
|
||||||
# C'est cette règle qui va transformer "/error/error_404"
|
|
||||||
# en "index.php?ctrl=error&action=error_404"
|
|
||||||
RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/?$ index.php?ctrl=$1&action=$2 [QSA,L]
|
RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/?$ index.php?ctrl=$1&action=$2 [QSA,L]
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
$newCat->setName($_POST['new_category']);
|
$newCat->setName($_POST['new_category']);
|
||||||
$objCategoryModel->insertCategory($newCat);
|
$objCategoryModel->insertCategory($newCat);
|
||||||
$_SESSION['success'] = "La catégorie a bien été ajoutée";
|
$_SESSION['success'] = "La catégorie a bien été ajoutée";
|
||||||
header('Location: index.php?ctrl=admin&action=admin');
|
header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
$editCat->setName($_POST['new_name']);
|
$editCat->setName($_POST['new_name']);
|
||||||
$objCategoryModel->editCategory($editCat);
|
$objCategoryModel->editCategory($editCat);
|
||||||
$_SESSION['success'] = "La catégorie a bien été modifiée";
|
$_SESSION['success'] = "La catégorie a bien été modifiée";
|
||||||
header('Location: index.php?ctrl=admin&action=admin');
|
header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
$objUserModel->delete_soft($intUserId);
|
$objUserModel->delete_soft($intUserId);
|
||||||
$_SESSION['success'] = "L'utilisateur a été supprimé.";
|
$_SESSION['success'] = "L'utilisateur a été supprimé.";
|
||||||
}
|
}
|
||||||
header("Location: index.php?ctrl=admin&action=admin");
|
header('Location: '.$_ENV['BASE_URL'].'/admin/admin');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
*/
|
*/
|
||||||
public function search(){
|
public function search(){
|
||||||
|
|
||||||
$strKeywords = $_POST['keywords']??'';
|
$strKeywords = $_POST['keywords']??"";
|
||||||
$intAuthor = $_POST['author']??0;
|
$intAuthor = $_POST['author']??0;
|
||||||
$intPeriod = $_POST['period']??0;
|
$intPeriod = $_POST['period']??0;
|
||||||
$strDate = $_POST['date']??'';
|
$strDate = $_POST['date']??'';
|
||||||
|
|
@ -325,7 +325,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$_SESSION['success'] = (!isset($_GET['id'])) ? "Le projet a bien été créé" : "Le projet a bien été modifié";
|
$_SESSION['success'] = (!isset($_GET['id'])) ? "Le projet a bien été créé" : "Le projet a bien été modifié";
|
||||||
header("Location:index.php");
|
header('Location:'.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$arrError[] = "Erreur lors de l'enregistrement en base de données";
|
$arrError[] = "Erreur lors de l'enregistrement en base de données";
|
||||||
|
|
@ -373,11 +373,11 @@
|
||||||
$this->_display("project_display");
|
$this->_display("project_display");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -395,7 +395,7 @@
|
||||||
$arrProject = $objProjectModel->findOne($projectId);
|
$arrProject = $objProjectModel->findOne($projectId);
|
||||||
|
|
||||||
if (!$arrProject) {
|
if (!$arrProject) {
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -429,7 +429,7 @@
|
||||||
|
|
||||||
$objMail->Subject = "Projet : " . $objProject->getTitle();
|
$objMail->Subject = "Projet : " . $objProject->getTitle();
|
||||||
|
|
||||||
$url = "https://php.boulayoune.com/index.php?ctrl=project&action=display&id=" . $projectId;
|
$url = $_ENV['BASE_URL'].'/project/display/'.$projectId;
|
||||||
|
|
||||||
$this->_arrData['projectTitle'] = $objProject->getTitle();
|
$this->_arrData['projectTitle'] = $objProject->getTitle();
|
||||||
$this->_arrData['projectDescription'] = $objProject->getDescription();
|
$this->_arrData['projectDescription'] = $objProject->getDescription();
|
||||||
|
|
@ -438,14 +438,14 @@
|
||||||
$objMail->Body = $this->_display("mail_message", false);
|
$objMail->Body = $this->_display("mail_message", false);
|
||||||
|
|
||||||
if ($objMail->Send()) {
|
if ($objMail->Send()) {
|
||||||
header("Location: index.php?ctrl=project&action=display&id=".$projectId."&mail=ok");
|
header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=ok');
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php?ctrl=project&action=display&id=".$projectId."&mail=fail");
|
header('Location: '.$_ENV['BASE_URL'].'/project/display/'.$projectId.'?mail=fail');
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header('Location: '.$_ENV['BASE_URL'].'/project/home');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -459,7 +459,7 @@
|
||||||
$objProjectModel = new ProjectModel;
|
$objProjectModel = new ProjectModel;
|
||||||
$objProjectModel->accept($intId);
|
$objProjectModel->accept($intId);
|
||||||
|
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -473,7 +473,7 @@
|
||||||
$objProjectModel = new ProjectModel;
|
$objProjectModel = new ProjectModel;
|
||||||
$objProjectModel->refuse($intId);
|
$objProjectModel->refuse($intId);
|
||||||
|
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -483,7 +483,7 @@
|
||||||
public function delete(){
|
public function delete(){
|
||||||
|
|
||||||
if (!isset($_SESSION['user']) || $_SESSION['user']['user_status'] != 2) {
|
if (!isset($_SESSION['user']) || $_SESSION['user']['user_status'] != 2) {
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -498,7 +498,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Location: index.php");
|
header('Location: '.$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -518,7 +518,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$urlRedirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
$urlRedirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
||||||
header("Location: " . $urlRedirect);
|
header('Location: ' . $urlRedirect);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -541,7 +541,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
$url = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : "index.php";
|
||||||
header("Location: " . $url);
|
header('Location: ' . $url);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
setcookie('remember_me', $token, time() + (15*24*60*60), "/", "", true, true);
|
setcookie('remember_me', $token, time() + (15*24*60*60), "/", "", true, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
header("Location:index.php");
|
header("Location:".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -75,7 +75,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
|
|
||||||
$_SESSION['success'] = "Vous êtes bien déconnecté";
|
$_SESSION['success'] = "Vous êtes bien déconnecté";
|
||||||
|
|
||||||
header("Location:index.php");
|
header("Location:".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -143,7 +143,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
|
|
||||||
if ($boolInsert === true) {
|
if ($boolInsert === true) {
|
||||||
$_SESSION['success'] = "Compte créé avec succès";
|
$_SESSION['success'] = "Compte créé avec succès";
|
||||||
header("Location:index.php?ctrl=user&action=login");
|
header("Location:".$_ENV['BASE_URL']."/user/login");
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$arrError['global'] = "Erreur lors de l'ajout";
|
$arrError['global'] = "Erreur lors de l'ajout";
|
||||||
|
|
@ -169,7 +169,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
$arrUserData = $objUserModel->findUserByPseudo($strPseudo);
|
$arrUserData = $objUserModel->findUserByPseudo($strPseudo);
|
||||||
|
|
||||||
if ($arrUserData === false) {
|
if ($arrUserData === false) {
|
||||||
header("Location: index.php");
|
header("Location: ".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -195,7 +195,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
*/
|
*/
|
||||||
public function edit(){
|
public function edit(){
|
||||||
if(!isset($_SESSION['user'])){
|
if(!isset($_SESSION['user'])){
|
||||||
header("Location: index.php");
|
header("Location: ".$_ENV['BASE_URL']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$objUserModel = new UserModel;
|
$objUserModel = new UserModel;
|
||||||
|
|
@ -298,7 +298,7 @@ class UserCtrl extends MotherCtrl {
|
||||||
$arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo());
|
$arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo());
|
||||||
$_SESSION['user'] = $arrNewInfo;
|
$_SESSION['user'] = $arrNewInfo;
|
||||||
$_SESSION['success'] = "Compte modifier avec succès";
|
$_SESSION['success'] = "Compte modifier avec succès";
|
||||||
header("Location:?ctrl=user&action=user&pseudo=".$objUser->getPseudo());
|
header('Location:'.$_ENV['BASE_URL'].'/user/user/'.$objUser->getPseudo());
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$arrError['global'] = "Erreur lors de l'update";
|
$arrError['global'] = "Erreur lors de l'update";
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,7 @@ class Project extends Mother{
|
||||||
* Récupération de la date du projet supprimer
|
* Récupération de la date du projet supprimer
|
||||||
* @return string date du projet
|
* @return string date du projet
|
||||||
*/
|
*/
|
||||||
public function getProject_deleted_at(){
|
public function getDeleted_at(){
|
||||||
return $this->_project_deleted_at;
|
return $this->_project_deleted_at;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -234,7 +234,7 @@ class Project extends Mother{
|
||||||
* Mise à jour de la date de suppression de projet
|
* Mise à jour de la date de suppression de projet
|
||||||
* @param string date du projet
|
* @param string date du projet
|
||||||
*/
|
*/
|
||||||
public function setProject_deleted_at($project_deleted_at){
|
public function setDeleted_at($project_deleted_at){
|
||||||
$this->_project_deleted_at = $project_deleted_at;
|
$this->_project_deleted_at = $project_deleted_at;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
//Debut session
|
|
||||||
session_start();
|
session_start();
|
||||||
require(__DIR__ . "/vendor/autoload.php");
|
require(__DIR__ . "/vendor/autoload.php");
|
||||||
|
|
||||||
// Environnement
|
|
||||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
||||||
$dotenv->safeLoad();
|
$dotenv->safeLoad();
|
||||||
|
|
||||||
|
|
@ -27,6 +25,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($boolError) {
|
if ($boolError) {
|
||||||
|
http_response_code(404); // ← important pour le SEO et les navigateurs
|
||||||
$error = new \Controllers\ErrorCtrl();
|
$error = new \Controllers\ErrorCtrl();
|
||||||
return $error->error_404();
|
$error->error_404(); // ← pas de "return", juste l'appel
|
||||||
|
exit; // ← stoppe l'exécution après l'affichage
|
||||||
}
|
}
|
||||||
|
|
@ -4,15 +4,15 @@
|
||||||
<nav aria-label="Navigation pied de page">
|
<nav aria-label="Navigation pied de page">
|
||||||
<ul class="list-inline">
|
<ul class="list-inline">
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<a href="?ctrl=page&action=about">A propos</a>
|
<a href="{$smarty.env.BASE_URL}/page/about">A propos</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-inline-item" aria-hidden="true">|</li>
|
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<a href="index.php?ctrl=page&action=help">Aide et support</a>
|
<a href="{$smarty.env.BASE_URL}/page/help">Aide et support</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-inline-item" aria-hidden="true">|</li>
|
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<a href="?ctrl=page&action=mentions">Mentions légales</a>
|
<a href="{$smarty.env.BASE_URL}/page/mentions">Mentions légales</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-inline-item" aria-hidden="true">|</li>
|
<li class="list-inline-item" aria-hidden="true">|</li>
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
|
|
@ -22,6 +22,6 @@
|
||||||
</nav>
|
</nav>
|
||||||
</footer>
|
</footer>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
||||||
<script src="assests/js/scripts.js"></script>
|
<script src="{$smarty.env.BASE_URL}/assests/js/scripts.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<link rel="stylesheet" href="assests/css/style.css">
|
<link rel="stylesheet" href="{$smarty.env.BASE_URL}/assests/css/style.css">
|
||||||
<link rel="shortcut icon" href="assests/img/Group-49.ico" type="image/x-icon">
|
<link rel="shortcut icon" href="{$smarty.env.BASE_URL}/assests/img/Group-49.ico" type="image/x-icon">
|
||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
||||||
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
<title>Folliow{block name="title"}{/block}</title>
|
<title>Folliow{block name="title"}{/block}</title>
|
||||||
|
|
@ -15,8 +15,8 @@
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|
||||||
<!-- Logo -->
|
<!-- Logo -->
|
||||||
<a class="navbar-brand d-flex align-items-center" href="index.php">
|
<a class="navbar-brand d-flex align-items-center" href="{$smarty.env.BASE_URL}">
|
||||||
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
|
<img src="{$smarty.env.BASE_URL}/assests/img/logo.png" alt="Logo" class="logo-image">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Bouton hamburger mobile -->
|
<!-- Bouton hamburger mobile -->
|
||||||
|
|
@ -31,18 +31,18 @@
|
||||||
<!-- Liens gauche -->
|
<!-- Liens gauche -->
|
||||||
<ul class="navbar-nav me-auto mb-0">
|
<ul class="navbar-nav me-auto mb-0">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=page&action=about">À propos</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/page/about">À propos</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=project&action=search">Rechercher</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/project/search">Rechercher</a>
|
||||||
</li>
|
</li>
|
||||||
{if isset($smarty.session.user)}
|
{if isset($smarty.session.user)}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=project&action=addedit_project">Ajouter un projet</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/project/addedit_project">Ajouter un projet</a>
|
||||||
</li>
|
</li>
|
||||||
{if $smarty.session.user.authorisation_name == "Administrateur"}
|
{if $smarty.session.user.authorisation_name == "Administrateur"}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="?ctrl=admin&action=admin">Admin</a>
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/admin/admin">Admin</a>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
@ -53,13 +53,13 @@
|
||||||
{if !isset($smarty.session.user)}
|
{if !isset($smarty.session.user)}
|
||||||
<ul class="navbar-nav d-flex flex-row align-items-center gap-1 mb-0">
|
<ul class="navbar-nav d-flex flex-row align-items-center gap-1 mb-0">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="index.php?ctrl=user&action=signup"
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/signup"
|
||||||
title="Créer un compte" aria-label="Créer un compte">
|
title="Créer un compte" aria-label="Créer un compte">
|
||||||
S'inscrire
|
S'inscrire
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="index.php?ctrl=user&action=login"
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/login"
|
||||||
title="Se connecter" aria-label="Se connecter">
|
title="Se connecter" aria-label="Se connecter">
|
||||||
Se connecter
|
Se connecter
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -68,17 +68,17 @@
|
||||||
{else}
|
{else}
|
||||||
<ul class="navbar-nav d-flex flex-row align-items-center gap-2 mb-0">
|
<ul class="navbar-nav d-flex flex-row align-items-center gap-2 mb-0">
|
||||||
<li class="nav-item d-flex align-items-center">
|
<li class="nav-item d-flex align-items-center">
|
||||||
<a class="nav-link p-0" href="index.php?ctrl=user&action=user&pseudo={$smarty.session.user.user_pseudo}"
|
<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">
|
title="Modifier mon compte" aria-label="Modifier mon compte">
|
||||||
<img
|
<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}"
|
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"
|
class="nav-avatar"
|
||||||
alt="Photo de profil"
|
alt="Photo de profil"
|
||||||
>
|
>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item d-flex align-items-center">
|
<li class="nav-item d-flex align-items-center">
|
||||||
<a class="nav-link" href="index.php?ctrl=user&action=logout"
|
<a class="nav-link" href="{$smarty.env.BASE_URL}/user/logout"
|
||||||
title="Se déconnecter" aria-label="Se déconnecter">
|
title="Se déconnecter" aria-label="Se déconnecter">
|
||||||
Se déconnecter
|
Se déconnecter
|
||||||
</a>
|
</a>
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="ratio ratio-4x3">
|
<div class="ratio ratio-4x3">
|
||||||
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}">
|
<a href="{$smarty.env.BASE_URL}/project/display/{$objProject->getId()}">
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{if ($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}{$objProject->getThumbnail()}{else}{math equation="rand(1,4)"}.jpg{/if}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{if ($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}{$objProject->getThumbnail()}{else}{math equation="rand(1,4)"}.jpg{/if}"
|
||||||
class="w-100 h-100 object-fit-cover"
|
class="w-100 h-100 object-fit-cover"
|
||||||
{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
||||||
style =" box-shadow: 0 0 0 4px #000; "{/if}
|
style =" box-shadow: 0 0 0 4px #000; "{/if}
|
||||||
|
|
@ -26,8 +26,8 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;"{/if}>
|
z-index: 1;"{/if}>
|
||||||
<div class="d-flex align-items-start gap-3">
|
<div class="d-flex align-items-start gap-3">
|
||||||
<a href="index.php?ctrl=user&action=user&pseudo={$objProject->getCreatorname()}">
|
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorname()}">
|
||||||
<img src="{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($objProject->getUser_image()))|file_exists}{$objProject->getUser_image()}{else}images.jpg{/if}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($objProject->getUser_image()))|file_exists}{$objProject->getUser_image()}{else}images.jpg{/if}"
|
||||||
class="rounded-circle flex-shrink-0 border border-2 border-white"
|
class="rounded-circle flex-shrink-0 border border-2 border-white"
|
||||||
style="width: 64px; height: 64px; object-fit: cover; margin-top: 8px;{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
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}"
|
box-shadow: 0 0 0 4px #000; {/if}"
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
<h3 class="h6 fw-bold mb-2 mt-1">{$objProject->getTitle()}</h3>
|
<h3 class="h6 fw-bold mb-2 mt-1">{$objProject->getTitle()}</h3>
|
||||||
<p class="small text-muted mb-1">
|
<p class="small text-muted mb-1">
|
||||||
<i class="bi bi-person"></i>
|
<i class="bi bi-person"></i>
|
||||||
<a href="index.php?ctrl=user&action=user&pseudo={$objProject->getCreatorname()}"
|
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorname()}"
|
||||||
class="text-decoration-none text-muted"
|
class="text-decoration-none text-muted"
|
||||||
style="position: relative; z-index: 2;
|
style="position: relative; z-index: 2;
|
||||||
{if $objProject->getCreatorName()|stripos:'minou' !== false}font-weight: 800 !important;
|
{if $objProject->getCreatorName()|stripos:'minou' !== false}font-weight: 800 !important;
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
<i class="bi bi-clock"><time>{$objProject->getCreation_date()}</time></i>
|
<i class="bi bi-clock"><time>{$objProject->getCreation_date()}</time></i>
|
||||||
</small>
|
</small>
|
||||||
{if $objProject->getStatus() != "refusé"}
|
{if $objProject->getStatus() != "refusé"}
|
||||||
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
|
<a href="{$smarty.env.BASE_URL}/project/display/{$objProject->getId()}"
|
||||||
class="btn btn-sm btn-primary" {if $objProject->getCreatorName()|stripos:'minou' !== false}style="
|
class="btn btn-sm btn-primary" {if $objProject->getCreatorName()|stripos:'minou' !== false}style="
|
||||||
background-color: #000 !important;
|
background-color: #000 !important;
|
||||||
color: #ff8c00 !important;
|
color: #ff8c00 !important;
|
||||||
|
|
@ -71,7 +71,7 @@
|
||||||
|
|
||||||
{if isset($smarty.session.user)}
|
{if isset($smarty.session.user)}
|
||||||
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
||||||
<a href="index.php?ctrl=project&action=addedit_project&id={$objProject->getId()}"
|
<a href="{$smarty.env.BASE_URL}/project/addedit_project/{$objProject->getId()}"
|
||||||
class="btn btn-sm btn-outline-secondary mt-2 w-100"
|
class="btn btn-sm btn-outline-secondary mt-2 w-100"
|
||||||
style="position: relative; z-index: 2;">
|
style="position: relative; z-index: 2;">
|
||||||
Editer
|
Editer
|
||||||
|
|
@ -86,13 +86,13 @@
|
||||||
<div class="card-footer bg-white border-top-0 p-2">
|
<div class="card-footer bg-white border-top-0 p-2">
|
||||||
<div class="d-flex gap-2">
|
<div class="d-flex gap-2">
|
||||||
<a class="btn btn-sm btn-success flex-fill"
|
<a class="btn btn-sm btn-success flex-fill"
|
||||||
href="?ctrl=project&action=accept&id={$objProject->getId()}"
|
href="{$smarty.env.BASE_URL}/project/accept/{$objProject->getId()}"
|
||||||
name="toPublished">Accepter</a>
|
name="toPublished">Accepter</a>
|
||||||
<a class="btn btn-sm btn-warning flex-fill"
|
<a class="btn btn-sm btn-warning flex-fill"
|
||||||
href="?ctrl=project&action=refuse&id={$objProject->getId()}"
|
href="{$smarty.env.BASE_URL}/project/refuse/{$objProject->getId()}"
|
||||||
name="toRefused">Refuser</a>
|
name="toRefused">Refuser</a>
|
||||||
<a class="btn btn-sm btn-danger flex-fill"
|
<a class="btn btn-sm btn-danger flex-fill"
|
||||||
href="index.php?ctrl=project&action=delete&id={$objProject->getId()}"
|
href="{$smarty.env.BASE_URL}/project/delete/{$objProject->getId()}"
|
||||||
name="toDelete"
|
name="toDelete"
|
||||||
onclick="return confirm('Attention ! Êtes-vous sûr de vouloir supprimer ce projet ? Cette action est irréversible.');">
|
onclick="return confirm('Attention ! Êtes-vous sûr de vouloir supprimer ce projet ? Cette action est irréversible.');">
|
||||||
Supprimer</a>
|
Supprimer</a>
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@
|
||||||
<input name="thumbnail" class="form-control" type="file">
|
<input name="thumbnail" class="form-control" type="file">
|
||||||
{if $objProject && $objProject->getId()}
|
{if $objProject && $objProject->getId()}
|
||||||
<label class="h5">Miniature actuelle :</label>
|
<label class="h5">Miniature actuelle :</label>
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}" alt="Miniature">
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}" alt="Miniature">
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
{foreach $arrImages as $image}
|
{foreach $arrImages as $image}
|
||||||
<div class="col-md-3 mb-3 text-center">
|
<div class="col-md-3 mb-3 text-center">
|
||||||
<div class="card shadow-sm h-100 border-{if $image.image_status == 'approuvé'}success{elseif $image.image_status == 'refusé'}danger{else}warning{/if}">
|
<div class="card shadow-sm h-100 border-{if $image.image_status == 'approuvé'}success{elseif $image.image_status == 'refusé'}danger{else}warning{/if}">
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}"
|
||||||
class="card-img-top img-thumbnail"
|
class="card-img-top img-thumbnail"
|
||||||
alt="{$image.image_alt}"
|
alt="{$image.image_alt}"
|
||||||
style="height: 150px; object-fit: cover;">
|
style="height: 150px; object-fit: cover;">
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<div class="mt-2 d-flex flex-column gap-1">
|
<div class="mt-2 d-flex flex-column gap-1">
|
||||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
<a href="{$smarty.env.BASE_URL}/project/delete_image/{$image.image_id}"
|
||||||
class="btn btn-sm btn-danger"
|
class="btn btn-sm btn-danger"
|
||||||
onclick="return confirm('Supprimer définitivement cette image ?')">Supprimer</a>
|
onclick="return confirm('Supprimer définitivement cette image ?')">Supprimer</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h1 class="display-1">Erreur 403</h1>
|
<h1 class="display-1">Erreur 403</h1>
|
||||||
<h2 class="display-3">Vous n'êtes pas autorisé à accéder à cette page !</h2>
|
<h2 class="display-3">Vous n'êtes pas autorisé à accéder à cette page !</h2>
|
||||||
<img class="img-fluid" src="assests/img/error403.jpg">
|
<img class="img-fluid" src="{$smarty.env.BASE_URL}/assests/img/error403.jpg">
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
@ -4,6 +4,6 @@
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h1 class="display-1">Erreur 404</h1>
|
<h1 class="display-1">Erreur 404</h1>
|
||||||
<h2 class="display-3">Cette page n'existe pas !</h2>
|
<h2 class="display-3">Cette page n'existe pas !</h2>
|
||||||
<img class="img-fluid" src="assests/img/error404.webp">
|
<img class="img-fluid" src="{$smarty.env.BASE_URL}/assests/img/error404.webp">
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
@ -133,7 +133,7 @@
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
|
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
|
||||||
<div class="accordion-body">
|
<div class="accordion-body">
|
||||||
<p>Rien de plus simple ! Si vous êtes connecté à votre compte, un lien <a href="index.php?ctrl=admin&action=admin">"admin"</a> sera visible dans votre barre de navigation.
|
<p>Rien de plus simple ! Si vous êtes connecté à votre compte, un lien <a href="{$smarty.env.BASE_URL}/admin/admin">"admin"</a> sera visible dans votre barre de navigation.
|
||||||
Cliquez dessus et vous voici dans l'antre réservée à nos fabuleux administrateurs !</p>
|
Cliquez dessus et vous voici dans l'antre réservée à nos fabuleux administrateurs !</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -206,7 +206,7 @@
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
||||||
<div class="accordion-body">
|
<div class="accordion-body">
|
||||||
<p>En haut à droite de votre écran, vous avez le lien <a href="index.php?ctrl=user&action=signin">"s'inscrire"</a>. Nous demandons certaines informations obligatoires pour l'identification,
|
<p>En haut à droite de votre écran, vous avez le lien <a href="{$smarty.env.BASE_URL}/user/signin">"s'inscrire"</a>. Nous demandons certaines informations obligatoires pour l'identification,
|
||||||
ensuite à vous de remplir les informations complémentaires pour alimenter votre profil et permettre aux autres utilisateurs de mieux vous connaitre et vous contacter.</p>
|
ensuite à vous de remplir les informations complémentaires pour alimenter votre profil et permettre aux autres utilisateurs de mieux vous connaitre et vous contacter.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,11 @@
|
||||||
|
|
||||||
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<form method="GET" action="index.php">
|
<form method="GET" action="{$smarty.env.BASE_URL}">
|
||||||
<input type="hidden" name="ctrl" value="project">
|
|
||||||
<input type="hidden" name="action" value="home">
|
|
||||||
<button type="submit" name="filter_cat" value="1" class="btn btn-primary">Design</button>
|
<button type="submit" name="filter_cat" value="1" class="btn btn-primary">Design</button>
|
||||||
<button type="submit" name="filter_cat" value="2" class="btn btn-primary">Développement Web</button>
|
<button type="submit" name="filter_cat" value="2" class="btn btn-primary">Développement Web</button>
|
||||||
<button type="submit" name="filter_old" value="true" class="btn btn-primary">Plus de 6 mois</button>
|
<button type="submit" name="filter_old" value="true" class="btn btn-primary">Plus de 6 mois</button>
|
||||||
<a href="index.php?ctrl=project&action=home" class="btn btn-primary">Tout</a>
|
<a href="{$smarty.env.BASE_URL}/project/home" class="btn btn-primary">Tout</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
@ -30,7 +28,7 @@
|
||||||
|
|
||||||
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||||
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
||||||
{assign var="isDeleted" value=($objProject->getProject_deleted_at() !== null)}
|
{assign var="isDeleted" value=($objProject->getDeleted_at() !== null)}
|
||||||
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
||||||
|
|
||||||
{if $isModerator
|
{if $isModerator
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
<small class="text-secondary">
|
<small class="text-secondary">
|
||||||
Déjà un compte ?
|
Déjà un compte ?
|
||||||
<a href="index.php?ctrl=user&action=login">Se connecter</a>
|
<a href="{$smarty.env.BASE_URL}/user/login">Se connecter</a>
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
<small class="text-secondary">
|
<small class="text-secondary">
|
||||||
Pas encore de compte ?
|
Pas encore de compte ?
|
||||||
<a href="index.php?ctrl=user&action=signup" class="link-primary">
|
<a href="{$smarty.env.BASE_URL}/user/signup" class="link-primary">
|
||||||
Créer un compte
|
Créer un compte
|
||||||
</a>
|
</a>
|
||||||
</small>
|
</small>
|
||||||
|
|
|
||||||
|
|
@ -24,4 +24,4 @@
|
||||||
Cordialement,<br>
|
Cordialement,<br>
|
||||||
L’équipe Folliow
|
L’équipe Folliow
|
||||||
</p>
|
</p>
|
||||||
<img src="https://php.boulayoune.com/assests/img/logo.png" style="height : 30px;">
|
<img src="{$smarty.env.BASE_URL}/assests/img/logo.png" style="height : 30px;">
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="mb-4 shadow-sm {if !($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}d-none{/if}" >
|
<div class="mb-4 shadow-sm {if !($smarty.env.IMG_PROJECT_PATH|cat:$objProject->getThumbnail())|file_exists}d-none{/if}" >
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}"
|
||||||
class="img-fluid rounded w-100">
|
class="img-fluid rounded w-100">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -50,16 +50,16 @@
|
||||||
<div class="col-md-4 mb-4">
|
<div class="col-md-4 mb-4">
|
||||||
<div class="card {if $image.image_status != 'approuvé'}border-warning shadow-none opacity-75{/if}">
|
<div class="card {if $image.image_status != 'approuvé'}border-warning shadow-none opacity-75{/if}">
|
||||||
|
|
||||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}" class="card-img-top" alt="{$image.image_alt}">
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}" class="card-img-top" alt="{$image.image_alt}">
|
||||||
|
|
||||||
{* Visible uniquement par le modérateur *}
|
{* Visible uniquement par le modérateur *}
|
||||||
{if isset($smarty.session.user.user_status) && $smarty.session.user.user_status == 2}
|
{if isset($smarty.session.user.user_status) && $smarty.session.user.user_status == 2}
|
||||||
<div class="moderator-tools border-top pt-2 mt-2">
|
<div class="moderator-tools border-top pt-2 mt-2">
|
||||||
<div class="d-flex gap-2">
|
<div class="d-flex gap-2">
|
||||||
<a href="index.php?ctrl=project&action=change_image_status&id_img={$image.image_id}&status=approuvé"
|
<a href="{$smarty.env.BASE_URL}/project/change_image_status/{$image.image_id}&status=approuvé"
|
||||||
class="btn btn-sm btn-success">Valider</a>
|
class="btn btn-sm btn-success">Valider</a>
|
||||||
|
|
||||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
<a href="{$smarty.env.BASE_URL}/project/delete_image/{$image.image_id}"
|
||||||
class="btn btn-sm btn-outline-danger"
|
class="btn btn-sm btn-outline-danger"
|
||||||
onclick="return confirm('Supprimer définitivement ?')">Supprimer</a>
|
onclick="return confirm('Supprimer définitivement ?')">Supprimer</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
|
|
||||||
<!-- Formulaire qui envoie la demande au contrôleur (sendEmail) -->
|
<!-- Formulaire qui envoie la demande au contrôleur (sendEmail) -->
|
||||||
<div class="card shadow-sm p-4 mb-5">
|
<div class="card shadow-sm p-4 mb-5">
|
||||||
<form method="post" action="index.php?ctrl=project&action=sendEmail">
|
<form method="post" action="{$smarty.env.BASE_URL}/project/sendEmail">
|
||||||
|
|
||||||
<input type="hidden" name="project_id"
|
<input type="hidden" name="project_id"
|
||||||
value="{$objProject->getId()}">
|
value="{$objProject->getId()}">
|
||||||
|
|
@ -110,8 +110,8 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;"{/if}>
|
z-index: 1;"{/if}>
|
||||||
|
|
||||||
<a href="index.php?ctrl=user&action=user&pseudo={$objProject->getCreatorName()}" class="text-decoration-none text-dark">
|
<a href="{$smarty.env.BASE_URL}/user/user/{$objProject->getCreatorName()}" 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}"
|
<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 "
|
class="rounded-circle mb-3 mx-auto "
|
||||||
style="width:100px;height:100px;object-fit:cover;{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
style="width:100px;height:100px;object-fit:cover;{if $objProject->getCreatorName()|stripos:'minou' !== false}
|
||||||
box-shadow: 0 0 0 4px #000; {/if}">
|
box-shadow: 0 0 0 4px #000; {/if}">
|
||||||
|
|
@ -145,18 +145,18 @@
|
||||||
{if isset($smarty.session.user)}
|
{if isset($smarty.session.user)}
|
||||||
{if ($smarty.session.user.user_status == 2 || $smarty.session.user.user_id == $objProject->getUser_id())}
|
{if ($smarty.session.user.user_status == 2 || $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||||
<div class="border rounded text-center">
|
<div class="border rounded text-center">
|
||||||
<a class="btn btn-sm m-1 btn-danger" href="?ctrl=project&action=delete&id={$objProject->getId()}" name="toDelete">Supprimer le projet</a>
|
<a class="btn btn-sm m-1 btn-danger" href="{$smarty.env.BASE_URL}/project/delete/{$objProject->getId()}" name="toDelete">Supprimer le projet</a>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
{if $smarty.session.user.user_id == $objProject->getUser_id()}
|
||||||
<a class="btn btn-sm m-1 btn-warning" href="?ctrl=project&action=addedit_project&id={$objProject->getId()}" name="addedit">Modifier le projet</a>
|
<a class="btn btn-sm m-1 btn-warning" href="{$smarty.env.BASE_URL}/project/addedit_project/{$objProject->getId()}" name="addedit">Modifier le projet</a>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{*Conditions permettant au Modérateur de modifier le status d'un projet*}
|
{*Conditions permettant au Modérateur de modifier le status d'un projet*}
|
||||||
{if $smarty.session.user.user_status == 2 && $objProject->getStatus() == "en_attente"}
|
{if $smarty.session.user.user_status == 2 && $objProject->getStatus() == "en_attente"}
|
||||||
<a class="btn btn-sm m-1 btn-success" href="?ctrl=project&action=accept&id={$objProject->getId()}" name="toPublished">Accepter</a>
|
<a class="btn btn-sm m-1 btn-success" href="{$smarty.env.BASE_URL}/project/accept/{$objProject->getId()}" name="toPublished">Accepter</a>
|
||||||
<a class="btn btn-sm m-1 btn-warning" href="?ctrl=project&action=refuse&id={$objProject->getId()}" name="toRefused">Refuser</a>
|
<a class="btn btn-sm m-1 btn-warning" href="{$smarty.env.BASE_URL}/project/refuse/{$objProject->getId()}" name="toRefused">Refuser</a>
|
||||||
</div>
|
</div>
|
||||||
{elseif $projectStatus == "refusé"}
|
{elseif $projectStatus == "refusé"}
|
||||||
<p class="text-danger fw-bold">Portfolio refusé</p>
|
<p class="text-danger fw-bold">Portfolio refusé</p>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<h2 class="visually-hidden">Rechercher parmi les projets</h2>
|
<h2 class="visually-hidden">Rechercher parmi les projets</h2>
|
||||||
<div class="row mb-2">
|
<div class="row mb-2">
|
||||||
<section class="mb-5" aria-labelledby="search-heading">
|
<section class="mb-5" aria-labelledby="search-heading">
|
||||||
<form name="formSearch" method="post" action="?ctrl=project&action=search" class="border rounded p-4 bg-light">
|
<form name="formSearch" method="post" action="" class="border rounded p-4 bg-light">
|
||||||
<h3 id="search-heading" class="h4 mb-4">
|
<h3 id="search-heading" class="h4 mb-4">
|
||||||
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
||||||
Rechercher des projets
|
Rechercher des projets
|
||||||
|
|
@ -134,7 +134,7 @@
|
||||||
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
<i class="fas fa-search me-2" aria-hidden="true"></i>
|
||||||
Rechercher
|
Rechercher
|
||||||
</button>
|
</button>
|
||||||
<a href="index.php?ctrl=project&action=search" class="btn btn-secondary ms-2">
|
<a href="{$smarty.env.BASE_URL}/project/search" class="btn btn-secondary ms-2">
|
||||||
<i class="fas fa-redo me-2" aria-hidden="true"></i>
|
<i class="fas fa-redo me-2" aria-hidden="true"></i>
|
||||||
Réinitialiser
|
Réinitialiser
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -155,7 +155,7 @@
|
||||||
|
|
||||||
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
{assign var="isAuthor" value=(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||||
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
{assign var="isModerator" value=(isset($smarty.session.user) && $smarty.session.user.user_status == 2)}
|
||||||
{assign var="isDeleted" value=($objProject->getProject_deleted_at() !== null)}
|
{assign var="isDeleted" value=($objProject->getDeleted_at() !== null)}
|
||||||
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
{assign var="isRefused" value=($objProject->getStatus() == "refusé")}
|
||||||
|
|
||||||
{if $isModerator
|
{if $isModerator
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
<small class="text-secondary">
|
<small class="text-secondary">
|
||||||
Déjà un compte ?
|
Déjà un compte ?
|
||||||
<a class="link-primary" href="index.php?ctrl=user&action=login">
|
<a class="link-primary" href="{$smarty.env.BASE_URL}/user/login">
|
||||||
Se connecter
|
Se connecter
|
||||||
</a>
|
</a>
|
||||||
</small>
|
</small>
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
z-index: 1;"{/if}>
|
z-index: 1;"{/if}>
|
||||||
<div class="row" >
|
<div class="row" >
|
||||||
<div class="col-md-4 text-center">
|
<div class="col-md-4 text-center">
|
||||||
<img src="{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($user->getImage()))|file_exists}{$user->getImage()}{else}images.jpg{/if}" alt="Avatar de {$user->getPseudo()}" class="rounded-circle flex-shrink-0 border border-2 border-white"
|
<img src="{$smarty.env.BASE_URL}/{$smarty.env.IMG_USER_PATH}{if ($smarty.env.IMG_USER_PATH|cat:($user->getImage()))|file_exists}{$user->getImage()}{else}images.jpg{/if}" alt="Avatar de {$user->getPseudo()}" class="rounded-circle flex-shrink-0 border border-2 border-white"
|
||||||
style="width: 256px; height: 256px; object-fit: cover; margin-top: 8px;{if $user->getPseudo()|stripos:'minou' !== false}
|
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}"
|
box-shadow: 0 0 0 4px #000; {/if}"
|
||||||
>
|
>
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
border: none !important;
|
border: none !important;
|
||||||
font-weight: bold !important;
|
font-weight: bold !important;
|
||||||
transition: transform 0.2s;"{/if}
|
transition: transform 0.2s;"{/if}
|
||||||
href="?ctrl=user&action=edit">Edit account</a>
|
href="{$smarty.env.BASE_URL}/user/edit">Edit account</a>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
<!-- Avatar preview -->
|
<!-- Avatar preview -->
|
||||||
<img
|
<img
|
||||||
id="preview-avatar"
|
id="preview-avatar"
|
||||||
src="{if $objUser->getImage()}{$smarty.env.IMG_USER_PATH}{$objUser->getImage()}{else}assests/img/images.jpg{/if}"
|
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"
|
alt="Photo de profil"
|
||||||
class="rounded-circle border"
|
class="rounded-circle border"
|
||||||
style="width:80px; height:80px; object-fit:cover;"
|
style="width:80px; height:80px; object-fit:cover;"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue