Paheko

Gestion d'association simple, complète et efficace

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 :

Message aux nouveaux visiteurs
Message 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&nbsp;!</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">&rarr; 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">&rarr; 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">&rarr; 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.

Affichage du nombre de vélos en stock
Affichage du nombre de vélos en stock

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

Liste des vélos en vente
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&nbsp;!
            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&nbsp;: 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}}&nbsp;€</b>
                    </td>
                </tr>
            {{/sql}}
            </tbody>
        </table>
    </article>
</section>

{{:include file="./_foot.html"}}

Mis à jour le lundi 9 mars 2026

Vous n'avez pas trouvé réponse à vos questions ?

N'hésitez pas à chercher ou poster dans le forum d'entraide :-)