From 9e05196440523dc107ed817a16dc0908ab360640 Mon Sep 17 00:00:00 2001 From: oversu <95a7002b-481b-4ef3-b578-f9c421550aa4@localhost> Date: Sun, 11 Oct 2026 23:33:50 +0200 Subject: [PATCH] =?UTF-8?q?Ajouter=20les=20r=C3=A9seaux=20sociaux=20au=20m?= =?UTF-8?q?enu=20public?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 ++++++++ HISTORIQUE.md | 4 ++++ README.md | 2 +- VERSION | 2 +- app/Views/evolutions.php | 8 +++---- app/Views/public_site_contact.php | 7 +----- app/Views/public_site_layout.php | 38 ++++++++++++++++++++++++++++++- tests/run.php | 10 ++++++++ 8 files changed, 67 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22fb83d..7e2a8bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ Toutes les modifications importantes du projet sont consignées ici. Le format s’inspire de [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/) et le projet suit le [versionnage sémantique](https://semver.org/lang/fr/). +## [1.0.0-rc.33] — 2026-10-11 + +### Réseaux sociaux dans le menu public + +- ajout des icônes des réseaux configurés immédiatement après le lien Contact ; +- masquage automatique des réseaux sans adresse renseignée ; +- ouverture sécurisée dans un nouvel onglet et libellés accessibles aux lecteurs d’écran ; +- réutilisation d’un catalogue unique entre le menu et la page Contact. + ## [1.0.0-rc.32] — 2026-10-02 ### Statistiques par mois et par période diff --git a/HISTORIQUE.md b/HISTORIQUE.md index 5b78c84..a27c64d 100644 --- a/HISTORIQUE.md +++ b/HISTORIQUE.md @@ -10,6 +10,10 @@ L’import depuis Animal Shelter Manager a été conçu comme un parcours pruden Avant la version 1.0, le projet a fait l’objet d’un nettoyage structurel et d’un découpage de ses fichiers les plus volumineux. La recherche universelle, les salles configurables, les traductions française et anglaise et une suite de contrôles isolés ont complété cette phase de stabilisation. +## `1.0.0-rc.33` — Réseaux visibles dès la navigation + +Le site public reprend désormais dans son menu les réseaux sociaux renseignés par l’association. Les icônes restent discrètes, accessibles et cohérentes avec les liens déjà présentés sur la page Contact. + ## `1.0.0-rc.32` — Statistiques à la période souhaitée Les bilans ne sont plus limités à une année complète. Une association peut désormais analyser un mois précis ou choisir librement deux dates ; les volumes d’activité, profils, coûts vétérinaires et comparaisons utilisent tous le même intervalle. diff --git a/README.md b/README.md index ef3f491..753e3fa 100644 --- a/README.md +++ b/README.md @@ -200,7 +200,7 @@ L’option `--apply` ne doit être utilisée qu’après lecture des rapports. L ## État du projet -La candidate actuelle est `1.0.0-rc.32`. La branche 1.0 est gelée fonctionnellement : seuls les défauts bloquants découverts pendant les validations terrain sont corrigés avant `1.0.0`. +La candidate actuelle est `1.0.0-rc.33`. La branche 1.0 est gelée fonctionnellement : seuls les défauts bloquants découverts pendant les validations terrain sont corrigés avant `1.0.0`. Le contrôle de stabilisation est disponible dans [docs/AUDIT-1.0.md](docs/AUDIT-1.0.md). diff --git a/VERSION b/VERSION index 8768c04..78a9d19 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0-rc.32 +1.0.0-rc.33 diff --git a/app/Views/evolutions.php b/app/Views/evolutions.php index 11ce46c..bee3864 100644 --- a/app/Views/evolutions.php +++ b/app/Views/evolutions.php @@ -31,10 +31,10 @@
- 1.0.0-rc.32 -

Statistiques sur mesure

-

Bilans par année, par mois ou entre deux dates, avec coûts vétérinaires et - comparaison de la période précédente.

+ 1.0.0-rc.33 +

Un site public mieux connecté

+

Les réseaux sociaux renseignés par l’association rejoignent la navigation, + avec des liens discrets, sécurisés et accessibles.

diff --git a/app/Views/public_site_contact.php b/app/Views/public_site_contact.php index f2a29a9..2678fc8 100644 --- a/app/Views/public_site_contact.php +++ b/app/Views/public_site_contact.php @@ -14,12 +14,7 @@ $obfuscate = static fn (string$value): string => implode('', array_reverse(mb_st class="contact-obfuscated"> diff --git a/tests/run.php b/tests/run.php index 53e0ec4..78b73af 100644 --- a/tests/run.php +++ b/tests/run.php @@ -296,6 +296,16 @@ try { $externalImage = PublicContentFormatter::render('![Piège](https://example.org/image.webp)'); $assert(!str_contains($externalImage, '"'), 'Les icônes sociales ne sont pas accessibles'); + $assert(str_contains($layout, 'rel="noopener noreferrer"'), 'Les liens externes ne sont pas protégés'); + $assert(!str_contains($contact, '$socialNetworks = ['), 'Le catalogue social est encore dupliqué'); + }); $test('Authentification et mot de passe haché', function () use ($db, $assert): void { $assert(ini_get('session.use_strict_mode') === '1', 'Le mode strict des sessions est désactivé'); $hash = password_hash('MotDePasseSolide!', PASSWORD_DEFAULT);