Carte d'accès aux massifs forestiers
Un site public qui dit chaque jour quels massifs forestiers des Bouches-du-Rhône sont d'accès autorisé, réglementé ou interdit, sur une carte lisible en une page. Thème et extension WordPress écrits pour ce seul usage, sans aucune requête du navigateur vers un domaine tiers.
- Année
- 2026
- Rôle
- Conception produit, développement du thème et de l'extension WordPress, design system, accessibilité et sécurité du portail de mise à jour.
- Stack
- WordPress, PHP 8, MySQL, Leaflet, OpenStreetMap, API REST, Docker
Du 1er juin au 30 septembre, la préfecture des Bouches-du-Rhône publie chaque soir, vers 18 heures, le niveau d'accès du lendemain pour chaque massif forestier : autorisé, réglementé ou interdit. L'information est officielle et publique, mais éclatée entre plusieurs supports. Le site la rassemble sur une seule page, destinée au promeneur qui part le matin et au décideur communal qui évalue le dispositif : le statut du jour est lisible en zéro clic, carte et liste côte à côte.
Le site est un thème sur mesure doublé d'une extension dédiée, sans constructeur de pages, sans thème acheté et sans framework CSS : le style est écrit à la main sur les jetons du design system. La frontière entre les deux est stricte et tenue : le thème ne contient aucune règle métier et n'interroge jamais une source externe, l'extension ne produit aucun HTML public de présentation et expose ses données par des fonctions de lecture et par l'API REST. Le code PHP est en namespace Massifs, sous declare(strict_types=1) et aux WordPress Coding Standards, avec préparation systématique des requêtes.
Le navigateur ne contacte jamais un domaine tiers, sur aucune page : tuiles OpenStreetMap, polices, Leaflet et images sont auto-hébergés. Les sources externes — préfecture, Météo-France, zones parcourues par le feu d'EFFIS/Copernicus — sont consommées côté serveur par des tâches planifiées, mises en cache, puis re-servies depuis le domaine du site, ce qui garde les clés d'API hors du client et permet des en-têtes de sécurité stricts. Le même choix rend le site utilisable JavaScript désactivé : les statuts sont dans le HTML rendu par PHP, la carte n'est qu'un enrichissement progressif qui se replie sur une image statique et la liste textuelle. Les statuts du jour sont par ailleurs exposés en lecture seule au format JSON par une API REST publique et documentée, que la carte consomme elle-même.
La mise à jour quotidienne passe par un portail à rôles restreints : un rôle gestionnaire réduit à la consultation et à la publication des statuts, toute écriture journalisée avec son auteur et ses valeurs avant/après, un historique filtrable exportable en CSV, double authentification pour les administrateurs et limitation des tentatives de connexion. Côté public, l'accessibilité AA est bloquante : la carte a un équivalent textuel intégral, aucune information ne repose sur la couleur seule (motifs et libellés en plus), le parcours clavier est complet, Échap ferme les panneaux, la page tient à 200 % de zoom et à 360 px sans défilement horizontal. Aucun cookie ni donnée personnelle côté visiteur, donc pas de bandeau de consentement — et une règle qui prime sur toutes les autres : sans donnée valide pour le jour, le site affiche « information non disponible » avec un lien vers la carte officielle, jamais un statut périmé présenté comme courant.
Mots-clés
- wordpress
- php
- carte
- api
- rest
- accessibilité
- design
- sécurité
- docker