Merge branch 'main' into guillaume
This commit is contained in:
commit
483ae3c9c0
25 changed files with 1061 additions and 388 deletions
36
.github/workflows/deploy.yml
vendored
Normal file
36
.github/workflows/deploy.yml
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
name: Deploy production (servyass)
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Deploy via SSH
|
||||||
|
uses: appleboy/ssh-action@master
|
||||||
|
with:
|
||||||
|
host: boulayoune.com
|
||||||
|
username: yass
|
||||||
|
key: ${{ secrets.SSH_KEY }}
|
||||||
|
port: 22
|
||||||
|
script: |
|
||||||
|
set -e
|
||||||
|
echo "➡️ Connexion réussie !"
|
||||||
|
cd /var/www/projet_php
|
||||||
|
|
||||||
|
echo "➡️ Mise à jour du code..."
|
||||||
|
# On enlève le SUDO ici pour que Git utilise la clé de l'utilisateur yass
|
||||||
|
git fetch origin main
|
||||||
|
git reset --hard origin/main
|
||||||
|
|
||||||
|
echo "➡️ Correction des permissions et nettoyage..."
|
||||||
|
# On garde le SUDO ici car ces commandes touchent au système
|
||||||
|
sudo chown -R yass:www-data /var/www/projet_php
|
||||||
|
sudo chmod -R 775 /var/www/projet_php/templates_c
|
||||||
|
sudo rm -rf /var/www/projet_php/templates_c/*
|
||||||
|
|
||||||
|
echo "✅ Déploiement terminé ! (Shin-en no Egotisu)"
|
||||||
|
Before Width: | Height: | Size: 232 KiB After Width: | Height: | Size: 232 KiB |
|
|
@ -85,6 +85,7 @@
|
||||||
|
|
||||||
$this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay;
|
$this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay;
|
||||||
$this->_arrData['arrCategory'] = $arrCategory;
|
$this->_arrData['arrCategory'] = $arrCategory;
|
||||||
|
$this->_arrData['arrProject'] = $arrProject;
|
||||||
$this->_arrData['arrUser'] = $arrUser;
|
$this->_arrData['arrUser'] = $arrUser;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -179,7 +180,7 @@
|
||||||
$objProject->hydrate($arrProject);
|
$objProject->hydrate($arrProject);
|
||||||
|
|
||||||
$this->_arrData["objProject"] = $objProject;
|
$this->_arrData["objProject"] = $objProject;
|
||||||
$this->_display("projet_display");
|
$this->_display("project_display");
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php?ctrl=project&action=home");
|
header("Location: index.php?ctrl=project&action=home");
|
||||||
exit;
|
exit;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
||||||
require("models/user_model.php");
|
require("models/user_model.php");
|
||||||
require("entities/user_entity.php");
|
require("entities/user_entity.php");
|
||||||
require("mother_controller.php");
|
require("mother_controller.php");
|
||||||
|
require("./models/project_model.php");
|
||||||
|
require("./entities/project_entity.php");
|
||||||
|
|
||||||
class UserCtrl extends MotherCtrl {
|
class UserCtrl extends MotherCtrl {
|
||||||
|
|
||||||
|
|
@ -121,7 +123,6 @@ class UserCtrl extends MotherCtrl {
|
||||||
// Si pas d'erreurs => insertion
|
// Si pas d'erreurs => insertion
|
||||||
if (count($arrError) === 0) {
|
if (count($arrError) === 0) {
|
||||||
$objUserModel = new UserModel();
|
$objUserModel = new UserModel();
|
||||||
$boolInsert = $objUserModel->insert($objUser);
|
|
||||||
|
|
||||||
if ($objUserModel->mailExists($objUser->getMail())) {
|
if ($objUserModel->mailExists($objUser->getMail())) {
|
||||||
|
|
||||||
|
|
@ -141,6 +142,46 @@ class UserCtrl extends MotherCtrl {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Affichage de la vue inscription
|
// Affichage de la vue inscription
|
||||||
|
$this->_arrData["arrError"] = $arrError;
|
||||||
$this->_display("inscription");
|
$this->_display("inscription");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* le controlleur affichage de la page user
|
||||||
|
*/
|
||||||
|
public function user(){
|
||||||
|
|
||||||
|
$intId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
||||||
|
|
||||||
|
if ($intId <= 0) {
|
||||||
|
header("Location: index.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
//affichage info utilisateur
|
||||||
|
$objUserModel = new UserModel;
|
||||||
|
$arrUserData = $objUserModel->findUserById($intId);
|
||||||
|
|
||||||
|
if ($arrUserData === false) {
|
||||||
|
header("Location: index.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$objUser = new User;
|
||||||
|
$objUser->hydrate($arrUserData);
|
||||||
|
|
||||||
|
//affichage projet de l'utilisateur
|
||||||
|
$objProjectModel = new ProjectModel;
|
||||||
|
$arrProjects = $objProjectModel->findAll(0,'',$intId);
|
||||||
|
|
||||||
|
$arrProjectToDisplay = array();
|
||||||
|
foreach($arrProjects as $projectData) {
|
||||||
|
$objProject = new Project();
|
||||||
|
$objProject->hydrate($projectData);
|
||||||
|
$arrProjectToDisplay[] = $objProject;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_arrData['user'] = $objUser;
|
||||||
|
$this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay;
|
||||||
|
$this->_display("user");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@
|
||||||
try{
|
try{
|
||||||
// Connexion à la base de données
|
// Connexion à la base de données
|
||||||
$this->_db = new PDO(
|
$this->_db = new PDO(
|
||||||
"mysql:host=boulayoune.com;dbname=projet_folliow", // Serveur et BDD
|
"mysql:host=boulayoune.com;dbname=projet_folliow", // Serveur et BDD "mysql:host=localhost;dbname=projet_folliow",
|
||||||
"projet_user", //Nom d'utilisateur de la base de données
|
"projet_user", //Nom d'utilisateur de la base de données root
|
||||||
"F0lliowRules!",// Mot de passe de la base de données
|
"F0lliowRules!",// Mot de passe de la base de données
|
||||||
array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) // Mode de renvoi
|
array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) // Mode de renvoi
|
||||||
);
|
);
|
||||||
// Pour résoudre les problèmes d’encodage
|
// Pour résoudre les problèmes d’encodage
|
||||||
|
|
|
||||||
|
|
@ -104,9 +104,9 @@
|
||||||
/**
|
/**
|
||||||
* Fonction de recherche d'un seul projet
|
* Fonction de recherche d'un seul projet
|
||||||
* @param int $intId
|
* @param int $intId
|
||||||
* @return
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function findOne(int $intId) {
|
public function findOne(int $intId) :array{
|
||||||
$strRq = "SELECT project.*,
|
$strRq = "SELECT project.*,
|
||||||
CONCAT(users.user_firstname, ' ', users.user_name) AS 'project_creatorname',
|
CONCAT(users.user_firstname, ' ', users.user_name) AS 'project_creatorname',
|
||||||
users.user_image,
|
users.user_image,
|
||||||
|
|
@ -150,4 +150,26 @@
|
||||||
|
|
||||||
return $this->_db->query($strRq);
|
return $this->_db->query($strRq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction de mise à jour d'un projet en BDD
|
||||||
|
* @param object $objProject L'objet utilisateur
|
||||||
|
* @return bool Est-ce que la requête s'est bien passée
|
||||||
|
*/
|
||||||
|
public function updateProject(object $objProject):bool{
|
||||||
|
|
||||||
|
$strRq = "UPDATE project
|
||||||
|
SET project_title = :title, project_description = :description, project_content = :content
|
||||||
|
WHERE project_id = :id";
|
||||||
|
|
||||||
|
$rqPrep = $this->_db->prepare($strRq);
|
||||||
|
|
||||||
|
$rqPrep->bindValue(":title", $objProject->getTitle(), PDO::PARAM_STR);
|
||||||
|
$rqPrep->bindValue(":description", $objProject->getDescription(), PDO::PARAM_STR);
|
||||||
|
$rqPrep->bindValue(":content", $objProject->getContent(), PDO::PARAM_STR);
|
||||||
|
|
||||||
|
|
||||||
|
// Executer la requête
|
||||||
|
return $rqPrep->execute();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -116,5 +116,21 @@
|
||||||
$rqPrep = $this->_db->prepare($strRq);
|
$rqPrep = $this->_db->prepare($strRq);
|
||||||
$rqPrep->bindValue(":id", $intId, PDO::PARAM_INT);
|
$rqPrep->bindValue(":id", $intId, PDO::PARAM_INT);
|
||||||
return $rqPrep->execute();
|
return $rqPrep->execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Récupère les informations d'un utilisateur par son ID
|
||||||
|
* @param int $intId L'identifiant de l'utilisateur
|
||||||
|
* @return array Tableau associatif (ou false si pas trouvé)
|
||||||
|
*/
|
||||||
|
public function findUserById(int $intId): array|bool {
|
||||||
|
|
||||||
|
$strRq = "SELECT * FROM users WHERE user_id = :id";
|
||||||
|
|
||||||
|
$prep = $this->_db->prepare($strRq);
|
||||||
|
$prep->bindValue(':id', $intId, PDO::PARAM_INT);
|
||||||
|
$prep->execute();
|
||||||
|
|
||||||
|
return $prep->fetch();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:16:35
|
/* Smarty version 5.7.0, created on 2026-02-11 16:50:16
|
||||||
from 'file:views/home.tpl' */
|
from 'file:views/home.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b403135214_06797903',
|
'unifunc' => 'content_698cb3489df022_21637833',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'0f54e8b5c9bcafd01d94486bfa02ee91c2c5fe68' =>
|
'0f54e8b5c9bcafd01d94486bfa02ee91c2c5fe68' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/home.tpl',
|
0 => 'views/home.tpl',
|
||||||
1 => 1770579251,
|
1 => 1770721453,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -21,20 +21,20 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'file:views/_partial/preview.tpl' => 1,
|
'file:views/_partial/preview.tpl' => 1,
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b403135214_06797903 (\Smarty\Template $_smarty_tpl) {
|
function content_698cb3489df022_21637833 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_8519413186989b403131000_39935260', "content");
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_625675898698cb3489daba8_53798441', "content");
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<?php $_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
<?php $_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
}
|
}
|
||||||
/* {block "content"} */
|
/* {block "content"} */
|
||||||
class Block_8519413186989b403131000_39935260 extends \Smarty\Runtime\Block
|
class Block_625675898698cb3489daba8_53798441 extends \Smarty\Runtime\Block
|
||||||
{
|
{
|
||||||
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
|
@ -48,6 +48,19 @@ $_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
directement en contact avec les entreprises.</p>
|
directement en contact avec les entreprises.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
|
||||||
|
<div class="mb-4">
|
||||||
|
<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="index.php?ctrl=project&action=home" class="btn btn-primary">Tout</a>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section class="container" aria-label="Articles récents">
|
<section class="container" aria-label="Articles récents">
|
||||||
<h2 class="visually-hidden">Les 4 derniers articles</h2>
|
<h2 class="visually-hidden">Les 4 derniers articles</h2>
|
||||||
<div class="row mb-2">
|
<div class="row mb-2">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,245 @@
|
||||||
|
<?php
|
||||||
|
/* Smarty version 5.7.0, created on 2026-02-11 17:20:34
|
||||||
|
from 'file:views/inscription.tpl' */
|
||||||
|
|
||||||
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
|
'version' => '5.7.0',
|
||||||
|
'unifunc' => 'content_698cba62a72df8_61715147',
|
||||||
|
'has_nocache_code' => false,
|
||||||
|
'file_dependency' =>
|
||||||
|
array (
|
||||||
|
'184f81453f2b8e9c87b8f61bf5df178eaf9a1be4' =>
|
||||||
|
array (
|
||||||
|
0 => 'views/inscription.tpl',
|
||||||
|
1 => 1770830431,
|
||||||
|
2 => 'file',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'includes' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
))) {
|
||||||
|
function content_698cba62a72df8_61715147 (\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_1012653795698cba62a6b7c0_71138616', "content");
|
||||||
|
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
|
}
|
||||||
|
/* {block "content"} */
|
||||||
|
class Block_1012653795698cba62a6b7c0_71138616 extends \Smarty\Runtime\Block
|
||||||
|
{
|
||||||
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- Page : Inscription -->
|
||||||
|
|
||||||
|
|
||||||
|
<main class="container py-5">
|
||||||
|
|
||||||
|
<!-- Centrage horizontal du formulaire -->
|
||||||
|
<div class="row justify-content-center position-relative">
|
||||||
|
<div class="col-12 col-md-10 col-lg-6">
|
||||||
|
|
||||||
|
<!-- Carte contenant le formulaire d'inscription -->
|
||||||
|
<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">Inscription</h1>
|
||||||
|
|
||||||
|
<!-- Texte descriptif -->
|
||||||
|
<p class="text-secondary mb-4">
|
||||||
|
Créez votre compte utilisateur.
|
||||||
|
</p>
|
||||||
|
<?php if (((true && ($_smarty_tpl->hasVariable('arrError') && null !== ($_smarty_tpl->getValue('arrError') ?? null))) && $_smarty_tpl->getSmarty()->getModifierCallback('count')($_smarty_tpl->getValue('arrError')) > 0)) {?>
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
<?php
|
||||||
|
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrError'), 'strError');
|
||||||
|
$foreach0DoElse = true;
|
||||||
|
foreach ($_from ?? [] as $_smarty_tpl->getVariable('strError')->value) {
|
||||||
|
$foreach0DoElse = false;
|
||||||
|
?>
|
||||||
|
<p><?php echo $_smarty_tpl->getValue('strError');?>
|
||||||
|
</p>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
||||||
|
</div>
|
||||||
|
<?php }?>
|
||||||
|
<!-- Formulaire d'inscription -->
|
||||||
|
<!-- Les données seront traitées côté serveur en PHP via la méthode POST -->
|
||||||
|
<form method="POST">
|
||||||
|
|
||||||
|
<div class="row g-3">
|
||||||
|
|
||||||
|
<!-- Champ : prénom de l'utilisateur -->
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<!-- Champ : nom de l'utilisateur -->
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<!-- Champ : pseudo -->
|
||||||
|
<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>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* {/block "content"} */
|
||||||
|
}
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:16:54
|
/* Smarty version 5.7.0, created on 2026-02-11 17:20:34
|
||||||
from 'file:views/layout.tpl' */
|
from 'file:views/layout.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b41646f355_64257736',
|
'unifunc' => 'content_698cba62b4e137_64473486',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'1c51ad9f5c349145220f82584009ce981aa35e0b' =>
|
'1c51ad9f5c349145220f82584009ce981aa35e0b' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/layout.tpl',
|
0 => 'views/layout.tpl',
|
||||||
1 => 1770579251,
|
1 => 1770649781,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -22,21 +22,21 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'file:views/_partial/footer.tpl' => 1,
|
'file:views/_partial/footer.tpl' => 1,
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b41646f355_64257736 (\Smarty\Template $_smarty_tpl) {
|
function content_698cba62b4e137_64473486 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
$_smarty_tpl->getInheritance()->init($_smarty_tpl, false);
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, false);
|
||||||
$_smarty_tpl->renderSubTemplate("file:views/_partial/header.tpl", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, 0, $_smarty_tpl->cache_lifetime, array(), (int) 0, $_smarty_current_dir);
|
$_smarty_tpl->renderSubTemplate("file:views/_partial/header.tpl", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, 0, $_smarty_tpl->cache_lifetime, array(), (int) 0, $_smarty_current_dir);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_12018663056989b41646d2e0_34201164', "content");
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_1102964570698cba62b4c8c6_53649331', "content");
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
<?php $_smarty_tpl->renderSubTemplate("file:views/_partial/footer.tpl", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, 0, $_smarty_tpl->cache_lifetime, array(), (int) 0, $_smarty_current_dir);
|
<?php $_smarty_tpl->renderSubTemplate("file:views/_partial/footer.tpl", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, 0, $_smarty_tpl->cache_lifetime, array(), (int) 0, $_smarty_current_dir);
|
||||||
}
|
}
|
||||||
/* {block "content"} */
|
/* {block "content"} */
|
||||||
class Block_12018663056989b41646d2e0_34201164 extends \Smarty\Runtime\Block
|
class Block_1102964570698cba62b4c8c6_53649331 extends \Smarty\Runtime\Block
|
||||||
{
|
{
|
||||||
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:16:54
|
/* Smarty version 5.7.0, created on 2026-02-11 17:20:34
|
||||||
from 'file:views/_partial/footer.tpl' */
|
from 'file:views/_partial/footer.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b416601ef8_77236186',
|
'unifunc' => 'content_698cba62c7aed8_62552440',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'264314e384c04e79c5fa56e3cf6837f9df55d7fb' =>
|
'264314e384c04e79c5fa56e3cf6837f9df55d7fb' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/_partial/footer.tpl',
|
0 => 'views/_partial/footer.tpl',
|
||||||
1 => 1770579251,
|
1 => 1770649781,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -20,7 +20,7 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b416601ef8_77236186 (\Smarty\Template $_smarty_tpl) {
|
function content_698cba62c7aed8_62552440 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
$_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
||||||
?>
|
?>
|
||||||
<footer class="footer container-fluid d-flex justify-content-around">
|
<footer class="footer container-fluid d-flex justify-content-around">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
<?php
|
||||||
|
/* Smarty version 5.7.0, created on 2026-02-10 13:47:21
|
||||||
|
from 'file:views/user.tpl' */
|
||||||
|
|
||||||
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
|
'version' => '5.7.0',
|
||||||
|
'unifunc' => 'content_698b36e931d9d8_07796633',
|
||||||
|
'has_nocache_code' => false,
|
||||||
|
'file_dependency' =>
|
||||||
|
array (
|
||||||
|
'32d027bc6f198a0e3016434b0dddc13d6ee22b4c' =>
|
||||||
|
array (
|
||||||
|
0 => 'views/user.tpl',
|
||||||
|
1 => 1770729421,
|
||||||
|
2 => 'file',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'includes' =>
|
||||||
|
array (
|
||||||
|
'file:views/_partial/preview.tpl' => 1,
|
||||||
|
),
|
||||||
|
))) {
|
||||||
|
function content_698b36e931d9d8_07796633 (\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
|
||||||
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_2035018945698b36e930efe0_69529586', "content");
|
||||||
|
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
|
}
|
||||||
|
/* {block "content"} */
|
||||||
|
class Block_2035018945698b36e930efe0_69529586 extends \Smarty\Runtime\Block
|
||||||
|
{
|
||||||
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<section class="user-profile mb-5">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 text-center">
|
||||||
|
<img src="" alt="Avatar de <?php echo $_smarty_tpl->getValue('user')->getPseudo();?>
|
||||||
|
" class="img-fluid rounded-circle mb-3" style="max-width: 200px">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<h1><?php echo $_smarty_tpl->getValue('user')->getPseudo();?>
|
||||||
|
</h1>
|
||||||
|
<p class="text-muted"><?php echo $_smarty_tpl->getValue('user')->getMail();?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?php if ($_smarty_tpl->getValue('user')->getWork()) {?>
|
||||||
|
<p><?php echo $_smarty_tpl->getValue('user')->getWork();?>
|
||||||
|
</p>
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
<?php if ($_smarty_tpl->getValue('user')->getLocation()) {?>
|
||||||
|
<p><?php echo $_smarty_tpl->getValue('user')->getLocation();?>
|
||||||
|
</p>
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
<p class="mt-3"><?php echo $_smarty_tpl->getValue('user')->getDescription();?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2 class="mb-4 border-bottom pb-2">Les projets de <?php echo $_smarty_tpl->getValue('user')->getPseudo();?>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?php if ($_smarty_tpl->getSmarty()->getModifierCallback('count')($_smarty_tpl->getValue('arrProjectToDisplay')) > 0) {?>
|
||||||
|
<?php
|
||||||
|
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrProjectToDisplay'), 'objProject');
|
||||||
|
$foreach0DoElse = true;
|
||||||
|
foreach ($_from ?? [] as $_smarty_tpl->getVariable('objProject')->value) {
|
||||||
|
$foreach0DoElse = false;
|
||||||
|
?>
|
||||||
|
<div class="col-md-4 mb-4">
|
||||||
|
<?php $_smarty_tpl->renderSubTemplate("file:views/_partial/preview.tpl", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, 0, $_smarty_tpl->cache_lifetime, array(), (int) 0, $_smarty_current_dir);
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
||||||
|
<?php } else { ?>
|
||||||
|
<p class="alert alert-info">Cet utilisateur n'a pas encore publié de projets.</p>
|
||||||
|
<?php }?>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* {/block "content"} */
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,129 @@
|
||||||
|
<?php
|
||||||
|
/* Smarty version 5.7.0, created on 2026-02-11 16:45:24
|
||||||
|
from 'file:views/project_display.tpl' */
|
||||||
|
|
||||||
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
|
'version' => '5.7.0',
|
||||||
|
'unifunc' => 'content_698cb22434fee2_91445718',
|
||||||
|
'has_nocache_code' => false,
|
||||||
|
'file_dependency' =>
|
||||||
|
array (
|
||||||
|
'4c2b74d2d77abca5363ffd92e8bc3a455c22b1bd' =>
|
||||||
|
array (
|
||||||
|
0 => 'views/project_display.tpl',
|
||||||
|
1 => 1770828198,
|
||||||
|
2 => 'file',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'includes' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
))) {
|
||||||
|
function content_698cb22434fee2_91445718 (\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_1025150471698cb224342408_37694456', "content");
|
||||||
|
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
|
}
|
||||||
|
/* {block "content"} */
|
||||||
|
class Block_1025150471698cb224342408_37694456 extends \Smarty\Runtime\Block
|
||||||
|
{
|
||||||
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<main class="container mt-5 py-5">
|
||||||
|
|
||||||
|
<!-- Message après l'envoi d'email -->
|
||||||
|
<?php if ((true && (true && null !== ($_GET['mail'] ?? null))) && $_GET['mail'] === 'ok') {?>
|
||||||
|
<div class="alert alert-success">Email envoyé avec succès.</div>
|
||||||
|
<?php } elseif ((true && (true && null !== ($_GET['mail'] ?? null))) && $_GET['mail'] === 'fail') {?>
|
||||||
|
<div class="alert alert-danger">Erreur lors de l'envoi de l'email.</div>
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
<div class="row g-4">
|
||||||
|
|
||||||
|
<!-- Contenu principal du projet -->
|
||||||
|
<div class="col-lg-8">
|
||||||
|
|
||||||
|
<h1 class="fw-bold"><?php echo $_smarty_tpl->getValue('objProject')->getTitle();?>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p class="text-muted">
|
||||||
|
<?php echo $_smarty_tpl->getValue('arrProject')['category_name'] ?? 'Général';?>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="mb-4 shadow-sm">
|
||||||
|
<img src=".<?php echo $_smarty_tpl->getValue('objProject')->getThumbnail();?>
|
||||||
|
"
|
||||||
|
class="img-fluid rounded w-100">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-light p-4 rounded mb-4">
|
||||||
|
<h4 class="border-bottom pb-2">Description</h4>
|
||||||
|
<p class="lead"><?php echo $_smarty_tpl->getValue('objProject')->getDescription();?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<?php echo $_smarty_tpl->getValue('objProject')->getContent();?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Formulaire qui envoie la demande au contrôleur (sendEmail) -->
|
||||||
|
<div class="card shadow-sm p-4 mb-5">
|
||||||
|
<form method="post" action="index.php?ctrl=project&action=sendEmail">
|
||||||
|
|
||||||
|
<input type="hidden" name="project_id"
|
||||||
|
value="<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
|
||||||
|
">
|
||||||
|
|
||||||
|
<input type="email" name="to_email"
|
||||||
|
class="form-control mb-3"
|
||||||
|
placeholder="Adresse email" required>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary w-100">
|
||||||
|
Envoyer par email
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Sidebar : informations du créateur -->
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div class="card text-center shadow-sm p-4">
|
||||||
|
<a href="index.php?ctrl=user&action=user&id=<?php echo $_smarty_tpl->getValue('objProject')->getUser();?>
|
||||||
|
" class="text-decoration-none text-dark">
|
||||||
|
<img src="<?php echo $_smarty_tpl->getValue('objProject')->getUser_image();?>
|
||||||
|
"
|
||||||
|
class="rounded-circle mb-3 mx-auto"
|
||||||
|
style="width:100px;height:100px;object-fit:cover;">
|
||||||
|
</a>
|
||||||
|
<h5><?php echo $_smarty_tpl->getValue('objProject')->getCreatorName();?>
|
||||||
|
</h5>
|
||||||
|
|
||||||
|
<p class="text-muted small">
|
||||||
|
Publié le <?php echo $_smarty_tpl->getValue('objProject')->getCreation_date();?>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<button class="btn btn-primary">Contacter le talent</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* {/block "content"} */
|
||||||
|
}
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:16:54
|
/* Smarty version 5.7.0, created on 2026-02-11 17:15:22
|
||||||
from 'file:views/_partial/preview.tpl' */
|
from 'file:views/_partial/preview.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b416566583_15954947',
|
'unifunc' => 'content_698cb92a3aa989_86517927',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'67e1ae3a210fc2d1bf8782993687bad91a1cf0f6' =>
|
'67e1ae3a210fc2d1bf8782993687bad91a1cf0f6' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/_partial/preview.tpl',
|
0 => 'views/_partial/preview.tpl',
|
||||||
1 => 1770629075,
|
1 => 1770828147,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -20,7 +20,7 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b416566583_15954947 (\Smarty\Template $_smarty_tpl) {
|
function content_698cb92a3aa989_86517927 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
$_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
@ -38,32 +38,60 @@ $_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
||||||
|
|
||||||
<div class="d-flex align-items-start gap-3">
|
<div class="d-flex align-items-start gap-3">
|
||||||
|
|
||||||
<img src=".<?php echo $_smarty_tpl->getValue('objProject')->getUser_image();?>
|
<img src="<?php echo $_smarty_tpl->getValue('objProject')->getUser_image();?>
|
||||||
"
|
"
|
||||||
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
||||||
style="width: 48px; height: 48px; object-fit: cover;"
|
style="width: 48px; height: 48px; object-fit: cover;"
|
||||||
alt="Photo de profil">
|
alt="Photo de profil">
|
||||||
|
|
||||||
<div class="flex-grow-1 card-body p-3">
|
<div class="flex-grow-1 card-body p-3">
|
||||||
<h3 class="h6 mb-1"><?php echo $_smarty_tpl->getValue('objProject')->getTitle();?>
|
<h3 class="h6 mb-1"><?php echo $_smarty_tpl->getValue('objProject')->getTitle();?>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<small class="text-body-secondary d-block mb-1">
|
<small class="text-body-secondary d-block mb-1">
|
||||||
<time><?php echo $_smarty_tpl->getValue('objProject')->getCreation_date();?>
|
<time><?php echo $_smarty_tpl->getValue('objProject')->getCreation_date();?>
|
||||||
</time>
|
</time>
|
||||||
– <?php echo $_smarty_tpl->getValue('objProject')->getCreatorname();?>
|
–
|
||||||
|
<a href="index.php?ctrl=user&action=user&id=<?php echo $_smarty_tpl->getValue('objProject')->getUser();?>
|
||||||
|
"
|
||||||
|
class="text-decoration-none"
|
||||||
|
style="position: relative; z-index: 2;">
|
||||||
|
<?php echo $_smarty_tpl->getValue('objProject')->getCreatorname();?>
|
||||||
|
|
||||||
</small>
|
</a>
|
||||||
|
</small>
|
||||||
|
|
||||||
<a href="index.php?ctrl=project&action=display&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
|
<a href="index.php?ctrl=project&action=display&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
|
||||||
"
|
"
|
||||||
class="stretched-link small">
|
class="stretched-link small">
|
||||||
Lire la suite →
|
Lire la suite →
|
||||||
</a>
|
</a>
|
||||||
</div>
|
<?php if ((true && (true && null !== ($_SESSION['user'] ?? null)))) {?>
|
||||||
|
<?php if ($_SESSION['user']['user_id'] == $_smarty_tpl->getValue('objProject')->getUser()) {?>
|
||||||
|
<a href="index.php?ctrl=project&action=display&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
|
||||||
|
"
|
||||||
|
class="stretched-link small">
|
||||||
|
Editer
|
||||||
|
</a>
|
||||||
|
<?php }?>
|
||||||
|
<?php }?>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</article><?php }
|
<?php if ((true && (true && null !== ($_SESSION['user'] ?? null))) && $_SESSION['user']['user_status'] == 2 && $_smarty_tpl->getValue('objProject')->getStatus() == "en_attente") {?>
|
||||||
|
<div class="border rounded text-center">
|
||||||
|
<a class="btn btn-sm m-1 btn-success" href="?ctrl=project&action=accept&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
|
||||||
|
" name="toPublished">Accepter</a>
|
||||||
|
<a class="btn btn-sm m-1 btn-warning" href="?ctrl=project&action=refuse&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
|
||||||
|
" name="toRefused">Refuser</a>
|
||||||
|
<a class="btn btn-sm m-1 btn-danger" href="?ctrl=project&action=delete&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
|
||||||
|
" name="toDelete">Supprimer</a>
|
||||||
|
</div>
|
||||||
|
<?php } elseif ($_smarty_tpl->getValue('projectStatus') == "refusé") {?>
|
||||||
|
<p class="text-danger fw-bold">Portfolio refusé</p>
|
||||||
|
<?php }?>
|
||||||
|
</article>
|
||||||
|
<?php }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:16:54
|
/* Smarty version 5.7.0, created on 2026-02-11 17:15:22
|
||||||
from 'file:views/search.tpl' */
|
from 'file:views/search.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b4162cc7a7_31054147',
|
'unifunc' => 'content_698cb92a0876d1_70933700',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'72e5e5c0ee2729980deadb1687a6d7b7b3c501bb' =>
|
'72e5e5c0ee2729980deadb1687a6d7b7b3c501bb' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/search.tpl',
|
0 => 'views/search.tpl',
|
||||||
1 => 1770580115,
|
1 => 1770649781,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -21,18 +21,18 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'file:views/_partial/preview.tpl' => 1,
|
'file:views/_partial/preview.tpl' => 1,
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b4162cc7a7_31054147 (\Smarty\Template $_smarty_tpl) {
|
function content_698cb92a0876d1_70933700 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_1139012436989b4162bac57_95455595', "content");
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_17092653698cb92a075e12_78860742', "content");
|
||||||
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
}
|
}
|
||||||
/* {block "content"} */
|
/* {block "content"} */
|
||||||
class Block_1139012436989b4162bac57_95455595 extends \Smarty\Runtime\Block
|
class Block_17092653698cb92a075e12_78860742 extends \Smarty\Runtime\Block
|
||||||
{
|
{
|
||||||
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:16:54
|
/* Smarty version 5.7.0, created on 2026-02-11 17:20:34
|
||||||
from 'file:views/_partial/header.tpl' */
|
from 'file:views/_partial/header.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b4164decf6_40046278',
|
'unifunc' => 'content_698cba62bdf239_98152130',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'8056b95e7f6b28be5e36947735d13c8d176ec944' =>
|
'8056b95e7f6b28be5e36947735d13c8d176ec944' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/_partial/header.tpl',
|
0 => 'views/_partial/header.tpl',
|
||||||
1 => 1770631509,
|
1 => 1770827564,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -20,7 +20,7 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b4164decf6_40046278 (\Smarty\Template $_smarty_tpl) {
|
function content_698cba62bdf239_98152130 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
$_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
||||||
?><!DOCTYPE html>
|
?><!DOCTYPE html>
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
|
|
@ -38,7 +38,7 @@ $_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar navbar-expand-lg navbar-light">
|
<nav class="navbar navbar-expand-lg navbar-light">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<a class="navbar-brand d-flex align-items-center" href="#">
|
<a class="navbar-brand d-flex align-items-center" href="index.php">
|
||||||
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
|
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
@ -91,7 +91,7 @@ $_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="edit_account.php" title="Modifier mon compte" aria-label="Modifier mon compte">
|
<a class="nav-link" href="edit_account.php" title="Modifier mon compte" aria-label="Modifier mon compte">
|
||||||
<img src=".<?php echo $_SESSION['user']['user_image'];?>
|
<img src="<?php echo $_SESSION['user']['user_image'];?>
|
||||||
"
|
"
|
||||||
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
||||||
style="width: 36px; height: 36px; object-fit: cover;"
|
style="width: 36px; height: 36px; object-fit: cover;"
|
||||||
|
|
@ -111,5 +111,6 @@ $_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</body>
|
</body>
|
||||||
</html><?php }
|
</html>
|
||||||
|
<?php }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,98 @@
|
||||||
|
<?php
|
||||||
|
/* Smarty version 5.7.0, created on 2026-02-11 16:46:56
|
||||||
|
from 'file:views/user.tpl' */
|
||||||
|
|
||||||
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
|
'version' => '5.7.0',
|
||||||
|
'unifunc' => 'content_698cb2800e84d0_43477988',
|
||||||
|
'has_nocache_code' => false,
|
||||||
|
'file_dependency' =>
|
||||||
|
array (
|
||||||
|
'ac38676c030d472426b3bc83bc530b255f98de05' =>
|
||||||
|
array (
|
||||||
|
0 => 'views/user.tpl',
|
||||||
|
1 => 1770828319,
|
||||||
|
2 => 'file',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'includes' =>
|
||||||
|
array (
|
||||||
|
'file:views/_partial/preview.tpl' => 1,
|
||||||
|
),
|
||||||
|
))) {
|
||||||
|
function content_698cb2800e84d0_43477988 (\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_2003790771698cb2800d9f81_10343438', "content");
|
||||||
|
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
|
}
|
||||||
|
/* {block "content"} */
|
||||||
|
class Block_2003790771698cb2800d9f81_10343438 extends \Smarty\Runtime\Block
|
||||||
|
{
|
||||||
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<section class="user-profile mb-5">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 text-center">
|
||||||
|
<img src="<?php echo $_smarty_tpl->getValue('user')->getImage();?>
|
||||||
|
" alt="Avatar de <?php echo $_smarty_tpl->getValue('user')->getPseudo();?>
|
||||||
|
" class="img-fluid rounded-circle mb-3" style="max-width: 200px">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<h1><?php echo $_smarty_tpl->getValue('user')->getPseudo();?>
|
||||||
|
</h1>
|
||||||
|
<p class="text-muted"><?php echo $_smarty_tpl->getValue('user')->getMail();?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?php if ($_smarty_tpl->getValue('user')->getWork()) {?>
|
||||||
|
<p><?php echo $_smarty_tpl->getValue('user')->getWork();?>
|
||||||
|
</p>
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
<?php if ($_smarty_tpl->getValue('user')->getLocation()) {?>
|
||||||
|
<p><?php echo $_smarty_tpl->getValue('user')->getLocation();?>
|
||||||
|
</p>
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
<p class="mt-3"><?php echo $_smarty_tpl->getValue('user')->getDescription();?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2 class="mb-4 border-bottom pb-2">Les projets de <?php echo $_smarty_tpl->getValue('user')->getPseudo();?>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?php if ($_smarty_tpl->getSmarty()->getModifierCallback('count')($_smarty_tpl->getValue('arrProjectToDisplay')) > 0) {?>
|
||||||
|
<?php
|
||||||
|
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrProjectToDisplay'), 'objProject');
|
||||||
|
$foreach0DoElse = true;
|
||||||
|
foreach ($_from ?? [] as $_smarty_tpl->getVariable('objProject')->value) {
|
||||||
|
$foreach0DoElse = false;
|
||||||
|
?>
|
||||||
|
<?php $_smarty_tpl->renderSubTemplate("file:views/_partial/preview.tpl", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, 0, $_smarty_tpl->cache_lifetime, array(), (int) 0, $_smarty_current_dir);
|
||||||
|
?>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
||||||
|
<?php } else { ?>
|
||||||
|
<p class="alert alert-info">Cet utilisateur n'a pas encore publié de projets.</p>
|
||||||
|
<?php }?>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* {/block "content"} */
|
||||||
|
}
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:16:45
|
/* Smarty version 5.7.0, created on 2026-02-11 17:16:03
|
||||||
from 'file:views/login.tpl' */
|
from 'file:views/login.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b40d157c69_73022561',
|
'unifunc' => 'content_698cb953b608a8_76956629',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'b44ab733c93381dbf5dbbeae871506874cefd9d6' =>
|
'b44ab733c93381dbf5dbbeae871506874cefd9d6' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/login.tpl',
|
0 => 'views/login.tpl',
|
||||||
1 => 1770632188,
|
1 => 1770649781,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -20,18 +20,18 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b40d157c69_73022561 (\Smarty\Template $_smarty_tpl) {
|
function content_698cb953b608a8_76956629 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_3583856956989b40d14e663_91083378', "content");
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_1066475645698cb953b56638_10931349', "content");
|
||||||
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
}
|
}
|
||||||
/* {block "content"} */
|
/* {block "content"} */
|
||||||
class Block_3583856956989b40d14e663_91083378 extends \Smarty\Runtime\Block
|
class Block_1066475645698cb953b56638_10931349 extends \Smarty\Runtime\Block
|
||||||
{
|
{
|
||||||
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
/* Smarty version 5.7.0, created on 2026-02-09 10:06:01
|
/* Smarty version 5.7.0, created on 2026-02-11 16:46:47
|
||||||
from 'file:views/admin.tpl' */
|
from 'file:views/admin.tpl' */
|
||||||
|
|
||||||
/* @var \Smarty\Template $_smarty_tpl */
|
/* @var \Smarty\Template $_smarty_tpl */
|
||||||
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
'version' => '5.7.0',
|
'version' => '5.7.0',
|
||||||
'unifunc' => 'content_6989b189902285_60575184',
|
'unifunc' => 'content_698cb277dd9632_57655004',
|
||||||
'has_nocache_code' => false,
|
'has_nocache_code' => false,
|
||||||
'file_dependency' =>
|
'file_dependency' =>
|
||||||
array (
|
array (
|
||||||
'f80694cc4829becd656ad4f73c431db5dba4722b' =>
|
'f80694cc4829becd656ad4f73c431db5dba4722b' =>
|
||||||
array (
|
array (
|
||||||
0 => 'views/admin.tpl',
|
0 => 'views/admin.tpl',
|
||||||
1 => 1770630804,
|
1 => 1770827564,
|
||||||
2 => 'file',
|
2 => 'file',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -20,193 +20,139 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
))) {
|
))) {
|
||||||
function content_6989b189902285_60575184 (\Smarty\Template $_smarty_tpl) {
|
function content_698cb277dd9632_57655004 (\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
$_smarty_tpl->getInheritance()->init($_smarty_tpl, true);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_13716580806989b1898f9564_82803825', "content");
|
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_186078871698cb277dcbef8_81710710', "content");
|
||||||
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
|
||||||
}
|
}
|
||||||
/* {block "content"} */
|
/* {block "content"} */
|
||||||
class Block_13716580806989b1898f9564_82803825 extends \Smarty\Runtime\Block
|
class Block_186078871698cb277dcbef8_81710710 extends \Smarty\Runtime\Block
|
||||||
{
|
{
|
||||||
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
public function callBlock(\Smarty\Template $_smarty_tpl) {
|
||||||
$_smarty_current_dir = 'D:\\projetphp\\views';
|
$_smarty_current_dir = 'D:\\projetphp\\views';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
<section class="sb-nav-fixed">
|
<section>
|
||||||
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
|
<div id="layoutSidenav_content">
|
||||||
|
<div class="container-fluid px-4">
|
||||||
<a class="navbar-brand ps-3" href="index.php?ctrl=project&action=home"><img src="assests/img/Logo-Wordmark.svg" alt="Logo du site" width="150px"></a>
|
<h1 class="mt-4">Dashboard</h1>
|
||||||
<button class="btn btn-link btn-sm order-1 order-lg-0 me-4 me-lg-0" id="sidebarToggle" href="#!"><i class="fas fa-bars"></i></button>
|
<div class="container-fluid px-4">
|
||||||
<form class="d-none d-md-inline-block form-inline ms-auto me-0 me-md-3 my-2 my-md-0">
|
<!-- USER MODIF -->
|
||||||
<div class="input-group">
|
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
||||||
<input class="form-control" type="text" placeholder="Recherche par pseudo..." aria-label="Recherche pseudo" aria-describedby="btnNavbarSearch" />
|
<div class="container-fluid pt-2">
|
||||||
<button class="btn btn-primary" id="btnNavbarSearch" type="button"><i class="fas fa-search"></i></button>
|
<h2>Gestion de l'utilsateur</h2>
|
||||||
</div>
|
<p>Changer le statut ou supprimer un utilisateur</p>
|
||||||
</form>
|
<div class="row">
|
||||||
|
<div class="col-2">
|
||||||
<!-- Navbar - User-->
|
<img src="./assests/img/Logo-Wordmark.svg" alt="" width="100">
|
||||||
<ul class="navbar-nav ms-auto ms-md-0 me-3 me-lg-4">
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a class="nav-link dropdown-toggle" id="navbarDropdown" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"><i class="fas fa-user fa-fw"></i></a>
|
|
||||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
|
|
||||||
<li><a class="dropdown-item" href="/option.php">Paramètre</a></li>
|
|
||||||
<li><hr class="dropdown-divider" /></li>
|
|
||||||
<li><a class="dropdown-item" href="/deconnexion.php">Déconnexion</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<!-- SideNav Infos -->
|
|
||||||
<div id="layoutSidenav">
|
|
||||||
<div id="layoutSidenav_nav">
|
|
||||||
<nav class="sb-sidenav accordion sb-sidenav-dark" id="sidenavAccordion">
|
|
||||||
<div class="sb-sidenav-menu">
|
|
||||||
<div class="nav">
|
|
||||||
<div class="sb-sidenav-menu-heading"></div>
|
|
||||||
<a class="nav-link" href="index.html">
|
|
||||||
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
|
|
||||||
Rafraichir la page
|
|
||||||
</a>
|
|
||||||
<div class="sb-sidenav-menu-heading"></div>
|
|
||||||
<div class="collapse" id="collapseLayouts" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordion">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form action="post">
|
|
||||||
<div class="container-fluid ps-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<label for="checkbox1">Par date</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 text-center">
|
|
||||||
<input type="checkbox" name="search_date" id="">
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<label for="checkbox2">Par date de creation de compte</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 text-center">
|
|
||||||
<input type="checkbox" name="search_creationdate" id="">
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<label for="checkbox3">Recherche par date</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 text-center">
|
|
||||||
<input type="checkbox" name="search_date" id="">
|
|
||||||
</div>
|
|
||||||
<div class="col-12 text-center">
|
|
||||||
<button type="submit" class="btn mt-3 bg-primary text-light">Recherche</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<form method="POST">
|
||||||
<div class="sb-sidenav-footer">
|
<div class="col-6">
|
||||||
<div class="small">Connecté avec le compte :</div>
|
<select class="form-select" aria-label="Default select example" name="user_id">
|
||||||
<?php echo $_SESSION['user']['user_name'];?>
|
<option value="0">Choisir un utilisateur</option>
|
||||||
|
<?php
|
||||||
</div>
|
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrUserToDisplay'), 'user');
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="layoutSidenav_content">
|
|
||||||
<main>
|
|
||||||
<div class="container-fluid px-4">
|
|
||||||
<h1 class="mt-4">Dashboard</h1>
|
|
||||||
<div class="container-fluid px-4">
|
|
||||||
<!-- USER MODIF -->
|
|
||||||
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
|
||||||
<div class="container-fluid pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-4">
|
|
||||||
<img src="./assests/img/Logo-Wordmark.svg" alt="" width="100">
|
|
||||||
</div>
|
|
||||||
<div class="col-4">
|
|
||||||
<select class="form-select" aria-label="Default select example">
|
|
||||||
<option value="0" selected>Modifier le statut de l'Utilisateur...</option>
|
|
||||||
<?php
|
|
||||||
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrStatusToDisplay'), 'arrDetStatus');
|
|
||||||
$foreach0DoElse = true;
|
$foreach0DoElse = true;
|
||||||
foreach ($_from ?? [] as $_smarty_tpl->getVariable('arrDetStatus')->value) {
|
foreach ($_from ?? [] as $_smarty_tpl->getVariable('user')->value) {
|
||||||
$foreach0DoElse = false;
|
$foreach0DoElse = false;
|
||||||
?>
|
?>
|
||||||
<option value="<?php echo $_smarty_tpl->getValue('arrDetStatus')->getId();?>
|
<option value="<?php echo $_smarty_tpl->getValue('user')->getId();?>
|
||||||
"><?php echo $_smarty_tpl->getValue('arrDetStatus')->getStatusName();?>
|
"><?php echo $_smarty_tpl->getValue('user')->getName();?>
|
||||||
|
<?php echo $_smarty_tpl->getValue('user')->getFirstname();?>
|
||||||
</option>
|
</option>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
<select class="form-select" aria-label="Default select example" name="new_status">
|
||||||
<div class="col-4">
|
<option value="0" selected>Modifier le statut de l'Utilisateur...</option>
|
||||||
<button class="btn bg-danger text-light rounded-circle">X</button>
|
<?php
|
||||||
</div>
|
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrAuthorisationToDisplay'), 'arrDetAuthorisation');
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- catégorie modif -->
|
|
||||||
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
|
||||||
<form method="post">
|
|
||||||
<div class="container-fluid pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<select class="form-select" aria-label="Default select example">
|
|
||||||
<option value="0" selected >Modifier un catégorie existante</option>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrCategoryToDisplay'), 'arrDetCategory');
|
|
||||||
$foreach1DoElse = true;
|
$foreach1DoElse = true;
|
||||||
foreach ($_from ?? [] as $_smarty_tpl->getVariable('arrDetCategory')->value) {
|
foreach ($_from ?? [] as $_smarty_tpl->getVariable('arrDetAuthorisation')->value) {
|
||||||
$foreach1DoElse = false;
|
$foreach1DoElse = false;
|
||||||
?>
|
?>
|
||||||
<option value="<?php echo $_smarty_tpl->getValue('arrDetCategory')->getId();?>
|
<option value="<?php echo $_smarty_tpl->getValue('arrDetAuthorisation')->getId();?>
|
||||||
" >
|
"><?php echo $_smarty_tpl->getValue('arrDetAuthorisation')->getName();?>
|
||||||
<?php echo $_smarty_tpl->getValue('arrDetCategory')->getName();?>
|
</option>
|
||||||
|
<?php
|
||||||
</option>
|
|
||||||
<?php
|
|
||||||
}
|
}
|
||||||
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
||||||
</select>
|
</select>
|
||||||
<br>
|
</div>
|
||||||
<input type="text" class="form-control" id="floatingInput" name="edit_category">
|
<div class="col-2">
|
||||||
</div>
|
<button type="submit" name="action" value="update_status" class="btn bg-success text-light"> Valider</button>
|
||||||
<div class="col-2">
|
<button type="submit" name="action" value="delete_user" class="btn bg-danger text-light">Supprimer l'utilisateur</button>
|
||||||
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<div class="col-2">
|
</div>
|
||||||
<button class="btn bg-danger text-light rounded-circle">X</button>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- catégorie modif -->
|
||||||
|
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
||||||
|
<div class="container-fluid pt-2">
|
||||||
|
<h2>Gestion des catégories</h2>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6">
|
||||||
|
<form method="post">
|
||||||
|
<p>Modifier une catégorie existante</p>
|
||||||
|
<select class="form-select" aria-label="Default select example" name="id_to_edit">
|
||||||
|
<option value="0">Choix de la catégorie</option>
|
||||||
|
<?php
|
||||||
|
$_from = $_smarty_tpl->getSmarty()->getRuntime('Foreach')->init($_smarty_tpl, $_smarty_tpl->getValue('arrCategoryToDisplay'), 'category');
|
||||||
|
$foreach2DoElse = true;
|
||||||
|
foreach ($_from ?? [] as $_smarty_tpl->getVariable('category')->value) {
|
||||||
|
$foreach2DoElse = false;
|
||||||
|
?>
|
||||||
|
<option value="<?php echo $_smarty_tpl->getValue('category')->getId();?>
|
||||||
|
"><?php echo $_smarty_tpl->getValue('category')->getName();?>
|
||||||
|
</option>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
$_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
<div class="form-floating mb-3">
|
||||||
|
<input type="text" class="form-control" id="floatingInput" name="new_name">
|
||||||
|
<label for="floatingInput">Nouveau nom de la catégorie</label>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
||||||
<br>
|
</form>
|
||||||
<br>
|
<div>
|
||||||
<div class="row">
|
</div>
|
||||||
<!-- creation cat-->
|
<br>
|
||||||
<div class="col-6">
|
<br>
|
||||||
<label>Créer une nouvelle catégorie</label>
|
<div class="row">
|
||||||
<div class="form-floating mb-3">
|
<!-- creation cat-->
|
||||||
<input type="text" class="form-control" id="floatingInput" name="new_category">
|
<div class="col-6">
|
||||||
<label for="floatingInput">Créer une nouvelle catégorie</label>
|
<form method="POST">
|
||||||
</div>
|
<p>Créer une nouvelle catégorie</p>
|
||||||
</div>
|
<div class="form-floating mb-3">
|
||||||
<div class="col-2">
|
<input type="text" class="form-control" id="floatingInput" name="new_category">
|
||||||
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
<label for="floatingInput">Nom de la nouvelle catégorie</label>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-2">
|
||||||
</form>
|
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="small">Connecté avec le compte : <?php echo $_SESSION['user']['user_name'];?>
|
||||||
|
<?php echo $_SESSION['user']['user_firstname'];?>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<nav class="navbar navbar-expand-lg navbar-light">
|
<nav class="navbar navbar-expand-lg navbar-light">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
{* Logo *}
|
{* Logo *}
|
||||||
<a class="navbar-brand d-flex align-items-center" href="#">
|
<a class="navbar-brand d-flex align-items-center" href="index.php">
|
||||||
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
|
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="edit_account.php" title="Modifier mon compte" aria-label="Modifier mon compte">
|
<a class="nav-link" href="edit_account.php" title="Modifier mon compte" aria-label="Modifier mon compte">
|
||||||
<img src=".{$smarty.session.user.user_image}"
|
<img src="{$smarty.session.user.user_image}"
|
||||||
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
||||||
style="width: 36px; height: 36px; object-fit: cover;"
|
style="width: 36px; height: 36px; object-fit: cover;"
|
||||||
alt="Photo de profil">
|
alt="Photo de profil">
|
||||||
|
|
@ -90,4 +90,4 @@
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
<div class="d-flex align-items-start gap-3">
|
<div class="d-flex align-items-start gap-3">
|
||||||
|
|
||||||
{* PHOTO DE PROFIL *}
|
{* PHOTO DE PROFIL *}
|
||||||
<img src=".{$objProject->getUser_image()}"
|
<img src="{$objProject->getUser_image()}"
|
||||||
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
class="rounded-circle flex-shrink-0 mt-2 ml-5"
|
||||||
style="width: 48px; height: 48px; object-fit: cover;"
|
style="width: 48px; height: 48px; object-fit: cover;"
|
||||||
alt="Photo de profil">
|
alt="Photo de profil">
|
||||||
|
|
@ -26,13 +26,26 @@
|
||||||
|
|
||||||
<small class="text-body-secondary d-block mb-1">
|
<small class="text-body-secondary d-block mb-1">
|
||||||
<time>{$objProject->getCreation_date()}</time>
|
<time>{$objProject->getCreation_date()}</time>
|
||||||
– {$objProject->getCreatorname()}
|
–
|
||||||
|
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser()}"
|
||||||
|
class="text-decoration-none"
|
||||||
|
style="position: relative; z-index: 2;">
|
||||||
|
{$objProject->getCreatorname()}
|
||||||
|
</a>
|
||||||
</small>
|
</small>
|
||||||
|
|
||||||
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
|
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
|
||||||
class="stretched-link small">
|
class="stretched-link small">
|
||||||
Lire la suite →
|
Lire la suite →
|
||||||
</a>
|
</a>
|
||||||
|
{if isset($smarty.session.user)}
|
||||||
|
{if $smarty.session.user.user_id == $objProject->getUser()}
|
||||||
|
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
|
||||||
|
class="stretched-link small">
|
||||||
|
Editer
|
||||||
|
</a>
|
||||||
|
{/if}
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -50,4 +63,4 @@
|
||||||
{elseif $projectStatus eq "refusé"}
|
{elseif $projectStatus eq "refusé"}
|
||||||
<p class="text-danger fw-bold">Portfolio refusé</p>
|
<p class="text-danger fw-bold">Portfolio refusé</p>
|
||||||
{/if}
|
{/if}
|
||||||
</article>
|
</article>
|
||||||
|
|
|
||||||
227
views/admin.tpl
227
views/admin.tpl
|
|
@ -2,164 +2,89 @@
|
||||||
|
|
||||||
{block name="content"}
|
{block name="content"}
|
||||||
|
|
||||||
<section class="sb-nav-fixed">
|
<section>
|
||||||
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
|
<div id="layoutSidenav_content">
|
||||||
|
<div class="container-fluid px-4">
|
||||||
<a class="navbar-brand ps-3" href="index.php?ctrl=project&action=home"><img src="assests/img/Logo-Wordmark.svg" alt="Logo du site" width="150px"></a>
|
<h1 class="mt-4">Dashboard</h1>
|
||||||
<button class="btn btn-link btn-sm order-1 order-lg-0 me-4 me-lg-0" id="sidebarToggle" href="#!"><i class="fas fa-bars"></i></button>
|
<div class="container-fluid px-4">
|
||||||
<form class="d-none d-md-inline-block form-inline ms-auto me-0 me-md-3 my-2 my-md-0">
|
<!-- USER MODIF -->
|
||||||
<div class="input-group">
|
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
||||||
<input class="form-control" type="text" placeholder="Recherche par pseudo..." aria-label="Recherche pseudo" aria-describedby="btnNavbarSearch" />
|
<div class="container-fluid pt-2">
|
||||||
<button class="btn btn-primary" id="btnNavbarSearch" type="button"><i class="fas fa-search"></i></button>
|
<h2>Gestion de l'utilsateur</h2>
|
||||||
|
<p>Changer le statut ou supprimer un utilisateur</p>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2">
|
||||||
|
<img src="./assests/img/Logo-Wordmark.svg" alt="" width="100">
|
||||||
|
</div>
|
||||||
|
<form method="POST">
|
||||||
|
<div class="col-6">
|
||||||
|
<select class="form-select" aria-label="Default select example" name="user_id">
|
||||||
|
<option value="0">Choisir un utilisateur</option>
|
||||||
|
{foreach from=$arrUserToDisplay item=user}
|
||||||
|
<option value="{$user->getId()}">{$user->getName()} {$user->getFirstname()}</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
<select class="form-select" aria-label="Default select example" name="new_status">
|
||||||
|
<option value="0" selected>Modifier le statut de l'Utilisateur...</option>
|
||||||
|
{foreach from=$arrAuthorisationToDisplay item=arrDetAuthorisation}
|
||||||
|
<option value="{$arrDetAuthorisation->getId()}">{$arrDetAuthorisation->getName()}</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
<button type="submit" name="action" value="update_status" class="btn bg-success text-light"> Valider</button>
|
||||||
|
<button type="submit" name="action" value="delete_user" class="btn bg-danger text-light">Supprimer l'utilisateur</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
|
|
||||||
<!-- Navbar - User-->
|
|
||||||
<ul class="navbar-nav ms-auto ms-md-0 me-3 me-lg-4">
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a class="nav-link dropdown-toggle" id="navbarDropdown" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"><i class="fas fa-user fa-fw"></i></a>
|
|
||||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
|
|
||||||
<li><a class="dropdown-item" href="/option.php">Paramètre</a></li>
|
|
||||||
<li><hr class="dropdown-divider" /></li>
|
|
||||||
<li><a class="dropdown-item" href="/deconnexion.php">Déconnexion</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<!-- SideNav Infos -->
|
|
||||||
<div id="layoutSidenav">
|
|
||||||
<div id="layoutSidenav_nav">
|
|
||||||
<nav class="sb-sidenav accordion sb-sidenav-dark" id="sidenavAccordion">
|
|
||||||
<div class="sb-sidenav-menu">
|
|
||||||
<div class="nav">
|
|
||||||
<div class="sb-sidenav-menu-heading"></div>
|
|
||||||
<a class="nav-link" href="index.html">
|
|
||||||
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
|
|
||||||
Rafraichir la page
|
|
||||||
</a>
|
|
||||||
<div class="sb-sidenav-menu-heading"></div>
|
|
||||||
<div class="collapse" id="collapseLayouts" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordion">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form action="post">
|
|
||||||
<div class="container-fluid ps-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<label for="checkbox1">Par date</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 text-center">
|
|
||||||
<input type="checkbox" name="search_date" id="">
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<label for="checkbox2">Par date de creation de compte</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 text-center">
|
|
||||||
<input type="checkbox" name="search_creationdate" id="">
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<label for="checkbox3">Recherche par date</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 text-center">
|
|
||||||
<input type="checkbox" name="search_date" id="">
|
|
||||||
</div>
|
|
||||||
<div class="col-12 text-center">
|
|
||||||
<button type="submit" class="btn mt-3 bg-primary text-light">Recherche</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="sb-sidenav-footer">
|
|
||||||
<div class="small">Connecté avec le compte : {$smarty.session.user.user_name} {$smarty.session.user.user_firstname}</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div>
|
</div>
|
||||||
|
<!-- catégorie modif -->
|
||||||
<div id="layoutSidenav_content">
|
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
||||||
<main>
|
<div class="container-fluid pt-2">
|
||||||
<div class="container-fluid px-4">
|
<h2>Gestion des catégories</h2>
|
||||||
<h1 class="mt-4">Dashboard</h1>
|
<div class="row">
|
||||||
<div class="container-fluid px-4">
|
<div class="col-6">
|
||||||
<!-- USER MODIF -->
|
<form method="post">
|
||||||
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
<p>Modifier une catégorie existante</p>
|
||||||
<div class="container-fluid pt-2">
|
<select class="form-select" aria-label="Default select example" name="id_to_edit">
|
||||||
<h2>Gestion de l'utilsateur</h2>
|
<option value="0">Choix de la catégorie</option>
|
||||||
<p>Changer le statut ou supprimer un utilisateur</p>
|
{foreach from=$arrCategoryToDisplay item=category}
|
||||||
<div class="row">
|
<option value="{$category->getId()}">{$category->getName()}</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
<div class="form-floating mb-3">
|
||||||
|
<input type="text" class="form-control" id="floatingInput" name="new_name">
|
||||||
|
<label for="floatingInput">Nouveau nom de la catégorie</label>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
||||||
|
</form>
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div class="row">
|
||||||
|
<!-- creation cat-->
|
||||||
|
<div class="col-6">
|
||||||
|
<form method="POST">
|
||||||
|
<p>Créer une nouvelle catégorie</p>
|
||||||
|
<div class="form-floating mb-3">
|
||||||
|
<input type="text" class="form-control" id="floatingInput" name="new_category">
|
||||||
|
<label for="floatingInput">Nom de la nouvelle catégorie</label>
|
||||||
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<img src="./assests/img/Logo-Wordmark.svg" alt="" width="100">
|
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
||||||
</div>
|
</div>
|
||||||
<form method="POST">
|
</form>
|
||||||
<div class="col-6">
|
|
||||||
<select class="form-select" aria-label="Default select example" name="user_id">
|
|
||||||
<option value="0">Choisir un utilisateur</option>
|
|
||||||
{foreach from=$arrUserToDisplay item=user}
|
|
||||||
<option value="{$user->getId()}">{$user->getName()} {$user->getFirstname()}</option>
|
|
||||||
{/foreach}
|
|
||||||
</select>
|
|
||||||
<select class="form-select" aria-label="Default select example" name="new_status">
|
|
||||||
<option value="0" selected>Modifier le statut de l'Utilisateur...</option>
|
|
||||||
{foreach from=$arrAuthorisationToDisplay item=arrDetAuthorisation}
|
|
||||||
<option value="{$arrDetAuthorisation->getId()}">{$arrDetAuthorisation->getName()}</option>
|
|
||||||
{/foreach}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="col-2">
|
|
||||||
<button type="submit" name="action" value="update_status" class="btn bg-success text-light"> Valider</button>
|
|
||||||
<button type="submit" name="action" value="delete_user" class="btn bg-danger text-light">Supprimer l'utilisateur</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- catégorie modif -->
|
|
||||||
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
|
|
||||||
<div class="container-fluid pt-2">
|
|
||||||
<h2>Gestion des catégories</h2>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<form method="post">
|
|
||||||
<p>Modifier une catégorie existante</p>
|
|
||||||
<select class="form-select" aria-label="Default select example" name="id_to_edit">
|
|
||||||
<option value="0">Choix de la catégorie</option>
|
|
||||||
{foreach from=$arrCategoryToDisplay item=category}
|
|
||||||
<option value="{$category->getId()}">{$category->getName()}</option>
|
|
||||||
{/foreach}
|
|
||||||
</select>
|
|
||||||
<br>
|
|
||||||
<div class="form-floating mb-3">
|
|
||||||
<input type="text" class="form-control" id="floatingInput" name="new_name">
|
|
||||||
<label for="floatingInput">Nouveau nom de la catégorie</label>
|
|
||||||
</div>
|
|
||||||
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
|
||||||
</form>
|
|
||||||
<div>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<div class="row">
|
|
||||||
<!-- creation cat-->
|
|
||||||
<div class="col-6">
|
|
||||||
<form method="POST">
|
|
||||||
<p>Créer une nouvelle catégorie</p>
|
|
||||||
<div class="form-floating mb-3">
|
|
||||||
<input type="text" class="form-control" id="floatingInput" name="new_category">
|
|
||||||
<label for="floatingInput">Nom de la nouvelle catégorie</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-2">
|
|
||||||
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="small">Connecté avec le compte : {$smarty.session.user.user_name} {$smarty.session.user.user_firstname}
|
||||||
|
</section>
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<main class="container py-5">
|
<main class="container py-5">
|
||||||
|
|
||||||
<!-- Centrage horizontal du formulaire -->
|
<!-- Centrage horizontal du formulaire -->
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center position-relative">
|
||||||
<div class="col-12 col-md-10 col-lg-6">
|
<div class="col-12 col-md-10 col-lg-6">
|
||||||
|
|
||||||
<!-- Carte contenant le formulaire d'inscription -->
|
<!-- Carte contenant le formulaire d'inscription -->
|
||||||
|
|
@ -20,7 +20,13 @@
|
||||||
<p class="text-secondary mb-4">
|
<p class="text-secondary mb-4">
|
||||||
Créez votre compte utilisateur.
|
Créez votre compte utilisateur.
|
||||||
</p>
|
</p>
|
||||||
|
{if (isset($arrError) && count($arrError) > 0) }
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
{foreach $arrError as $strError}
|
||||||
|
<p>{$strError}</p>
|
||||||
|
{/foreach}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
<!-- Formulaire d'inscription -->
|
<!-- Formulaire d'inscription -->
|
||||||
<!-- Les données seront traitées côté serveur en PHP via la méthode POST -->
|
<!-- Les données seront traitées côté serveur en PHP via la méthode POST -->
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
|
|
@ -98,6 +104,19 @@
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
</div>
|
</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 -->
|
<!-- Champ optionnel : numéro de téléphone -->
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -58,11 +58,11 @@
|
||||||
<!-- Sidebar : informations du créateur -->
|
<!-- Sidebar : informations du créateur -->
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<div class="card text-center shadow-sm p-4">
|
<div class="card text-center shadow-sm p-4">
|
||||||
|
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser()}" class="text-decoration-none text-dark">
|
||||||
<img src=".{$objProject->getUser_image()}"
|
<img src="{$objProject->getUser_image()}"
|
||||||
class="rounded-circle mb-3 mx-auto"
|
class="rounded-circle mb-3 mx-auto"
|
||||||
style="width:100px;height:100px;object-fit:cover;">
|
style="width:100px;height:100px;object-fit:cover;">
|
||||||
|
</a>
|
||||||
<h5>{$objProject->getCreatorName()}</h5>
|
<h5>{$objProject->getCreatorName()}</h5>
|
||||||
|
|
||||||
<p class="text-muted small">
|
<p class="text-muted small">
|
||||||
41
views/user.tpl
Normal file
41
views/user.tpl
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
{extends file="views/layout.tpl"}
|
||||||
|
|
||||||
|
{block name="content"}
|
||||||
|
|
||||||
|
<section class="user-profile mb-5">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 text-center">
|
||||||
|
<img src="{$user->getImage()}" alt="Avatar de {$user->getPseudo()}" class="img-fluid rounded-circle mb-3" style="max-width: 200px">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<h1>{$user->getPseudo()}</h1>
|
||||||
|
<p class="text-muted">{$user->getMail()}</p>
|
||||||
|
|
||||||
|
{if $user->getWork()}
|
||||||
|
<p>{$user->getWork()}</p>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{if $user->getLocation()}
|
||||||
|
<p>{$user->getLocation()}</p>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<p class="mt-3">{$user->getDescription()}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2 class="mb-4 border-bottom pb-2">Les projets de {$user->getPseudo()}</h2>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
{if count($arrProjectToDisplay) > 0}
|
||||||
|
{foreach $arrProjectToDisplay as $objProject}
|
||||||
|
{include file="views/_partial/preview.tpl"}
|
||||||
|
{/foreach}
|
||||||
|
{else}
|
||||||
|
<p class="alert alert-info">Cet utilisateur n'a pas encore publié de projets.</p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{/block}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue