v1.6.8 — scripts CSP-conformes, densité L/M/S, RSS XML #76

Merged
cedricAbonnel merged 9 commits from dev into main 2026-05-15 19:09:10 +00:00
Owner

Résumé

  • Sélecteur de densité L/M/S (défaut M = 980 px) persisté en localStorage
  • Section "Meilleures audiences" et admin/stats chargées en AJAX depuis le flux RSS XML
  • Tous les scripts inline externalisés pour respecter la CSP script-src 'self'
  • onclick/onchange inline supprimés de admin.php

Inclut

  • v1.6.6 : flux RSS XML pour trending home + admin/stats
  • v1.6.7 : sélecteur densité L/M/S
  • v1.6.8 : conformité CSP + densité M par défaut
## Résumé - Sélecteur de densité L/M/S (défaut M = 980 px) persisté en localStorage - Section "Meilleures audiences" et admin/stats chargées en AJAX depuis le flux RSS XML - Tous les scripts inline externalisés pour respecter la CSP `script-src 'self'` - `onclick`/`onchange` inline supprimés de admin.php ## Inclut - v1.6.6 : flux RSS XML pour trending home + admin/stats - v1.6.7 : sélecteur densité L/M/S - v1.6.8 : conformité CSP + densité M par défaut
cedricAbonnel added 9 commits 2026-05-15 19:08:59 +00:00
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- post_list.php : section AJAX qui lit /trending?period=1h en XML (DOMParser) — plus de rendu PHP
- admin_stats.php : colonne "Pages les plus visitées" chargée en AJAX depuis /trending?period=14d XML
- index.php/stats : suppression de topGrouped pour /post/ ; seuls /book/ et ASN restent côté serveur

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Boutons [L][M][S] dans la barre de recherche hero : pleine largeur (défaut),
980 px centré, 660 px compact. Préférence localStorage. Anti-FOUC inline dans layout.php.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Widget retiré du hero-search, replacé en position:fixed top-right (sous navbar)
- max-width !important pour garantir l'override de Bootstrap sur main.container-fluid
- transition douce sur main, caché en < 576px

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remplace body[data-density] + CSS externe par un élément <style id="density-fouc">
injecté dynamiquement dans <head>, insensible aux problèmes de spécificité et de cache CSS.
Remplace aussi closest() par une boucle parentNode et dataset par getAttribute.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tous les <script> inline et event handlers inline bloqués par la CSP sont
déplacés vers des fichiers JS statiques servis par 'self' :
- density-fouc.js  : anti-FOUC densité (chargé en <head>)
- density.js       : widget L/M/S
- trending-home.js : AJAX "Meilleures audiences" (RSS XML)
- admin-stats.js   : groupes AS + pages trending (RSS XML)
- admin.js         : bookAddArticle + bulk-delete (onclick/onchange → listeners)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cedricAbonnel merged commit 3ddfc1dcf3 into main 2026-05-15 19:09:10 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cedricAbonnel/folio#76