Fonctionnalité tri catégorie et date ok. Nettoyage du code et des commentaires de tous les models

This commit is contained in:
laura.chevillet 2026-02-10 11:23:29 +01:00
parent 3af2e8a056
commit 8ce49943dd
18 changed files with 381 additions and 116 deletions

View file

@ -24,8 +24,19 @@
public function home(){
$intCategory = 0;
if (!empty($_GET['filter_cat'])) {
$intCategory = (int) $_GET['filter_cat'];
}
$boolOld = false;
if (!empty($_GET['filter_old']) && $_GET['filter_old'] == 'true') {
$boolOld = true;
}
$objProjectModel = new ProjectModel;
$arrProject = $objProjectModel->findAll();
$arrProject = $objProjectModel->findAll(0,'',0,0,'','','',$intCategory,$boolOld);
$arrProjectToDisplay = array();
foreach($arrProject as $arrDetProject){
$objProject = new Project;
@ -34,8 +45,6 @@
}
$this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay;
$this->_display("home");
}
@ -43,8 +52,8 @@
/**
* Fonction d'affichage de la barre de recherche
*/
public function search(){
//Récupérer les informations du formulaire
$strKeywords = $_POST['keywords']??'';
$intAuthor = $_POST['author']??0;
@ -87,8 +96,6 @@
/**
* Fonction d'affichage de la page projet
*/
public function project (){
$objProjectModel = new ProjectModel;
@ -151,9 +158,9 @@
$objProjectModel->insert($objProject);
}
//Débuggage
/*Débuggage
var_dump($_SESSION);
var_dump($objProject);
var_dump($objProject);*/
$this->_arrData['arrProjectToDiplay'] = $arrProjectToDiplay;
$this->_arrData['arrImageToDiplay'] = $arrImageToDiplay;

View file

@ -17,7 +17,6 @@
* fonction de récupération des infos d'authorisation
* @return array
*/
public function findAllAuthorisation():array{
$strRq = "SELECT *

View file

@ -10,6 +10,7 @@
/**
* Fonction de récupération des catégories
* @param int $intLimit
* @return array
*/
@ -28,9 +29,8 @@
/**
* fonction d'insertion d'une nouvelle catégorie dans la bdd
* @param object $objCategory l'objet catégorie
* @return bool Est-ce que la requête s'est bien passée (true/false)
* @return bool Est-ce que la requête s'est bien passée
*/
public function insertCategory(object $objCategory):bool{
$strRq = "INSERT INTO category (category_name)
@ -47,9 +47,8 @@
/**
* fonction de suppression d'une catégorie dans la bdd
* @param object $objCategory l'objet catégorie
* @return bool Est-ce que la requête s'est bien passée (true/false)
* @return bool Est-ce que la requête s'est bien passée
*/
public function deleteCategory(object $objCategory):bool{
$strRq = "DELETE FROM category
@ -65,9 +64,8 @@
/**
* fonction de modification d'une catégorie dans la bdd
* @param object $objCategory l'objet catégorie
* @return bool Est-ce que la requête s'est bien passée (true/false)
* @return bool Est-ce que la requête s'est bien passée
*/
public function editCategory(object $objCategory):bool{
$strRq = "UPDATE category

View file

@ -11,6 +11,7 @@
/**
* Fonction de récupération des images
* @param int $intLimit
* @return array
*/

View file

@ -9,11 +9,16 @@
class ProjectModel extends Connect{
/**
* Fonction de recherche des projets
* @param type string, int et bool
* @return array
*/
public function findAll(int $intLimit=0, string $strKeywords='', int $intAuthor=0,
int $intPeriod=0, string $strDate='', string $strStartDate='',
string $strEndDate='', int $intCategory=0):array{
string $strEndDate='', int $intCategory=0, bool $bool6Months=false):array{
// Ecrire la requête
$strRq = "SELECT project.*,
CONCAT(user_firstname, ' ', user_name) AS 'project_creatorname',
user_image
@ -21,6 +26,7 @@
INNER JOIN users ON user_id = project_user";
$strWhere = " WHERE ";
// Recherche par mot clé
if ($strKeywords != '') {
$strRq .= " WHERE (project_title LIKE '%".$strKeywords."%'
@ -42,22 +48,24 @@
$strWhere = " AND ";
}
//recherche par ancienneté
if ($bool6Months === true) {
$strRq .= $strWhere . " project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH) ";
$strWhere = " AND ";
}
// Recherche par dates
if ($intPeriod == 0){
// Par date exacte
if ($strDate != ''){
$strRq .= $strWhere." project_creation_date = '".$strDate."'";
}
}else{
// Par période de dates
if ($strStartDate != '' && $strEndDate != ''){
$strRq .= $strWhere." project_creation_date BETWEEN '".$strStartDate."' AND '".$strEndDate."'";
}else{
if ($strStartDate != ''){
// A partir de
$strRq .= $strWhere." project_creation_date >= '".$strStartDate."'";
}else if ($strEndDate != ''){
// Avant le
$strRq .= $strWhere." project_creation_date <= '".$strEndDate."'";
}
}
@ -65,37 +73,39 @@
$strRq .= " ORDER BY project_creation_date DESC";
if ($intLimit > 0){
$strRq .= " LIMIT ".$intLimit;
}
// Lancer la requête et récupérer les résultats
return $this->_db->query($strRq)->fetchAll();
}
//Fonction d'insertion d'information dans la BDD (Repris de la partie BLOG vu en cours..)
/**
* Fonction d'insertion d'un nouveau projet dans la bdd
* @param object $objProject l'objet projet
* @return bool Est-ce que la requête s'est bien passée
*/
public function insert(object $objProject):bool{
//Construire la requête
$strRq = "INSERT INTO project (project_title, project_description, project_thumbnail, project_content, project_status, project_creation_date)
VALUES (:title, :description, :thumbnail, :content, :status, DATE(NOW()))";
// Préparer la requête
$rqPrep = $this->_db->prepare($strRq);
// Donne les informations
$rqPrep->bindValue(":title", $objProject->getTitle(), PDO::PARAM_STR);
$rqPrep->bindValue(":description", $objProject->getDescription(), PDO::PARAM_STR);
$rqPrep->bindValue(":thumbnail", $objProject->getThumbnail(), PDO::PARAM_STR);
$rqPrep->bindValue(":content", $objProject->getContent(), PDO::PARAM_STR);
$rqPrep->bindValue(":status", $objProject->getStatus(), PDO::PARAM_STR);
//Executer la requête
//var_dump($strRq);die;
//return $db->exec($strRq);
return $rqPrep->execute();
}
/**
* Fonction de recherche d'un seul projet
* @param int $intId
* @return
*/
public function findOne(int $intId) {
$strRq = "SELECT project.*,
CONCAT(users.user_firstname, ' ', users.user_name) AS 'project_creatorname',

View file

@ -5,46 +5,40 @@
/**
* Traitement des requêtes pour les utilisateurs
* @author : meilleurGroup
* @version : V0.5
*/
class UserModel extends Connect{
// Attributs
// Méthodes
public function __construct(){
parent::__construct();
}
/**
* Fonction de recherche des utilisateurs et leur niveau d'autorisation
* @return array
*/
public function findAllUsers():array{
// Ecrire la requête
$strRq = "SELECT user_id, user_firstname, user_name, user_image, user_status, authorisation_name
FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status
WHERE user_deleted_at IS NULL";
// Lancer la requête et récupérer les résultats
return $this->_db->query($strRq)->fetchAll();
}
/**
* Fonction de vérification des utilisateurs
* @param string $strMail
* @param string $strPwd
* @return array|bool
*/
public function verifUser(string $strMail, string $strPwd):array|bool{
// 2. Construire la requête
$strRq = "SELECT user_id, user_name, user_firstname, user_password, user_image, user_status, authorisation_name
FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status
WHERE user_mail = '".$strMail."'";
// Récupère mon utilisateur
// Executer la requête et récupérer les résultats
$arrUser = $this->_db->query($strRq)->fetch();
// Vérification du mot de passe haché
if (password_verify($strPwd, $arrUser['user_password'])){
// Renvoi l'utilisateur
unset($arrUser['user_password']); // on enlève le pwd
unset($arrUser['user_password']);
return $arrUser;
}else{
return false;
@ -54,17 +48,15 @@
/**
* Fonction d'insertion d'un utilisateur en BDD
* @param object $objUser L'objet utilisateur
* @return bool Est-ce que la requête s'est bien passée (true/false)
* @return bool Est-ce que la requête s'est bien passée
*/
public function insert(object $objUser):bool{
// 2. Construire la requête
$strRq = "INSERT INTO users (user_name, user_firstname, user_pseudo, user_mail, user_password, user_phone, user_work, user_location, user_description)
VALUES (:name, :firstname, :pseudo,:mail, :pwd, :phone, :work, :location,:description)";
// Préparer la requête
$rqPrep = $this->_db->prepare($strRq);
// Donne les informations
$rqPrep->bindValue(":name", $objUser->getName(), PDO::PARAM_STR);
$rqPrep->bindValue(":firstname", $objUser->getFirstname(), PDO::PARAM_STR);
$rqPrep->bindValue(":pseudo", $objUser->getPseudo(), PDO::PARAM_STR);
@ -78,9 +70,13 @@
return $rqPrep->execute();
}
/**
* Fonction de vérification de mail
* @param string $mail
* @return bool Est-ce que la requête s'est bien passée
*/
public function mailExists(string $mail): bool{
public function mailExists(string $mail): bool
{
$rq = $this->_db->prepare("SELECT 1 FROM users WHERE user_mail = :mail LIMIT 1");
$rq->bindValue(":mail", $mail);
$rq->execute();
@ -91,7 +87,7 @@
/**
* Fonction de changement de status d'un utilisateur
* @param object $objUser L'objet utilisateur
* @return bool Est-ce que la requête s'est bien passée (true/false)
* @return bool Est-ce que la requête s'est bien passée
*/
public function editStatus(object $objUser):bool{
@ -109,7 +105,7 @@
/**
* Fonction permettant de supprimer un utilisateur avec une date de suppression
* @param int $intId L'identifiant de l'utilisateur
* @return bool Est-ce que la requête s'est bien passée (true/false)
* @return bool Est-ce que la requête s'est bien passée
*/
public function delete_soft(int $intId):bool{

View file

@ -0,0 +1,110 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-10 08:17:39
from 'file:views/project.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_698ae9a3ee5104_18468093',
'has_nocache_code' => false,
'file_dependency' =>
array (
'3309f8a981537e6cbbf8869c67d6dd307aa06ae3' =>
array (
0 => 'views/project.tpl',
1 => 1770634036,
2 => 'file',
),
),
'includes' =>
array (
'file:../app/views/partials/preview.tpl' => 1,
),
))) {
function content_698ae9a3ee5104_18468093 (\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_2126029828698ae9a3edc808_29541958', "content");
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_2126029828698ae9a3edc808_29541958 extends \Smarty\Runtime\Block
{
public function callBlock(\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
?>
<body>
<section class="container mt-5 p-5 d-flex flex-column align-items-center">
<div>
<h2>Alimenter votre projet</h2>
<form method="post">
<button type="submit" class="btn btn-primary btn-lg" name="showForm">+</button>
<?php if ((true && (true && null !== ($_POST['toContinue'] ?? null)))) {?>
<button type="submit" class="btn btn-warning btn-lg" name="showFormContinue">Reprendre</button>
<?php }?>
</form>
<?php if ((true && (true && null !== ($_POST['showForm'] ?? null))) || (true && (true && null !== ($_POST['showFormContinue'] ?? null)))) {?>
<form method="post" enctype="multipart/form-data" onsubmit="return confirm('Voulez-vous vraiment envoyer le formulaire ?')">
<div>
<label>Titre</label>
<input type="text" name="titleProject">
</div>
<div>
<label>Description</label>
<input type="text" name="descProject">
</div>
<div>
<label>Texte Portfolio</label>
<input type="text" name="textProject">
</div>
<div>
<input name="imageProject" class="form-control" type="file">
</div>
<button type="submit" class="btn btn-primary btn-md" name="sendMessage">Envoyer</button>
<button type="submit" class="btn btn-warning btn-md" name="toContinue">Remettre à plus tard</button>
</form>
<?php }?>
</div>
<div>
<h3>Description</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div>
<h3>Photos behind the scene</h3>
<div class="row mb-2">
<img>
</div>
</div>
<div>
<h3>Other projects</h3>
<div class="row mb-2">
<?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:../app/views/partials/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);?>
</div>
</div>
</div>
<section>
</body>
<?php
}
}
/* {/block "content"} */
}

View file

@ -0,0 +1,128 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-10 08:16:16
from 'file:views/projet_display.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_698ae9506da109_21542800',
'has_nocache_code' => false,
'file_dependency' =>
array (
'52c011ce77c5dc743b6591550c55ce4a78a4dbca' =>
array (
0 => 'views/projet_display.tpl',
1 => 1770634036,
2 => 'file',
),
),
'includes' =>
array (
),
))) {
function content_698ae9506da109_21542800 (\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_919254056698ae95061e435_82964089', "content");
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_919254056698ae95061e435_82964089 extends \Smarty\Runtime\Block
{
public function callBlock(\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\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">
<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;">
<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"} */
}

View file

@ -1,11 +1,11 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 14:54:13
/* Smarty version 5.7.0, created on 2026-02-10 08:16:41
from 'file:views/login.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f5152cc653_86103445',
'unifunc' => 'content_698ae969a7db02_27363144',
'has_nocache_code' => false,
'file_dependency' =>
array (
@ -20,18 +20,18 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array (
),
))) {
function content_6989f5152cc653_86103445 (\Smarty\Template $_smarty_tpl) {
function content_698ae969a7db02_27363144 (\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_15010700106989f5152c2920_08155243', "content");
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_342031104698ae969942f96_18698715', "content");
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_15010700106989f5152c2920_08155243 extends \Smarty\Runtime\Block
class Block_342031104698ae969942f96_18698715 extends \Smarty\Runtime\Block
{
public function callBlock(\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';

View file

@ -1,11 +1,11 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 15:02:29
/* Smarty version 5.7.0, created on 2026-02-10 08:32:47
from 'file:views/layout.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f7051730f9_04925440',
'unifunc' => 'content_698aed2fd402f7_78850375',
'has_nocache_code' => false,
'file_dependency' =>
array (
@ -22,21 +22,21 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'file:views/_partial/footer.tpl' => 1,
),
))) {
function content_6989f7051730f9_04925440 (\Smarty\Template $_smarty_tpl) {
function content_698aed2fd402f7_78850375 (\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
$_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);
?>
<?php
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_15212756776989f70516f3e1_13586621', "content");
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_691069574698aed2fd3d8f8_28027733', "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);
}
/* {block "content"} */
class Block_15212756776989f70516f3e1_13586621 extends \Smarty\Runtime\Block
class Block_691069574698aed2fd3d8f8_28027733 extends \Smarty\Runtime\Block
{
public function callBlock(\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';

View file

@ -1,18 +1,18 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 15:02:28
/* Smarty version 5.7.0, created on 2026-02-10 08:32:47
from 'file:views/admin.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f704df71e4_04792390',
'unifunc' => 'content_698aed2fac7079_66630300',
'has_nocache_code' => false,
'file_dependency' =>
array (
'ac77f39f91cdf26a0eb3f0963ead4008a7bda8fb' =>
array (
0 => 'views/admin.tpl',
1 => 1770649348,
1 => 1770712365,
2 => 'file',
),
),
@ -20,18 +20,18 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array (
),
))) {
function content_6989f704df71e4_04792390 (\Smarty\Template $_smarty_tpl) {
function content_698aed2fac7079_66630300 (\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_3881550706989f704ddce33_55904583', "content");
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_701047722698aed2faa98f9_91663021', "content");
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_3881550706989f704ddce33_55904583 extends \Smarty\Runtime\Block
class Block_701047722698aed2faa98f9_91663021 extends \Smarty\Runtime\Block
{
public function callBlock(\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
@ -123,12 +123,14 @@ $_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
<!-- 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">
<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-4">
<div class="col-6">
<select class="form-select" aria-label="Default select example" name="user_id">
<option value="0">Choisir un utilisateur</option>
<?php
@ -172,11 +174,13 @@ $_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
<!-- 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">Modifier un catégorie existante</option>
<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;
@ -191,7 +195,10 @@ $foreach2DoElse = false;
$_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>
<button type="submit" class="btn bg-success text-light rounded-circle"> </button>
</form>
<div>
@ -205,7 +212,7 @@ $_smarty_tpl->getSmarty()->getRuntime('Foreach')->restore($_smarty_tpl, 1);?>
<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">Créer une nouvelle catégorie</label>
<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>

View file

@ -1,11 +1,11 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 15:02:29
/* Smarty version 5.7.0, created on 2026-02-10 08:32:47
from 'file:views/_partial/footer.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f705319402_84731853',
'unifunc' => 'content_698aed2fea7fd1_77495932',
'has_nocache_code' => false,
'file_dependency' =>
array (
@ -20,7 +20,7 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array (
),
))) {
function content_6989f705319402_84731853 (\Smarty\Template $_smarty_tpl) {
function content_698aed2fea7fd1_77495932 (\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views\\_partial';
?>
<footer class="footer container-fluid d-flex justify-content-around">

View file

@ -1,11 +1,11 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 15:02:29
/* Smarty version 5.7.0, created on 2026-02-10 08:32:47
from 'file:views/_partial/header.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f705231fa9_63622618',
'unifunc' => 'content_698aed2fe0e338_92194390',
'has_nocache_code' => false,
'file_dependency' =>
array (
@ -20,7 +20,7 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array (
),
))) {
function content_6989f705231fa9_63622618 (\Smarty\Template $_smarty_tpl) {
function content_698aed2fe0e338_92194390 (\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views\\_partial';
?><!DOCTYPE html>
<html lang="fr">

View file

@ -1,11 +1,11 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 14:54:18
/* Smarty version 5.7.0, created on 2026-02-10 08:16:45
from 'file:views/_partial/preview.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f51a5fd501_76959549',
'unifunc' => 'content_698ae96d52fa95_22666517',
'has_nocache_code' => false,
'file_dependency' =>
array (
@ -20,7 +20,7 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array (
),
))) {
function content_6989f51a5fd501_76959549 (\Smarty\Template $_smarty_tpl) {
function content_698ae96d52fa95_22666517 (\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views\\_partial';
?>

View file

@ -1,18 +1,18 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 14:54:18
/* Smarty version 5.7.0, created on 2026-02-10 08:16:45
from 'file:views/home.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f51a3af749_66573336',
'unifunc' => 'content_698ae96d2e58d9_91616548',
'has_nocache_code' => false,
'file_dependency' =>
array (
'ca790de9f8d5a4fc03b03b8d137ec1edb99bdd92' =>
array (
0 => 'views/home.tpl',
1 => 1770639710,
1 => 1770711346,
2 => 'file',
),
),
@ -21,20 +21,20 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'file:views/_partial/preview.tpl' => 1,
),
))) {
function content_6989f51a3af749_66573336 (\Smarty\Template $_smarty_tpl) {
function content_698ae96d2e58d9_91616548 (\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_17367792036989f51a3abb88_04857391', "content");
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_826938963698ae96d2e14b1_12340515', "content");
?>
<?php $_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_17367792036989f51a3abb88_04857391 extends \Smarty\Runtime\Block
class Block_826938963698ae96d2e14b1_12340515 extends \Smarty\Runtime\Block
{
public function callBlock(\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
@ -48,16 +48,17 @@ $_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';
directement en contact avec les entreprises.</p>
</section>
<!--filtres de "recherche"-->
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
<div>
<form method="GET">
<button type="submit" class="btn btn-primary" value="">catégorie 1</button>
<button type="submit" class="btn btn-primary" value="">catégorie 2</button>
<button type="submit" class="btn btn-primary" value="">Plus de 6 mois</button>
<button type="reset" class="btn btn-primary" value="">Tout</button>
<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>
</div>
</section>
<section class="container" aria-label="Articles récents">

View file

@ -1,11 +1,11 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-09 14:54:09
/* Smarty version 5.7.0, created on 2026-02-10 07:13:04
from 'file:views/search.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_6989f51198b742_67072597',
'unifunc' => 'content_698ada80e47fc8_23614044',
'has_nocache_code' => false,
'file_dependency' =>
array (
@ -21,18 +21,18 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'file:views/_partial/preview.tpl' => 1,
),
))) {
function content_6989f51198b742_67072597 (\Smarty\Template $_smarty_tpl) {
function content_698ada80e47fc8_23614044 (\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_2211957246989f511978f29_13934431', "content");
$_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_1614324265698ada80a61e02_00521357', "content");
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_2211957246989f511978f29_13934431 extends \Smarty\Runtime\Block
class Block_1614324265698ada80a61e02_00521357 extends \Smarty\Runtime\Block
{
public function callBlock(\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'C:\\wamp64\\www\\DWWM_2025\\projet2\\views';

View file

@ -85,12 +85,14 @@
<!-- 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">
<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-4">
<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}
@ -115,17 +117,22 @@
<!-- 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">Modifier un catégorie existante</option>
<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>
@ -139,7 +146,7 @@
<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">Créer une nouvelle catégorie</label>
<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>

View file

@ -9,16 +9,17 @@
directement en contact avec les entreprises.</p>
</section>
<!--filtres de "recherche"-->
<section class="container mt-5 p-5 d-flex flex-column align-items-center text-center">
<div>
<form method="GET">
<button type="submit" class="btn btn-primary" value="">catégorie 1</button>
<button type="submit" class="btn btn-primary" value="">catégorie 2</button>
<button type="submit" class="btn btn-primary" value="">Plus de 6 mois</button>
<button type="reset" class="btn btn-primary" value="">Tout</button>
<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>
</div>
</section>
<section class="container" aria-label="Articles récents">