Correction affichage recherche, maj bouton, suppression requêtes de controller, déplacer mention et about dans page_controller, nettoyage des commentaires pour ctrl, entities & models

This commit is contained in:
laura.chevillet 2026-02-28 12:23:29 +01:00
parent 8c89a6ec1b
commit 050c804d48
20 changed files with 244 additions and 282 deletions

View file

@ -12,17 +12,14 @@
<body class="d-flex flex-column min-vh-100">
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container-fluid">
{* Logo *}
<a class="navbar-brand d-flex align-items-center" href="index.php">
<img src="assests/img/logo.png" alt="Logo" class="logo-image">
</a>
{* Toggler pour mobile *}
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
{* Menu de navigation *}
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto">
@ -45,10 +42,8 @@
{/if}
</ul>
{* Menu secondaire *}
<nav class="col-4 d-flex justify-content-end align-items-center" aria-label="Connexion utilisateur">
{if !isset($smarty.session.user)}
{* Utilisateur non connecté *}
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="index.php?ctrl=user&action=signup" title="Créer un compte" aria-label="Créer un compte">
@ -62,7 +57,6 @@
</li>
</ul>
{else}
{* Utilisateur connecté *}
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="index.php?ctrl=user&action=user&pseudo={$smarty.session.user.user_pseudo}" title="Modifier mon compte" aria-label="Modifier mon compte">

View file

@ -1,7 +1,7 @@
<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;">
{* IMAGE (partie supérieure - plus grande) *}
<div class="ratio ratio-4x3">
<a href="index.php?ctrl=project&action=display&id={$objProject->getId()}"></a>
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}"
@ -11,17 +11,15 @@
</a>
</div>
{* CONTENU (photo profil + infos) *}
<div class="card-body p-3 bg-light">
<div class="d-flex align-items-start gap-3">
{* PHOTO DE PROFIL (cercle à gauche - plus grand) *}
<a href="index.php?ctrl=user&action=user&id={$objProject->getUser_id()}">
<img src="{$smarty.env.IMG_USER_PATH}{$objProject->getUser_image() ?? "images.jpg"}"
class="rounded-circle flex-shrink-0 border border-2 border-white"
style="width: 64px; height: 64px; object-fit: cover; margin-top: 8px;"
alt="Photo de profil">
</a>
{* INFOS À DROITE *}
<div class="flex-grow-1">
<h3 class="h6 fw-bold mb-2 mt-1">{$objProject->getTitle()}</h3>
<p class="small text-muted mb-1">
@ -61,7 +59,6 @@
{/if}
</div>
{* BOUTONS EN BAS *}
{if isset($smarty.session.user)
and $smarty.session.user.user_status == 2
and $objProject->getStatus() == "en_attente"}

View file

@ -9,8 +9,6 @@
<section aria-label="À propos de FOLLIOW">
<div class="row g-5">
<!-- Présentation principale -->
<div class="col-lg-8">
<section aria-labelledby="presentation">

View file

@ -60,12 +60,10 @@
<div class="alert alert-warning p-2">
<i class="fas fa-exclamation-triangle"></i> Quota de 20 photos atteint.
</div>
{* On désactive l'input si le quota est plein *}
<input type="file" disabled class="form-control">
{/if}
</div>
{* Affichage de Images du projet (s'il y en a)*}
<div class="row mt-4">
<label class="h5">Galerie du projet</label>
{foreach $arrImages as $image}
@ -78,7 +76,6 @@
<div class="card-body p-2">
<span class="badge {if $image.image_status == 'approuvé'}bg-success{elseif $image.image_status == 'refusé'}bg-danger{else}bg-warning text-dark{/if}">
{*Permet de remplacer certains character par d'autre*}
{$image.image_status|replace:'_':' '}
</span>

View file

@ -60,7 +60,7 @@
<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>
<button type="submit" class="btn bg-success text-light">Valider</button>
</form>
<div>
</div>
@ -75,7 +75,7 @@
<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>
<button type="submit" class="btn bg-success text-light">Valider</button>
</div>
</form>
</div>

View file

@ -1,25 +1,12 @@
{extends file="views/layout.tpl"}
{block name="content"}
<!-- 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>
<p class="text-secondary mb-4">Créez votre compte utilisateur.</p>
{if (isset($arrError) && count($arrError) > 0) }
<div class="alert alert-danger">
{foreach $arrError as $strError}
@ -27,13 +14,9 @@
{/foreach}
</div>
{/if}
<!-- 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 *
@ -45,8 +28,6 @@
name="user_firstname"
required >
</div>
<!-- Champ : nom de l'utilisateur -->
<div class="col-md-6">
<label class="form-label" for="user_name">
Nom *
@ -56,11 +37,8 @@
type="text"
id="user_name"
name="user_name"
required
>
required>
</div>
<!-- Champ : pseudo -->
<div class="col-12">
<label class="form-label" for="user_pseudo">
Pseudo *

View file

@ -2,38 +2,32 @@
{block name="title" append} - Rechercher{/block}
{block name="h2"}Rechercher{/block}
{block name="p"}Recherche de portfolios par mot clés, date, auteur et catégorie.{/block}
{block name="p"}Recherche de projets par mot clés, date, auteur et catégorie.{/block}
{block name="content"}
<section aria-label="Blog">
<h2 class="visually-hidden">Rechercher parmi les articles</h2>
<h2 class="visually-hidden">Rechercher parmi les projets</h2>
<div class="row mb-2">
<section class="mb-5" aria-labelledby="search-heading">
<form name="formSearch" method="post" action="?ctrl=project&action=search" class="border rounded p-4 bg-light">
<h3 id="search-heading" class="h4 mb-4">
<i class="fas fa-search me-2" aria-hidden="true"></i>
Rechercher des articles
Rechercher des projets
</h3>
<div class="row g-3">
<div class="col-md-6">
<label for="keywords" class="form-label">Mots-clés</label>
<input
value=""
type="text"
class="form-control"
id="keywords"
name="keywords"
placeholder="Design, IA, back-end"
aria-describedby="keywords-help">
value="{$strKeywords}" type="text" class="form-control" id="keywords" name="keywords" placeholder="Design, IA, back-end" aria-describedby="keywords-help">
<small id="keywords-help" class="form-text text-muted">
Recherchez dans les titres et contenus
</small>
</div>
<div class="col-md-6">
<label for="author" class="form-label">Auteur</label>
<label for="author" class="form-label">Auteurs</label>
<select class="form-select" id="author" name="author">
<option value="0" {if $intAuthor == 0}selected{/if}>Tous les auteurs</option>
{foreach $arrUser as $arrDetUser}
@ -117,7 +111,6 @@
</div>
</div>
</div>
<!-- AJOUT RECHERCHE PAR CATEGORIE -->
<div class="col-6">
<fieldset>
<legend class="form-label">Recherche par catégories</legend>
@ -150,7 +143,6 @@
</form>
</section>
<!-- Liste des articles -->
<section aria-labelledby="articles-heading">
<h3 id="articles-heading" class="visually-hidden">Liste des projets</h3>
<div class="row mb-2">
@ -179,7 +171,6 @@
</div>
</section>
<script>
// Gestion de l'affichage des champs de date
const periodRadios = document.querySelectorAll('input[name="period"]');
const dateExact = document.getElementById('date-exact');
const dateRange = document.getElementById('date-range');
@ -199,8 +190,6 @@
periodRadios.forEach(radio => {
radio.addEventListener('change', toggleDateFields);
});
// Initialisation au chargement
toggleDateFields();
</script>
{/block}