merge guillaume->main
This commit is contained in:
commit
1d0fd2acff
50 changed files with 1068 additions and 505 deletions
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
{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()}"
|
||||
<a href="index.php?ctrl=project&action=addedit_project&id={$objProject->getId()}"
|
||||
class="btn btn-sm btn-outline-secondary mt-2 w-100"
|
||||
style="position: relative; z-index: 2;">
|
||||
Editer
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
</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>
|
||||
<p class="text-danger fw-bold text-center mb-0 small">Projet refusé</p>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -40,14 +40,56 @@
|
|||
<input name="thumbnail" class="form-control" type="file">
|
||||
{if $objProject && $objProject->getId()}
|
||||
<label class="h5">Miniature actuelle :</label>
|
||||
<img src="uploads/projects/{$objProject->getThumbnail()}" alt="Miniature">
|
||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$objProject->getThumbnail()}" alt="Miniature">
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="h5">Images de votre projet</label>
|
||||
<input name="imageProject" class="form-control" type="file" multiple>
|
||||
</div>
|
||||
<label class="form-label h5">Galerie de photos (Max 20)</label>
|
||||
{assign var="nbActuel" value=$arrImages|@count}
|
||||
{assign var="disponible" value=20 - $nbActuel}
|
||||
|
||||
{if $disponible > 0}
|
||||
<p class="small text-muted">Il vous reste <strong>{$disponible}</strong> emplacement(s) libre(s).</p>
|
||||
<input type="file" name="imageProject[]" multiple class="form-control" accept="image/*">
|
||||
{else}
|
||||
<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}
|
||||
<div class="col-md-3 mb-3 text-center">
|
||||
<div class="card shadow-sm h-100 border-{if $image.image_status == 'approuvé'}success{elseif $image.image_status == 'refusé'}danger{else}warning{/if}">
|
||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}"
|
||||
class="card-img-top img-thumbnail"
|
||||
alt="{$image.image_alt}"
|
||||
style="height: 150px; object-fit: cover;">
|
||||
|
||||
<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>
|
||||
|
||||
<div class="mt-2 d-flex flex-column gap-1">
|
||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
||||
class="btn btn-sm btn-danger"
|
||||
onclick="return confirm('Supprimer définitivement cette image ?')">Supprimer</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{foreachelse}
|
||||
<p class="text-muted italic">Aucune photo dans la galerie pour le moment.</p>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
<button type="submit" class="btn btn-primary btn-md" name="sendProject">Envoyer</button>
|
||||
|
|
|
|||
152
views/login.tpl
152
views/login.tpl
|
|
@ -20,96 +20,96 @@
|
|||
|
||||
<!-- Centrage horizontal du formulaire -->
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-md-8 col-lg-5">
|
||||
<div class="col-12 col-md-8 col-lg-5">
|
||||
|
||||
<!-- Carte contenant le formulaire de connexion -->
|
||||
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
|
||||
<!-- 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>
|
||||
<!-- Titre principal -->
|
||||
<h1 class="h3 fw-bold mb-1">Connexion</h1>
|
||||
|
||||
<!-- Texte descriptif -->
|
||||
<p class="text-secondary mb-4">
|
||||
Connectez-vous à votre compte.
|
||||
</p>
|
||||
<!-- 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">
|
||||
<!-- Formulaire de connexion -->
|
||||
<!-- Le traitement sera effectué en PHP via la méthode POST -->
|
||||
<form method="POST">
|
||||
|
||||
<div class="row g-3">
|
||||
<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 : 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>
|
||||
<!-- 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>
|
||||
<!-- 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>
|
||||
<!-- 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 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>
|
||||
<!-- 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>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,26 @@
|
|||
<p>Bonjour,</p>
|
||||
|
||||
<p>
|
||||
Un projet a été partagé avec vous via la plateforme <strong>Folliow</strong>.
|
||||
</p>
|
||||
|
||||
<h3>{$projectTitle}</h3>
|
||||
|
||||
<p>
|
||||
{$projectDescription}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Vous pouvez consulter le projet en cliquant sur le lien ci-dessous :
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="{$projectUrl}">
|
||||
{$projectUrl}
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Cordialement,<br>
|
||||
L’équipe Folliow
|
||||
</p>
|
||||
<p>Bonjour,</p>
|
||||
|
||||
<p>
|
||||
Un projet a été partagé avec vous via la plateforme <strong>Folliow</strong>.
|
||||
</p>
|
||||
|
||||
<h3>{$projectTitle}</h3>
|
||||
|
||||
<p>
|
||||
{$projectDescription}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Vous pouvez consulter le projet en cliquant sur le lien ci-dessous :
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="{$projectUrl}">
|
||||
{$projectUrl}
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Cordialement,<br>
|
||||
L’équipe Folliow
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -1,287 +1,287 @@
|
|||
{extends file="views/layout.tpl"}
|
||||
|
||||
{block name="title" append}Mentions légales{/block}
|
||||
{block name="h2"}Mentions légales{/block}
|
||||
{block name="p"}Informations légales et politique de confidentialité{/block}
|
||||
|
||||
{block name="date_maj"}
|
||||
<p class="text-muted small mb-0">
|
||||
<i class="fas fa-calendar-alt me-2" aria-hidden="true"></i>
|
||||
Dernière mise à jour : <time datetime="2026-02-20">20 février 2026</time>
|
||||
</p>
|
||||
{/block}
|
||||
|
||||
{block name="js_footer" append}
|
||||
<script>
|
||||
{literal}
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
const target = document.querySelector(this.getAttribute('href'));
|
||||
if (target) {
|
||||
target.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'start'
|
||||
});
|
||||
target.focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<section aria-label="Mentions légales">
|
||||
<h2 class="visually-hidden">Mentions légales</h2>
|
||||
|
||||
<div class="row g-5">
|
||||
<div class="col-md-12">
|
||||
|
||||
<!-- Table des matières -->
|
||||
<nav class="table-of-contents" aria-labelledby="toc-heading">
|
||||
<h3 id="toc-heading" class="h5 mb-3">
|
||||
<i class="fas fa-list me-2" aria-hidden="true"></i>
|
||||
Sommaire
|
||||
</h3>
|
||||
<ul class="list-unstyled ms-3">
|
||||
<li class="mb-2"><a href="#editeur">1. Éditeur du site</a></li>
|
||||
<li class="mb-2"><a href="#hebergeur">2. Hébergement</a></li>
|
||||
<li class="mb-2"><a href="#propriete">3. Propriété intellectuelle</a></li>
|
||||
<li class="mb-2"><a href="#rgpd">4. Protection des données personnelles (RGPD)</a></li>
|
||||
<li class="mb-2"><a href="#cookies">5. Cookies</a></li>
|
||||
<li class="mb-2"><a href="#responsabilite">6. Limitation de responsabilité</a></li>
|
||||
<li class="mb-2"><a href="#liens">7. Liens hypertextes</a></li>
|
||||
<li class="mb-2"><a href="#droit">8. Droit applicable</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<!-- Section 1 : Éditeur -->
|
||||
<section id="editeur" class="legal-section" aria-labelledby="editeur-heading">
|
||||
<h3 id="editeur-heading" class="h4">
|
||||
<i class="fas fa-building me-2 text-primary" aria-hidden="true"></i>
|
||||
1. Éditeur du site
|
||||
</h3>
|
||||
|
||||
<p class="text-muted">
|
||||
FOLLIOW est un <strong>projet pédagogique</strong> réalisé dans le cadre d’un exercice de formation.
|
||||
</p>
|
||||
|
||||
<dl class="row">
|
||||
<dt class="col-sm-3">Nom du projet</dt>
|
||||
<dd class="col-sm-9">FOLLIOW</dd>
|
||||
|
||||
<dt class="col-sm-3">Nature</dt>
|
||||
<dd class="col-sm-9">Projet scolaire / démonstration technique</dd>
|
||||
|
||||
<dt class="col-sm-3">Établissement</dt>
|
||||
<dd class="col-sm-9">FOLLIOW</dd>
|
||||
|
||||
<dt class="col-sm-3">Forme juridique</dt>
|
||||
<dd class="col-sm-9">Non applicable (projet pédagogique)</dd>
|
||||
|
||||
<dt class="col-sm-3">Capital social</dt>
|
||||
<dd class="col-sm-9">Non applicable</dd>
|
||||
|
||||
<dt class="col-sm-3">Adresse</dt>
|
||||
<dd class="col-sm-9">4 Rue du Rhin, 68000 Colmar</dd>
|
||||
|
||||
<dt class="col-sm-3">Téléphone</dt>
|
||||
<dd class="col-sm-9">03 68 67 20 00</dd>
|
||||
|
||||
<dt class="col-sm-3">Email</dt>
|
||||
<dd class="col-sm-9">
|
||||
<a href="mailto:projet.folliow@hotmail.com">projet.folliow@hotmail.com</a>
|
||||
</dd>
|
||||
|
||||
<dt class="col-sm-3">Directeur de publication</dt>
|
||||
<dd class="col-sm-9">L’équipe du projet FOLLIOW</dd>
|
||||
|
||||
<dt class="col-sm-3">SIRET</dt>
|
||||
<dd class="col-sm-9">Non applicable (projet scolaire)</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<!-- Section 2 : Hébergeur -->
|
||||
<section id="hebergeur" class="legal-section" aria-labelledby="hebergeur-heading">
|
||||
<h3 id="hebergeur-heading" class="h4">
|
||||
<i class="fas fa-server me-2 text-primary" aria-hidden="true"></i>
|
||||
2. Hébergement
|
||||
</h3>
|
||||
|
||||
<p>Le site est hébergé sur une infrastructure pédagogique mise à disposition pour le projet :</p>
|
||||
|
||||
<dl class="row">
|
||||
<dt class="col-sm-3">Hébergeur</dt>
|
||||
<dd class="col-sm-9">OVH<dd>
|
||||
|
||||
<dt class="col-sm-3">Domaine / accès</dt>
|
||||
<dd class="col-sm-9">php.boulayoune.com</dd>
|
||||
|
||||
<dt class="col-sm-3">Adresse</dt>
|
||||
<dd class="col-sm-9">4 Rue du Rhin, 68000 Colmar</dd>
|
||||
|
||||
<dt class="col-sm-3">Téléphone</dt>
|
||||
<dd class="col-sm-9">03 68 67 20 00</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<!-- Section 3 : Propriété intellectuelle -->
|
||||
<section id="propriete" class="legal-section" aria-labelledby="propriete-heading">
|
||||
<h3 id="propriete-heading" class="h4">
|
||||
<i class="fas fa-copyright me-2 text-primary" aria-hidden="true"></i>
|
||||
3. Propriété intellectuelle
|
||||
</h3>
|
||||
<p>
|
||||
Sauf mention contraire, l’ensemble des contenus présents sur FOLLIOW (textes, visuels, logo, éléments d’interface)
|
||||
est utilisé dans le cadre du projet et reste la propriété de leurs auteurs respectifs.
|
||||
</p>
|
||||
<p>
|
||||
Toute reproduction ou réutilisation à des fins commerciales est interdite sans autorisation préalable.
|
||||
</p>
|
||||
<p>
|
||||
Les éventuels contenus tiers (images, icônes, bibliothèques) restent soumis à leurs licences d’origine.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 4 : RGPD -->
|
||||
<section id="rgpd" class="legal-section" aria-labelledby="rgpd-heading">
|
||||
<h3 id="rgpd-heading" class="h4">
|
||||
<i class="fas fa-shield-alt me-2 text-primary" aria-hidden="true"></i>
|
||||
4. Protection des données personnelles (RGPD)
|
||||
</h3>
|
||||
|
||||
<h4 class="h5 mt-4">4.1 Responsable du traitement</h4>
|
||||
<p>
|
||||
Le responsable du traitement est l’équipe du projet FOLLIOW (projet pédagogique).
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">4.2 Données collectées</h4>
|
||||
<p>Selon l’utilisation du site, les données pouvant être collectées sont :</p>
|
||||
<ul>
|
||||
<li>Nom / Prenom <li>
|
||||
<li>Pseudo </li>
|
||||
<li>Adresse email (inscription, connexion, partage de projet par email)</li>
|
||||
<li>Contenus déposés par l’utilisateur (projets, descriptions, images)</li>
|
||||
<li>Données techniques minimales (logs de sécurité, adresse IP) à des fins de protection et de diagnostic</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="h5 mt-4">4.3 Finalités du traitement</h4>
|
||||
<ul>
|
||||
<li>Création et gestion de compte</li>
|
||||
<li>Publication et affichage de projets</li>
|
||||
<li>Partage d’un projet par email à la demande de l’utilisateur</li>
|
||||
<li>Sécurisation du site et prévention des abus</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="h5 mt-4">4.4 Durée de conservation</h4>
|
||||
<p>
|
||||
Dans le cadre de ce projet pédagogique, les données sont conservées pendant la durée du projet et des évaluations,
|
||||
puis supprimées ou anonymisées, sauf obligation légale contraire.
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">4.5 Vos droits</h4>
|
||||
<p>Conformément au RGPD, vous disposez de droits d’accès, de rectification, d’effacement et d’opposition.</p>
|
||||
<p>
|
||||
Pour exercer ces droits, contactez-nous à :
|
||||
<a href="mailto:projet.folliow@hotmail.com">projet.folliow@hotmail.com</a>
|
||||
</p>
|
||||
<p>
|
||||
Vous pouvez également introduire une réclamation auprès de la CNIL
|
||||
(<a href="https://www.cnil.fr" target="_blank" rel="noopener">www.cnil.fr</a>).
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 5 : Cookies -->
|
||||
<section id="cookies" class="legal-section" aria-labelledby="cookies-heading">
|
||||
<h3 id="cookies-heading" class="h4">
|
||||
<i class="fas fa-cookie-bite me-2 text-primary" aria-hidden="true"></i>
|
||||
5. Cookies
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
FOLLIOW peut utiliser des cookies <strong>strictement nécessaires</strong> au fonctionnement du site
|
||||
(ex : session de connexion). Aucun cookie publicitaire n’est utilisé.
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">5.1 Qu’est-ce qu’un cookie ?</h4>
|
||||
<p>
|
||||
Un cookie est un petit fichier texte déposé sur votre appareil lors de la visite d’un site.
|
||||
Il permet notamment de conserver une session ou des préférences.
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">5.2 Types de cookies utilisés</h4>
|
||||
<ul>
|
||||
<li><strong>Cookies techniques</strong> : indispensables (session, sécurité)</li>
|
||||
<li><strong>Cookies de préférence</strong> : éventuels (langue, affichage) si implémentés</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="h5 mt-4">5.3 Gestion des cookies</h4>
|
||||
<p>
|
||||
Vous pouvez configurer votre navigateur pour refuser les cookies. Certaines fonctionnalités du site
|
||||
peuvent alors ne pas fonctionner correctement.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 6 : Limitation de responsabilité -->
|
||||
<section id="responsabilite" class="legal-section" aria-labelledby="responsabilite-heading">
|
||||
<h3 id="responsabilite-heading" class="h4">
|
||||
<i class="fas fa-exclamation-triangle me-2 text-primary" aria-hidden="true"></i>
|
||||
6. Limitation de responsabilité
|
||||
</h3>
|
||||
<p>
|
||||
Les informations présentées sur FOLLIOW sont fournies à titre démonstratif dans le cadre d’un projet pédagogique.
|
||||
L’équipe s’efforce de maintenir le site accessible, sans garantie d’absence d’erreurs ou d’interruptions.
|
||||
</p>
|
||||
<p>
|
||||
L’équipe FOLLIOW ne pourra être tenue responsable des dommages directs ou indirects résultant de l’utilisation du site,
|
||||
notamment en cas d’indisponibilité ou de perte de données.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 7 : Liens hypertextes -->
|
||||
<section id="liens" class="legal-section" aria-labelledby="liens-heading">
|
||||
<h3 id="liens-heading" class="h4">
|
||||
<i class="fas fa-link me-2 text-primary" aria-hidden="true"></i>
|
||||
7. Liens hypertextes
|
||||
</h3>
|
||||
<p>
|
||||
Le site peut contenir des liens vers des sites tiers. FOLLIOW n’exerce aucun contrôle sur ces sites et décline toute
|
||||
responsabilité quant à leur contenu ou leur disponibilité.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 8 : Droit applicable -->
|
||||
<section id="droit" class="legal-section" aria-labelledby="droit-heading">
|
||||
<h3 id="droit-heading" class="h4">
|
||||
<i class="fas fa-gavel me-2 text-primary" aria-hidden="true"></i>
|
||||
8. Droit applicable et juridiction compétente
|
||||
</h3>
|
||||
<p>
|
||||
Les présentes mentions légales sont régies par le droit français. En cas de litige, et à défaut d’accord amiable,
|
||||
les tribunaux français seront seuls compétents.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Contact -->
|
||||
<section class="mt-5 p-4 bg-light rounded" aria-labelledby="contact-legal">
|
||||
<h3 id="contact-legal" class="h4 mb-3">
|
||||
<i class="fas fa-envelope me-2 text-primary" aria-hidden="true"></i>
|
||||
Questions ou réclamations
|
||||
</h3>
|
||||
<p>
|
||||
Pour toute question concernant ces mentions légales ou pour exercer vos droits, vous pouvez nous contacter :
|
||||
</p>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-envelope me-2" aria-hidden="true"></i>
|
||||
Par email : <a href="mailto:projet.folliow@hotmail.com">projet.folliow@hotmail.com</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{extends file="views/layout.tpl"}
|
||||
|
||||
{block name="title" append}Mentions légales{/block}
|
||||
{block name="h2"}Mentions légales{/block}
|
||||
{block name="p"}Informations légales et politique de confidentialité{/block}
|
||||
|
||||
{block name="date_maj"}
|
||||
<p class="text-muted small mb-0">
|
||||
<i class="fas fa-calendar-alt me-2" aria-hidden="true"></i>
|
||||
Dernière mise à jour : <time datetime="2026-02-20">20 février 2026</time>
|
||||
</p>
|
||||
{/block}
|
||||
|
||||
{block name="js_footer" append}
|
||||
<script>
|
||||
{literal}
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
const target = document.querySelector(this.getAttribute('href'));
|
||||
if (target) {
|
||||
target.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'start'
|
||||
});
|
||||
target.focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<section aria-label="Mentions légales">
|
||||
<h2 class="visually-hidden">Mentions légales</h2>
|
||||
|
||||
<div class="row g-5">
|
||||
<div class="col-md-12">
|
||||
|
||||
<!-- Table des matières -->
|
||||
<nav class="table-of-contents" aria-labelledby="toc-heading">
|
||||
<h3 id="toc-heading" class="h5 mb-3">
|
||||
<i class="fas fa-list me-2" aria-hidden="true"></i>
|
||||
Sommaire
|
||||
</h3>
|
||||
<ul class="list-unstyled ms-3">
|
||||
<li class="mb-2"><a href="#editeur">1. Éditeur du site</a></li>
|
||||
<li class="mb-2"><a href="#hebergeur">2. Hébergement</a></li>
|
||||
<li class="mb-2"><a href="#propriete">3. Propriété intellectuelle</a></li>
|
||||
<li class="mb-2"><a href="#rgpd">4. Protection des données personnelles (RGPD)</a></li>
|
||||
<li class="mb-2"><a href="#cookies">5. Cookies</a></li>
|
||||
<li class="mb-2"><a href="#responsabilite">6. Limitation de responsabilité</a></li>
|
||||
<li class="mb-2"><a href="#liens">7. Liens hypertextes</a></li>
|
||||
<li class="mb-2"><a href="#droit">8. Droit applicable</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<!-- Section 1 : Éditeur -->
|
||||
<section id="editeur" class="legal-section" aria-labelledby="editeur-heading">
|
||||
<h3 id="editeur-heading" class="h4">
|
||||
<i class="fas fa-building me-2 text-primary" aria-hidden="true"></i>
|
||||
1. Éditeur du site
|
||||
</h3>
|
||||
|
||||
<p class="text-muted">
|
||||
FOLLIOW est un <strong>projet pédagogique</strong> réalisé dans le cadre d’un exercice de formation.
|
||||
</p>
|
||||
|
||||
<dl class="row">
|
||||
<dt class="col-sm-3">Nom du projet</dt>
|
||||
<dd class="col-sm-9">FOLLIOW</dd>
|
||||
|
||||
<dt class="col-sm-3">Nature</dt>
|
||||
<dd class="col-sm-9">Projet scolaire / démonstration technique</dd>
|
||||
|
||||
<dt class="col-sm-3">Établissement</dt>
|
||||
<dd class="col-sm-9">FOLLIOW</dd>
|
||||
|
||||
<dt class="col-sm-3">Forme juridique</dt>
|
||||
<dd class="col-sm-9">Non applicable (projet pédagogique)</dd>
|
||||
|
||||
<dt class="col-sm-3">Capital social</dt>
|
||||
<dd class="col-sm-9">Non applicable</dd>
|
||||
|
||||
<dt class="col-sm-3">Adresse</dt>
|
||||
<dd class="col-sm-9">4 Rue du Rhin, 68000 Colmar</dd>
|
||||
|
||||
<dt class="col-sm-3">Téléphone</dt>
|
||||
<dd class="col-sm-9">03 68 67 20 00</dd>
|
||||
|
||||
<dt class="col-sm-3">Email</dt>
|
||||
<dd class="col-sm-9">
|
||||
<a href="mailto:projet.folliow@hotmail.com">projet.folliow@hotmail.com</a>
|
||||
</dd>
|
||||
|
||||
<dt class="col-sm-3">Directeur de publication</dt>
|
||||
<dd class="col-sm-9">L’équipe du projet FOLLIOW</dd>
|
||||
|
||||
<dt class="col-sm-3">SIRET</dt>
|
||||
<dd class="col-sm-9">Non applicable (projet scolaire)</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<!-- Section 2 : Hébergeur -->
|
||||
<section id="hebergeur" class="legal-section" aria-labelledby="hebergeur-heading">
|
||||
<h3 id="hebergeur-heading" class="h4">
|
||||
<i class="fas fa-server me-2 text-primary" aria-hidden="true"></i>
|
||||
2. Hébergement
|
||||
</h3>
|
||||
|
||||
<p>Le site est hébergé sur une infrastructure pédagogique mise à disposition pour le projet :</p>
|
||||
|
||||
<dl class="row">
|
||||
<dt class="col-sm-3">Hébergeur</dt>
|
||||
<dd class="col-sm-9">OVH<dd>
|
||||
|
||||
<dt class="col-sm-3">Domaine / accès</dt>
|
||||
<dd class="col-sm-9">php.boulayoune.com</dd>
|
||||
|
||||
<dt class="col-sm-3">Adresse</dt>
|
||||
<dd class="col-sm-9">4 Rue du Rhin, 68000 Colmar</dd>
|
||||
|
||||
<dt class="col-sm-3">Téléphone</dt>
|
||||
<dd class="col-sm-9">03 68 67 20 00</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<!-- Section 3 : Propriété intellectuelle -->
|
||||
<section id="propriete" class="legal-section" aria-labelledby="propriete-heading">
|
||||
<h3 id="propriete-heading" class="h4">
|
||||
<i class="fas fa-copyright me-2 text-primary" aria-hidden="true"></i>
|
||||
3. Propriété intellectuelle
|
||||
</h3>
|
||||
<p>
|
||||
Sauf mention contraire, l’ensemble des contenus présents sur FOLLIOW (textes, visuels, logo, éléments d’interface)
|
||||
est utilisé dans le cadre du projet et reste la propriété de leurs auteurs respectifs.
|
||||
</p>
|
||||
<p>
|
||||
Toute reproduction ou réutilisation à des fins commerciales est interdite sans autorisation préalable.
|
||||
</p>
|
||||
<p>
|
||||
Les éventuels contenus tiers (images, icônes, bibliothèques) restent soumis à leurs licences d’origine.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 4 : RGPD -->
|
||||
<section id="rgpd" class="legal-section" aria-labelledby="rgpd-heading">
|
||||
<h3 id="rgpd-heading" class="h4">
|
||||
<i class="fas fa-shield-alt me-2 text-primary" aria-hidden="true"></i>
|
||||
4. Protection des données personnelles (RGPD)
|
||||
</h3>
|
||||
|
||||
<h4 class="h5 mt-4">4.1 Responsable du traitement</h4>
|
||||
<p>
|
||||
Le responsable du traitement est l’équipe du projet FOLLIOW (projet pédagogique).
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">4.2 Données collectées</h4>
|
||||
<p>Selon l’utilisation du site, les données pouvant être collectées sont :</p>
|
||||
<ul>
|
||||
<li>Nom / Prenom <li>
|
||||
<li>Pseudo </li>
|
||||
<li>Adresse email (inscription, connexion, partage de projet par email)</li>
|
||||
<li>Contenus déposés par l’utilisateur (projets, descriptions, images)</li>
|
||||
<li>Données techniques minimales (logs de sécurité, adresse IP) à des fins de protection et de diagnostic</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="h5 mt-4">4.3 Finalités du traitement</h4>
|
||||
<ul>
|
||||
<li>Création et gestion de compte</li>
|
||||
<li>Publication et affichage de projets</li>
|
||||
<li>Partage d’un projet par email à la demande de l’utilisateur</li>
|
||||
<li>Sécurisation du site et prévention des abus</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="h5 mt-4">4.4 Durée de conservation</h4>
|
||||
<p>
|
||||
Dans le cadre de ce projet pédagogique, les données sont conservées pendant la durée du projet et des évaluations,
|
||||
puis supprimées ou anonymisées, sauf obligation légale contraire.
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">4.5 Vos droits</h4>
|
||||
<p>Conformément au RGPD, vous disposez de droits d’accès, de rectification, d’effacement et d’opposition.</p>
|
||||
<p>
|
||||
Pour exercer ces droits, contactez-nous à :
|
||||
<a href="mailto:projet.folliow@hotmail.com">projet.folliow@hotmail.com</a>
|
||||
</p>
|
||||
<p>
|
||||
Vous pouvez également introduire une réclamation auprès de la CNIL
|
||||
(<a href="https://www.cnil.fr" target="_blank" rel="noopener">www.cnil.fr</a>).
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 5 : Cookies -->
|
||||
<section id="cookies" class="legal-section" aria-labelledby="cookies-heading">
|
||||
<h3 id="cookies-heading" class="h4">
|
||||
<i class="fas fa-cookie-bite me-2 text-primary" aria-hidden="true"></i>
|
||||
5. Cookies
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
FOLLIOW peut utiliser des cookies <strong>strictement nécessaires</strong> au fonctionnement du site
|
||||
(ex : session de connexion). Aucun cookie publicitaire n’est utilisé.
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">5.1 Qu’est-ce qu’un cookie ?</h4>
|
||||
<p>
|
||||
Un cookie est un petit fichier texte déposé sur votre appareil lors de la visite d’un site.
|
||||
Il permet notamment de conserver une session ou des préférences.
|
||||
</p>
|
||||
|
||||
<h4 class="h5 mt-4">5.2 Types de cookies utilisés</h4>
|
||||
<ul>
|
||||
<li><strong>Cookies techniques</strong> : indispensables (session, sécurité)</li>
|
||||
<li><strong>Cookies de préférence</strong> : éventuels (langue, affichage) si implémentés</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="h5 mt-4">5.3 Gestion des cookies</h4>
|
||||
<p>
|
||||
Vous pouvez configurer votre navigateur pour refuser les cookies. Certaines fonctionnalités du site
|
||||
peuvent alors ne pas fonctionner correctement.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 6 : Limitation de responsabilité -->
|
||||
<section id="responsabilite" class="legal-section" aria-labelledby="responsabilite-heading">
|
||||
<h3 id="responsabilite-heading" class="h4">
|
||||
<i class="fas fa-exclamation-triangle me-2 text-primary" aria-hidden="true"></i>
|
||||
6. Limitation de responsabilité
|
||||
</h3>
|
||||
<p>
|
||||
Les informations présentées sur FOLLIOW sont fournies à titre démonstratif dans le cadre d’un projet pédagogique.
|
||||
L’équipe s’efforce de maintenir le site accessible, sans garantie d’absence d’erreurs ou d’interruptions.
|
||||
</p>
|
||||
<p>
|
||||
L’équipe FOLLIOW ne pourra être tenue responsable des dommages directs ou indirects résultant de l’utilisation du site,
|
||||
notamment en cas d’indisponibilité ou de perte de données.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 7 : Liens hypertextes -->
|
||||
<section id="liens" class="legal-section" aria-labelledby="liens-heading">
|
||||
<h3 id="liens-heading" class="h4">
|
||||
<i class="fas fa-link me-2 text-primary" aria-hidden="true"></i>
|
||||
7. Liens hypertextes
|
||||
</h3>
|
||||
<p>
|
||||
Le site peut contenir des liens vers des sites tiers. FOLLIOW n’exerce aucun contrôle sur ces sites et décline toute
|
||||
responsabilité quant à leur contenu ou leur disponibilité.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Section 8 : Droit applicable -->
|
||||
<section id="droit" class="legal-section" aria-labelledby="droit-heading">
|
||||
<h3 id="droit-heading" class="h4">
|
||||
<i class="fas fa-gavel me-2 text-primary" aria-hidden="true"></i>
|
||||
8. Droit applicable et juridiction compétente
|
||||
</h3>
|
||||
<p>
|
||||
Les présentes mentions légales sont régies par le droit français. En cas de litige, et à défaut d’accord amiable,
|
||||
les tribunaux français seront seuls compétents.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Contact -->
|
||||
<section class="mt-5 p-4 bg-light rounded" aria-labelledby="contact-legal">
|
||||
<h3 id="contact-legal" class="h4 mb-3">
|
||||
<i class="fas fa-envelope me-2 text-primary" aria-hidden="true"></i>
|
||||
Questions ou réclamations
|
||||
</h3>
|
||||
<p>
|
||||
Pour toute question concernant ces mentions légales ou pour exercer vos droits, vous pouvez nous contacter :
|
||||
</p>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-envelope me-2" aria-hidden="true"></i>
|
||||
Par email : <a href="mailto:projet.folliow@hotmail.com">projet.folliow@hotmail.com</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{/block}
|
||||
75
views/project.tpl
Normal file
75
views/project.tpl
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
{extends file="views/layout.tpl"}
|
||||
|
||||
{block name="content"}
|
||||
<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>
|
||||
{if isset($smarty.post.toContinue)}
|
||||
<button type="submit" class="btn btn-warning btn-lg" name="showFormContinue">Reprendre</button>
|
||||
{/if}
|
||||
</form>
|
||||
|
||||
{* Affichage d'un formulaire en cas d'appuie sur le bouton "+" *}
|
||||
{if isset($smarty.post.showForm) || isset($smarty.post.showFormContinue)}
|
||||
{if isset($smarty.session.user)}
|
||||
<form class="m-2" 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>
|
||||
<h3>Image thumbnail</h3>
|
||||
<input name="imageThumbnail" class="form-control" type="file">
|
||||
</div>
|
||||
<div>
|
||||
<h3>Image du projet</h3>
|
||||
<input name="imageProject" class="form-control" type="file">
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<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>
|
||||
</div>
|
||||
</form>
|
||||
{else}
|
||||
<div class="border rounded mt-5">
|
||||
<p class="text-danger p-2">Vous devez vous connecter pour accéder à cette fonctionnalité</p>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
</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">
|
||||
{foreach $arrProjectToDisplay as $objProject}
|
||||
{include file="../app/views/partials/preview.tpl"}
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<section>
|
||||
</body>
|
||||
{/block}
|
||||
|
|
@ -34,7 +34,47 @@
|
|||
{$objProject->getContent()}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Images du projet -->
|
||||
<section id="galerie-projet">
|
||||
<h2>Galerie du projet</h2>
|
||||
<div class="row">
|
||||
{foreach $arrImages as $image}
|
||||
|
||||
{* On affiche l'image si elle est approuvée OU si l'utlilisateur possède le projet OU si l'utlilisateur est Modérateur*}
|
||||
{if ($image.image_status == 'approuvé') ||
|
||||
(isset($smarty.session.user) && $smarty.session.user.user_status == 2) ||
|
||||
(isset($smarty.session.user) && $smarty.session.user.user_id == $objProject->getUser_id())}
|
||||
|
||||
<div class="col-md-4 mb-4">
|
||||
<div class="card {if $image.image_status != 'approuvé'}border-warning shadow-none opacity-75{/if}">
|
||||
|
||||
<img src="{$smarty.env.IMG_PROJECT_PATH}{$image.image_name}" class="card-img-top" alt="{$image.image_alt}">
|
||||
|
||||
{* Visible uniquement par le modérateur *}
|
||||
{if isset($smarty.session.user.user_status) && $smarty.session.user.user_status == 2}
|
||||
<div class="moderator-tools border-top pt-2 mt-2">
|
||||
<div class="d-flex gap-2">
|
||||
<a href="index.php?ctrl=project&action=change_image_status&id_img={$image.image_id}&status=approuvé"
|
||||
class="btn btn-sm btn-success">Valider</a>
|
||||
|
||||
<a href="index.php?ctrl=project&action=delete_image&id_img={$image.image_id}"
|
||||
class="btn btn-sm btn-outline-danger"
|
||||
onclick="return confirm('Supprimer définitivement ?')">Supprimer</a>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{foreachelse}
|
||||
<p>Aucune image disponible pour ce projet.</p>
|
||||
{/foreach}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<!-- Formulaire qui envoie la demande au contrôleur (shareProject) -->
|
||||
<div class="card shadow-sm p-4 mb-5">
|
||||
<form method="post" action="index.php?ctrl=project&action=shareProject">
|
||||
|
|
@ -67,7 +107,6 @@
|
|||
|
||||
<p class="text-muted small">
|
||||
Publié le {$objProject->getCreation_date()}
|
||||
|
||||
</p>
|
||||
|
||||
<button class="btn btn-primary">Contacter le talent</button>
|
||||
|
|
@ -97,7 +136,6 @@
|
|||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</main>
|
||||
{/block}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue