La rustine : stock de vélos, message selon la langue du visiteur
Sur son site web, l'atelier vélo « La rustine » à Dijon a modifié le code du module fourni avec Paheko de plusieurs manières.
Affichage du prochain événement sur la page d'accueil
Quand il y a un un événement à venir, on veut qu'il s'affiche sur la page d'accueil jusqu'à sa fin.
Il suffit de donner à un article de la catégorie « Actualité » une date dans le futur, sinon c'est le contenu de la page « L'atelier » qui donne des infos générales sur l'atelier qui sera affiché.
Pour cela dans le squelette index.html on a remplacé la section {{#articles…}}…{{/articles}} par la suivante :
{{#articles order="published DESC" future=true limit=1}}
<section class="articles main">
<article>
<h1><a href="{{ $url }}">{{ $title }}</a></h1>
<p>{{ $html|raw }}</p>
</article>
</section>
{{else}}
{{#pages uri="atelier"}}
<article>
<p>{{ $html|raw }}</p>
</article>
{{/pages}}
{{/articles}}
Message de bienvenue dans la langue du visiteur
Le site affiche un court message expliquant le fonctionnement de l'association aux nouveaux visiteurs :

Le message est aussi disponible en plusieurs langues, et change selon la langue du visiteur. Le code suivant a été inséré dans le squelette index.html :
<section class="langInfo" style="display: none">
<article>
{{if $visitor_lang === 'fr'}}
<h3>Bonjour !</h3>
<h4>La rustine est un atelier de réparation de vélos associatif à Dijon.</h4>
<p>…texte de bienvenue…</p>
<p><a href="{{$root_url}}Activites">→ En savoir plus sur nos activités</a></p>
{{elseif $visitor_lang === 'es'}}
<h3>¡Hola!</h3>
<h4>La Rustine (el Parche) es un taller asociativo de reparación de bicicletas de Dijon.</h4>
<p>…texte de bienvenue…</p>
<p><a href="{{$root_url}}DIY-taller-de-reparacion-de-bicicletas">→ Para saber más sobre nuestras actividades</a></p>
{{else}}
<h3>Oh, Hi stranger!</h3>
<h4>We are a community bike workshop in Dijon, France, the city of mustard.</h4>
<p>…texte de bienvenue…</p>
<p><a href="{{$root_url}}DIY-Bicycle-Repair-Workshop">→ Learn more about us and our activities</a></p>
{{/if}}
</article>
</section>
Le message n'apparaît qu'à la première visite grâce à ce code Javascript :
<script type="text/javascript">
var first_visit = true;
if (typeof sessionStorage !== 'undefined' && sessionStorage.getItem('visited')) {
first_visit = false;
}
if (first_visit) {
document.querySelector('.langInfo').style.display = 'block';
sessionStorage.setItem('visited', 1);
}
</script>
Affichage du nombre de vélos en vente dans le menu du site web
La rustine utilise l'extension « Gestion du stock de vélos », et l'utilise pour afficher le stock de vélos en vente sur le site web.

Dans le squelette _head.html, juste avant le dernier </nav>, le code suivant a été ajouté :
<section class="bikes-stock">
{{#sql select="COUNT(*) AS count" tables="plugin_stock_velos" where="prix > 0 AND date_sortie IS NULL"}}
<article>
<a href="{{$root_url}}velos.html">
<h3>Nos vélos d'occasion</h3>
{{$count}} vélos réparés en stock
</a>
</article>
{{/sql}}
</section>
Page affichant la liste des vélos en vente

Un nouveau fichier (squelette) nommé velos.html a été créé :
{{:include file="./_head.html"}}
<h1>Nos vélos</h1>
<section class="stock">
<article class="web-content">
<p>
Ne jetez plus vos vieux vélos !
La rustine les récupère et les répare, permettant ainsi de donner une seconde vie à votre bicyclette.
Les vélos qui ne sont pas réparables ne sont pas perdus : ils sont démontés et les pièces sont classées
et rangées pour pouvoir servir sur un autre vélo.
</p>
{{#sql select="COUNT(*) AS count" tables="plugin_stock_velos" where="prix > 0 AND date_sortie IS NULL"}}
<p>
Nous avons <strong>{{$count}}</strong> vélos révisés et réparés en stock en ce moment.
Mais si vous êtes prêts à passer un peu de temps, nous avons toujours des dizaines de vélos en attente
de réparation que vous pouvez réparer par vous-même.
</p>
{{/sql}}
</article>
<article class="web-content table">
<table>
<thead>
<tr>
<th>Marque et modèle</th>
<td>Type de vélo</td>
<td>Taille des roues</td>
<td>Cadre</td>
<td>Prix</td>
</tr>
</thead>
<tbody>
{{#sql select="prix, modele, roues, type, genre, etiquette" tables="plugin_stock_velos" where="prix > 0 AND date_sortie IS NULL" order="date_entree ASC"}}
<tr>
<th>{{$modele}}</th>
<td>{{$type}}</td>
<td>{{$roues}}</td>
<td>{{$genre}}</td>
<td>
<b style="white-space: nowrap;">{{$prix}} €</b>
</td>
</tr>
{{/sql}}
</tbody>
</table>
</article>
</section>
{{:include file="./_foot.html"}}Mis à jour le lundi 9 mars 2026