smarty et merge de tout fini ( ദ്ദി ˙ᗜ˙ )

This commit is contained in:
Yasder5 2026-02-09 11:19:00 +01:00
parent a774205594
commit 6ed4394dda
113 changed files with 11964 additions and 1192 deletions

View file

@ -29,18 +29,25 @@
<a class="nav-link" href="?ctrl=&action=">Découvrir</a>
</li>
<li class="nav-item">
<a class="nav-link" href="?ctrl=''&action=''">Customisation</a>
<a class="nav-link" href="?ctrl=&action=">Customisation</a>
</li>
<li class="nav-item">
<a class="nav-link" href="?ctrl=''&action=''">Orientation</a>
<a class="nav-link" href="?ctrl=&action=">Orientation</a>
</li>
<li class="nav-item">
<a class="nav-link" href="?ctrl=''&action=''">À propos</a>
<a class="nav-link" href="?ctrl=&action=">À propos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="?ctrl=project&action=search">Rechercher</a>
</li>
{if isset($smarty.session.user)}
{if $smarty.session.user.authorisation_name == "Administrateur"}
<li class="nav-item">
<a class="nav-link" href="?ctrl=admin&action=admin">Admin</a>
</li>
{/if}
{/if}
</ul>
{* Menu secondaire *}

View file

@ -29,7 +29,7 @@
{$objProject->getCreatorname()}
</small>
<a href="?id={$objProject->getId()}"
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"
class="stretched-link small">
Lire la suite →
</a>

View file

@ -1,23 +1,12 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>Dashboard - Folliow Admin</title>
<link href="https://cdn.jsdelivr.net/npm/simple-datatables@7.1.2/dist/style.min.css" rel="stylesheet" />
<link href="assests/css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body class="sb-nav-fixed">
{extends file="views/layout.tpl"}
{block name="content"}
<section class="sb-nav-fixed">
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
<!-- Navbar Brand-->
<a class="navbar-brand ps-3" href="index.html"><img src="assests/img/Logo-Wordmark.svg" alt="Logo du site" width="150px"></a>
<!-- Sidebar Toggle-->
<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>
<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>
<!-- Navbar Search-->
<form class="d-none d-md-inline-block form-inline ms-auto me-0 me-md-3 my-2 my-md-0">
<div class="input-group">
<input class="form-control" type="text" placeholder="Recherche par pseudo..." aria-label="Recherche pseudo" aria-describedby="btnNavbarSearch" />
@ -83,50 +72,84 @@
</div>
</div>
<div class="sb-sidenav-footer">
<!-- Mettre le pseudo en fonction de qui est connecté -->
<div class="small">Connecté avec le compte :</div>
*mettre un nom*
{$smarty.session.user.user_name}
</div>
</nav>
</div>
<!-- Main page -->
<div id="layoutSidenav_content">
<main>
<div class="container-fluid px-4">
<h1 class="mt-4">Dashboard</h1>
</div>
<!-- Gray bloc -->
<div class="container-fluid px-4">
<!-- Container with img/list/remove btn = A DUPLIQUER à partir d'ici-->
<!-- 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 USER -->
<img src="./assests/img/Logo-Wordmark.svg" alt="" width="100">
</div>
<!-- USER MODIF -->
<div class="col-4">
<select class="form-select" aria-label="Default select example">
<option value="0" selected>Modifier le statut de l'Utilisateur...</option>
<option value="1">Utilisateur</option>
<option value="2">Modérateur</option>
<option value="3">Administrateur</option>
{foreach from=$arrStatusToDisplay item=arrDetStatus}
<option value="{$arrDetStatus->getId()}">{$arrDetStatus->getStatusName()}</option>
{/foreach}
</select>
</div>
<!-- Btn SUPPR -->
<div class="col-4">
<button class="btn bg-danger text-light rounded-circle">X</button>
</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">
<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>
{foreach from=$arrCategoryToDisplay item=arrDetCategory}
<option value="{$arrDetCategory->getId()}" >
{$arrDetCategory->getName()}
</option>
{/foreach}
</select>
<br>
<input type="text" class="form-control" id="floatingInput" name="edit_category">
</div>
<div class="col-2">
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
</div>
<div class="col-2">
<button class="btn bg-danger text-light rounded-circle">X</button>
</div>
</div>
<br>
<br>
<br>
<div class="row">
<!-- creation cat-->
<div class="col-6">
<label>Créer une nouvelle catégorie</label>
<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>
</div>
</div>
<div class="col-2">
<button type="submit" class="btn bg-success text-light rounded-circle"> ✓</button>
</div>
</div>
</div>
</form>
</div>
</div>
</main>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="assests/js/scripts.js"></script>
</body>
</html>
</section>
{/block}

View file

@ -10,26 +10,107 @@
{/foreach}
</div>
{/if}
<!-- Contenu principal de la page -->
<main class="container py-5">
<form method="post">
<p>
<label>Mail:</label>
<input name="mail"
value="{$strMail|default:''}"
class="form-control {if isset($arrError.mail)}is-invalid{/if}"
type="email">
</p>
<!-- Centrage horizontal du formulaire -->
<div class="row justify-content-center">
<!-- Contenu principal de la page -->
<main class="container py-5">
<p>
<label>Mot de passe:</label>
<input name="pwd"
class="form-control {if isset($arrError.pwd)}is-invalid{/if}"
type="password">
</p>
<!-- Centrage horizontal du formulaire -->
<div class="row justify-content-center">
<div class="col-12 col-md-8 col-lg-5">
<p>
<input class="form-control btn btn-primary" type="submit" value="Se connecter">
</p>
</form>
<!-- Carte contenant le formulaire de connexion -->
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
<!-- Titre principal -->
<h1 class="h3 fw-bold mb-1">Connexion</h1>
<!-- Texte descriptif -->
<p class="text-secondary mb-4">
Connectez-vous à votre compte.
</p>
<!-- Formulaire de connexion -->
<!-- Le traitement sera effectué en PHP via la méthode POST -->
<form method="POST">
<div class="row g-3">
<!-- Champ : adresse e-mail de l'utilisateur -->
<div class="col-12">
<label for="user_mail" class="form-label">
Adresse e-mail
</label>
<input
value="{$strMail|default:''}"
type="email"
class="form-control {if isset($arrError.mail)}is-invalid{/if}"
id="user_mail"
name="user_mail"
required
>
</div>
<!-- Champ : mot de passe -->
<div class="col-12">
<label for="user_password" class="form-label">
Mot de passe
</label>
<input
type="password"
class="form-control {if isset($arrError.pwd)}is-invalid{/if}"
id="user_password"
name="user_password"
required
>
</div>
<!-- Option "Se souvenir de moi" (fonctionnalité optionnelle côté PHP) -->
<div class="col-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="remember_me" name="remember_me">
<label class="form-check-label" for="remember_me">
Se souvenir de moi
</label>
</div>
</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">
Se connecter
</button>
</div>
<!-- Lien vers la page d'inscription -->
<div class="col-12 text-center">
<small class="text-secondary">
Pas encore de compte ?
<a href="index.php?ctrl=user&action=signin" class="link-primary">Créer un compte</a>
</small>
</div>
<!-- Lien pour la récupération du mot de passe -->
<div class="col-12 text-center">
<small>
<a href="#" class="link-primary">
Mot de passe oublié ?
</a>
</small>
</div>
</div>
</form>
</div>
</div>
</div>
</main>
</section>
{/block}

79
views/projet_display.tpl Normal file
View file

@ -0,0 +1,79 @@
{extends file="views/layout.tpl"}
{block name="content"}
<main class="container mt-5 py-5">
<!-- Message après l'envoi d'email -->
{if isset($smarty.get.mail) && $smarty.get.mail === 'ok'}
<div class="alert alert-success">Email envoyé avec succès.</div>
{elseif isset($smarty.get.mail) && $smarty.get.mail === 'fail'}
<div class="alert alert-danger">Erreur lors de l'envoi de l'email.</div>
{/if}
<div class="row g-4">
<!-- Contenu principal du projet -->
<div class="col-lg-8">
<h1 class="fw-bold">{$objProject->getTitle()}</h1>
<p class="text-muted">
{$arrProject.category_name ?? 'Général'}
</p>
<div class="mb-4 shadow-sm">
<img src=".{$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">{$objProject->getDescription()}</p>
<div class="mt-4">
{$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="{$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=".{$objProject->getUser_image()}"
class="rounded-circle mb-3 mx-auto"
style="width:100px;height:100px;object-fit:cover;">
<h5>{$objProject->getCreatorName()}</h5>
<p class="text-muted small">
Publié le {$objProject->getCreation_date()}
</p>
<button class="btn btn-primary">Contacter le talent</button>
</div>
</div>
</div>
</main>
{/block}