Merge pull request #20 from Yasder5/yass

Yass
This commit is contained in:
Yass 2026-02-16 20:21:11 +01:00 committed by GitHub
commit 46bc4952dc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 213 additions and 402 deletions

View file

@ -1,6 +1,9 @@
*{
margin: 0;
padding: 0;
}
body { body {
background-color: #f5f5f5; background-color: #f5f5f5;
padding: 2px;
} }
.navbar { .navbar {

View file

@ -1,18 +1,18 @@
<?php <?php
/* Smarty version 5.7.0, created on 2026-02-11 20:36:23 /* Smarty version 5.7.0, created on 2026-02-14 17:35:37
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_698ce8475ca6c5_70769879', 'unifunc' => 'content_6990b269ccba39_37501247',
'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 => 1770721453, 1 => 1771010187,
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_698ce8475ca6c5_70769879 (\Smarty\Template $_smarty_tpl) { function content_6990b269ccba39_37501247 (\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_1240817329698ce8475c5f82_37934128', "content"); $_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_11076089026990b269cc7970_84790211', "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_1240817329698ce8475c5f82_37934128 extends \Smarty\Runtime\Block class Block_11076089026990b269cc7970_84790211 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';
@ -61,7 +61,7 @@ $_smarty_current_dir = 'D:\\projetphp\\views';
</div> </div>
</section> </section>
<section class="container" aria-label="Articles récents"> <section class="container-fluid" 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">

View file

@ -1,11 +1,11 @@
<?php <?php
/* Smarty version 5.7.0, created on 2026-02-11 20:36:30 /* Smarty version 5.7.0, created on 2026-02-14 17:35:40
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_698ce84e84dcc1_11117501', 'unifunc' => 'content_6990b26c1e79e7_73815255',
'has_nocache_code' => false, 'has_nocache_code' => false,
'file_dependency' => 'file_dependency' =>
array ( array (
@ -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_698ce84e84dcc1_11117501 (\Smarty\Template $_smarty_tpl) { function content_6990b26c1e79e7_73815255 (\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_2114043754698ce84e84c177_54195501', "content"); $_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_2132004286990b26c1e59d6_94176803', "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_2114043754698ce84e84c177_54195501 extends \Smarty\Runtime\Block class Block_2132004286990b26c1e59d6_94176803 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';

View file

@ -1,18 +1,18 @@
<?php <?php
/* Smarty version 5.7.0, created on 2026-02-11 20:36:30 /* Smarty version 5.7.0, created on 2026-02-14 17:35:40
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_698ce84e9b1e51_40033913', 'unifunc' => 'content_6990b26c437982_38235756',
'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 => 1770649781, 1 => 1771090184,
2 => 'file', 2 => 'file',
), ),
), ),
@ -20,10 +20,10 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array ( array (
), ),
))) { ))) {
function content_698ce84e9b1e51_40033913 (\Smarty\Template $_smarty_tpl) { function content_6990b26c437982_38235756 (\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 mt-auto">
<div class="col-3"> <div class="col-3">
<ul> <ul>
<li><a href="#">Découvrir</a> <li><a href="#">Découvrir</a>

View file

@ -1,129 +0,0 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-11 20:35:30
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_698ce812246388_58459261',
'has_nocache_code' => false,
'file_dependency' =>
array (
'4c2b74d2d77abca5363ffd92e8bc3a455c22b1bd' =>
array (
0 => 'views/project_display.tpl',
1 => 1770842115,
2 => 'file',
),
),
'includes' =>
array (
),
))) {
function content_698ce812246388_58459261 (\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_1262370430698ce812236879_45885506', "content");
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_1262370430698ce812236879_45885506 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_id();?>
" 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"} */
}

View file

@ -1,18 +1,18 @@
<?php <?php
/* Smarty version 5.7.0, created on 2026-02-11 20:36:23 /* Smarty version 5.7.0, created on 2026-02-14 17:35:40
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_698ce8478dbef1_65073741', 'unifunc' => 'content_6990b26c2fd501_13041464',
'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 => 1770841277, 1 => 1771011101,
2 => 'file', 2 => 'file',
), ),
), ),
@ -20,78 +20,94 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array ( array (
), ),
))) { ))) {
function content_698ce8478dbef1_65073741 (\Smarty\Template $_smarty_tpl) { function content_6990b26c2fd501_13041464 (\Smarty\Template $_smarty_tpl) {
$_smarty_current_dir = 'D:\\projetphp\\views\\_partial'; $_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
?> ?><article class="col-md-3 mb-5 <?php if ((true && (true && null !== ($_SESSION['user'] ?? null))) && $_SESSION['user']['user_status'] == 2) {?> pb-5 <?php }?>" style="border-radius: 100px ;">
<div class="card h-100 shadow article-card rounded-4" style="border-width: 2px; overflow: hidden;">
<article class="col-md-3 mb-5 <?php if ((true && (true && null !== ($_SESSION['user'] ?? null))) && $_SESSION['user']['user_status'] == 2) {?> pb-5 <?php }?>">
<div class="card h-100 shadow-sm article-card">
<div class="ratio ratio-16x9"> <div class="ratio ratio-4x3">
<img src=".<?php echo $_smarty_tpl->getValue('objProject')->getThumbnail();?> <img src=".<?php echo $_smarty_tpl->getValue('objProject')->getThumbnail();?>
" "
class="w-100 h-100 object-fit-cover" class="w-100 h-100 object-fit-cover"
alt="" alt=""
loading="lazy"> loading="lazy">
</div> </div>
<div class="d-flex align-items-start gap-3"> <div class="card-body p-3 bg-light">
<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 border border-2 border-white"
style="width: 48px; height: 48px; object-fit: cover;" style="width: 64px; height: 64px; object-fit: cover; margin-top: 8px;"
alt="Photo de profil"> alt="Photo de profil">
<div class="flex-grow-1 card-body p-3"> <div class="flex-grow-1">
<h3 class="h6 mb-1"><?php echo $_smarty_tpl->getValue('objProject')->getTitle();?> <h3 class="h6 fw-bold mb-2 mt-1"><?php echo $_smarty_tpl->getValue('objProject')->getTitle();?>
</h3> </h3>
<p class="small text-muted mb-1">
<small class="text-body-secondary d-block mb-1"> <i class="bi bi-person"></i>
<time><?php echo $_smarty_tpl->getValue('objProject')->getCreation_date();?> <a href="index.php?ctrl=user&action=user&id=<?php echo $_smarty_tpl->getValue('objProject')->getUser_id();?>
</time>
<a href="index.php?ctrl=user&action=user&id=<?php echo $_smarty_tpl->getValue('objProject')->getUser_id();?>
" "
class="text-decoration-none" class="text-decoration-none text-muted"
style="position: relative; z-index: 2;"> style="position: relative; z-index: 2;">
<?php echo $_smarty_tpl->getValue('objProject')->getCreatorname();?> <?php echo $_smarty_tpl->getValue('objProject')->getCreatorname();?>
</a> </a>
</small> </p>
<p class="small text-muted mb-0">
<a href="index.php?ctrl=project&action=display&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?> <i class="bi bi-geo-alt"></i> Colmar
</p>
</div>
</div>
<div class="d-flex justify-content-between align-items-center mt-3">
<small class="text-muted">
<i class="bi bi-clock"></i> <time><?php echo $_smarty_tpl->getValue('objProject')->getCreation_date();?>
</time>
</small>
<?php if ($_smarty_tpl->getValue('objProject')->getStatus() != "refusé") {?>
<a href="index.php?ctrl=project&action=display&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
" "
class="stretched-link small"> class="btn btn-sm btn-primary">
Lire la suite Voir
</a> </a>
<?php if ((true && (true && null !== ($_SESSION['user'] ?? null)))) {?>
<?php if ($_SESSION['user']['user_id'] == $_smarty_tpl->getValue('objProject')->getUser_id()) {?>
<a href="index.php?ctrl=project&action=display&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
"
class="stretched-link small">
Editer
</a>
<?php }?>
<?php }?> <?php }?>
</div> </div>
</div> <?php if ((true && (true && null !== ($_SESSION['user'] ?? null)))) {?>
<?php if ($_SESSION['user']['user_id'] == $_smarty_tpl->getValue('objProject')->getUser_id()) {?>
<a href="index.php?ctrl=project&action=display&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
"
class="btn btn-sm btn-outline-secondary mt-2 w-100"
style="position: relative; z-index: 2;">
Editer
</a>
<?php }?>
<?php }?>
</div>
<?php if ((true && (true && null !== ($_SESSION['user'] ?? null))) && $_SESSION['user']['user_status'] == 2 && $_smarty_tpl->getValue('objProject')->getStatus() == "en_attente") {?>
<div class="card-footer bg-white border-top-0 p-2">
<div class="d-flex gap-2">
<a class="btn btn-sm btn-success flex-fill"
href="?ctrl=project&action=accept&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
"
name="toPublished">Accepter</a>
<a class="btn btn-sm btn-warning flex-fill"
href="?ctrl=project&action=refuse&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
"
name="toRefused">Refuser</a>
<a class="btn btn-sm btn-danger flex-fill"
href="?ctrl=project&action=delete&id=<?php echo $_smarty_tpl->getValue('objProject')->getId();?>
"
name="toDelete">Supprimer</a>
</div>
</div>
<?php } elseif ($_smarty_tpl->getValue('objProject')->getStatus() == "refusé") {?>
<div class="card-footer bg-white border-top-0 p-2">
<p class="text-danger fw-bold text-center mb-0 small">Portfolio refusé</p>
</div>
<?php }?>
</div> </div>
<?php if ((true && (true && null !== ($_SESSION['user'] ?? null))) && $_SESSION['user']['user_status'] == 2 && $_smarty_tpl->getValue('objProject')->getStatus() == "en_attente") {?> </article><?php }
<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 }
} }

View file

@ -1,11 +1,11 @@
<?php <?php
/* Smarty version 5.7.0, created on 2026-02-11 20:35:23 /* Smarty version 5.7.0, created on 2026-02-14 17:35:40
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_698ce80be447b2_73034229', 'unifunc' => 'content_6990b26c035cd6_15007530',
'has_nocache_code' => false, 'has_nocache_code' => false,
'file_dependency' => 'file_dependency' =>
array ( array (
@ -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_698ce80be447b2_73034229 (\Smarty\Template $_smarty_tpl) { function content_6990b26c035cd6_15007530 (\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_977268380698ce80be327a4_02425845', "content"); $_smarty_tpl->getInheritance()->instanceBlock($_smarty_tpl, 'Block_19164984906990b26c022a65_59433489', "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_977268380698ce80be327a4_02425845 extends \Smarty\Runtime\Block class Block_19164984906990b26c022a65_59433489 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';

View file

@ -1,18 +1,18 @@
<?php <?php
/* Smarty version 5.7.0, created on 2026-02-11 20:36:30 /* Smarty version 5.7.0, created on 2026-02-14 17:35:40
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_698ce84e8f9ec8_97257315', 'unifunc' => 'content_6990b26c2637b7_83238687',
'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 => 1770842181, 1 => 1771090171,
2 => 'file', 2 => 'file',
), ),
), ),
@ -20,7 +20,7 @@ if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
array ( array (
), ),
))) { ))) {
function content_698ce84e8f9ec8_97257315 (\Smarty\Template $_smarty_tpl) { function content_6990b26c2637b7_83238687 (\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">
@ -35,7 +35,7 @@ $_smarty_current_dir = 'D:\\projetphp\\views\\_partial';
> >
<title>Folliow</title> <title>Folliow</title>
</head> </head>
<body> <body class="d-flex flex-column min-vh-100">
<nav class="navbar navbar-expand-lg navbar-light"> <nav class="navbar navbar-expand-lg navbar-light">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand d-flex align-items-center" href="index.php"> <a class="navbar-brand d-flex align-items-center" href="index.php">

View file

@ -1,98 +0,0 @@
<?php
/* Smarty version 5.7.0, created on 2026-02-11 20:35:28
from 'file:views/user.tpl' */
/* @var \Smarty\Template $_smarty_tpl */
if ($_smarty_tpl->getCompiled()->isFresh($_smarty_tpl, array (
'version' => '5.7.0',
'unifunc' => 'content_698ce81087b505_07608517',
'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_698ce81087b505_07608517 (\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_323782649698ce81086ce17_81897685', "content");
$_smarty_tpl->getInheritance()->endChild($_smarty_tpl, "views/layout.tpl", $_smarty_current_dir);
}
/* {block "content"} */
class Block_323782649698ce81086ce17_81897685 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"} */
}

View file

@ -1,5 +1,5 @@
<footer class="footer container-fluid d-flex justify-content-around"> <footer class="footer container-fluid d-flex justify-content-around mt-auto">
<div class="col-3"> <div class="col-3">
<ul> <ul>
<li><a href="#">Découvrir</a> <li><a href="#">Découvrir</a>

View file

@ -9,7 +9,7 @@
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script> <script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
<title>Folliow</title> <title>Folliow</title>
</head> </head>
<body> <body class="d-flex flex-column min-vh-100">
<nav class="navbar navbar-expand-lg navbar-light"> <nav class="navbar navbar-expand-lg navbar-light">
<div class="container-fluid"> <div class="container-fluid">
{* Logo *} {* Logo *}

View file

@ -1,69 +1,84 @@
<article class="col-md-3 mb-5 {if isset($smarty.session.user) and $smarty.session.user.user_status == 2} pb-5 {/if}" style="border-radius: 100px ;">
<div class="card h-100 shadow article-card rounded-4" style="border-width: 2px; overflow: hidden;">
<article class="col-md-3 mb-5 {if isset($smarty.session.user) and $smarty.session.user.user_status == 2} pb-5 {/if}">
<div class="card h-100 shadow-sm article-card">
{* IMAGE (80%) *} {* IMAGE (partie supérieure - plus grande) *}
<div class="ratio ratio-16x9"> <div class="ratio ratio-4x3">
<img src=".{$objProject->getThumbnail()}" <img src=".{$objProject->getThumbnail()}"
class="w-100 h-100 object-fit-cover" class="w-100 h-100 object-fit-cover"
alt="" alt=""
loading="lazy"> loading="lazy">
</div> </div>
<div class="d-flex align-items-start gap-3"> {* CONTENU (photo profil + infos) *}
<div class="card-body p-3 bg-light">
{* PHOTO DE PROFIL *} <div class="d-flex align-items-start gap-3">
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}" {* PHOTO DE PROFIL (cercle à gauche - plus grand) *}
class="text-decoration-none" > <img src="{$objProject->getUser_image()}"
<img src="{$objProject->getUser_image()|default:'default_avatar.jpg'}" class="rounded-circle flex-shrink-0 border border-2 border-white"
class="rounded-circle flex-shrink-0 mt-2 ml-5" style="width: 64px; height: 64px; object-fit: cover; margin-top: 8px;"
style="width: 48px; height: 48px; object-fit: cover;" alt="Photo de profil">
alt="Photo de profil">
{* INFOS À DROITE *}
<div class="flex-grow-1">
{* INFOS *} <h3 class="h6 fw-bold mb-2 mt-1">{$objProject->getTitle()}</h3>
<div class="flex-grow-1 card-body p-3"> <p class="small text-muted mb-1">
<h3 class="h6 mb-1">{$objProject->getTitle()}</h3> <i class="bi bi-person"></i>
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}"
<small class="text-body-secondary d-block mb-1"> class="text-decoration-none text-muted"
<time>{$objProject->getCreation_date()}</time> style="position: relative; z-index: 2;">
{$objProject->getCreatorname()}
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}" </a>
class="text-decoration-none" </p>
style="position: relative; z-index: 2;"> <p class="small text-muted mb-0">
{$objProject->getCreatorname()} <i class="bi bi-geo-alt"></i> Colmar
</a> </p>
</small> </div>
</div>
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
class="stretched-link small"> <div class="d-flex justify-content-between align-items-center mt-3">
Lire la suite → <small class="text-muted">
</a> <i class="bi bi-clock"></i> <time>{$objProject->getCreation_date()}</time>
{if isset($smarty.session.user)} </small>
{if $smarty.session.user.user_id == $objProject->getUser_id()} {if $objProject->getStatus() != "refusé"}
<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="btn btn-sm btn-primary">
Editer Voir →
</a> </a>
{/if}
{/if} {/if}
</div> </div>
</div> {if isset($smarty.session.user)}
{if $smarty.session.user.user_id == $objProject->getUser_id()}
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
class="btn btn-sm btn-outline-secondary mt-2 w-100"
style="position: relative; z-index: 2;">
Editer
</a>
{/if}
{/if}
</div>
{* BOUTONS EN BAS *}
{if isset($smarty.session.user)
and $smarty.session.user.user_status == 2
and $objProject->getStatus() == "en_attente"}
<div class="card-footer bg-white border-top-0 p-2">
<div class="d-flex gap-2">
<a class="btn btn-sm btn-success flex-fill"
href="?ctrl=project&action=accept&id={$objProject->getId()}"
name="toPublished">Accepter</a>
<a class="btn btn-sm btn-warning flex-fill"
href="?ctrl=project&action=refuse&id={$objProject->getId()}"
name="toRefused">Refuser</a>
<a class="btn btn-sm btn-danger flex-fill"
href="?ctrl=project&action=delete&id={$objProject->getId()}"
name="toDelete">Supprimer</a>
</div>
</div>
{elseif $objProject->getStatus() == "refusé"}
<div class="card-footer bg-white border-top-0 p-2">
<p class="text-danger fw-bold text-center mb-0 small">Portfolio refusé</p>
</div>
{/if}
</div> </div>
{*Controle de l'utilisateur ainsi que du status du projet*} </article>
{if isset($smarty.session.user)
and $smarty.session.user.user_status == 2
and $objProject->getStatus() eq "en_attente"}
<div class="border rounded text-center">
<a class="btn btn-sm m-1 btn-success" href="?ctrl=project&action=accept&id={$objProject->getId()}" name="toPublished">Accepter</a>
<a class="btn btn-sm m-1 btn-warning" href="?ctrl=project&action=refuse&id={$objProject->getId()}" name="toRefused">Refuser</a>
<a class="btn btn-sm m-1 btn-danger" href="?ctrl=project&action=delete&id={$objProject->getId()}" name="toDelete">Supprimer</a>
</div>
{elseif $projectStatus eq "refusé"}
<p class="text-danger fw-bold">Portfolio refusé</p>
{/if}
</article>

View file

@ -22,7 +22,7 @@
</div> </div>
</section> </section>
<section class="container" aria-label="Articles récents"> <section class="container-fluid" 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">

View file

@ -2,24 +2,28 @@
{block name="content"} {block name="content"}
<section class="user-profile mb-5"> <section class="user-profile mb-5 mt-5/*vh /*">
<div class="row"> <div class="row">
<div class="col-md-4 text-center"> <div class="col-md-4 text-center">
<img src="{$user->getImage()|default:'assests/img/default_avatar.jpg'}" alt="Avatar de {$user->getPseudo()}" class="img-fluid rounded-circle mb-3" style="max-width: 200px"> <img src="{$user->getImage()}" alt="Avatar de {$user->getPseudo()}" class="rounded-circle flex-shrink-0 border border-2 border-white"
style="width: 256px; height: 256px; object-fit: cover; margin-top: 8px;"
>
</div> </div>
<div class="col-md-8"> <div class="col-md-8 d-flex align-items-center">
<h1>{$user->getPseudo()}</h1> <div>
<p class="text-muted">{$user->getMail()}</p> <h1>{$user->getPseudo()}</h1>
<p class="text-muted">{$user->getMail()}</p>
{if $user->getWork()}
<p>{$user->getWork()}</p> {if $user->getWork()}
{/if} <p>{$user->getWork()}</p>
{/if}
{if $user->getLocation()}
<p>{$user->getLocation()}</p> {if $user->getLocation()}
{/if} <p>{$user->getLocation()}</p>
{/if}
<p class="mt-3">{$user->getDescription()}</p>
<p class="mt-3">{$user->getDescription()}</p>
</div>
</div> </div>
</div> </div>
</section> </section>