15 Commits
Author SHA1 Message Date
valentin_le_moignandClaude Opus 5 167950c627 Loader de scroll infini : styles réactivés, sans décalage de mise en page
Les règles `.scroll-spinner` et leurs keyframes étaient enfermées dans le
bloc `/* … */` legacy de `_category.scss` : Sass recopie ces commentaires
verbatim, les trois points n'avaient donc aucun style et restaient
invisibles pendant le chargement AJAX. Bloc sorti du commentaire (le
legacy reste en place), points allégés (5 px, gris) et marge haute
élargie.

Le modifieur `--reserve` réserve la place en permanence et n'anime que
l'opacité, au lieu de basculer `display` : plus de saut de mise en page
ni à l'apparition ni à la disparition. `infiniteScroll.js` bascule
désormais la classe `is-loading`.

Le `rootMargin` de l'observer passe à 700 px pour que la requête parte
plus tôt, et le loader de l'agenda est supprimé (markup + JS).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WQLwtNFa1LNaN7QTAbYkZx
2026-09-10 01:16:20 +02:00
valentin_le_moignandClaude Opus 5 f663ff38f5 Dropdown axe thématique : surbrillance de l'axe réellement actif + hover
Le premier item du popover était grisé en dur (`:first-of-type`), donc
affiché comme actif quel que soit l'axe courant. La classe `is-active`
est désormais posée en Twig sur l'axe actif (ou sur « Tous les axes »
hors mode taxonomie), et le style suit cette classe.

Ajout d'un hover en `background-image` (calque translucide) plutôt qu'en
`background-color`, pour un assombrissement identique sur les lignes
blanches et grises du zébrage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WQLwtNFa1LNaN7QTAbYkZx
2026-09-10 00:59:44 +02:00
valentin_le_moignandClaude Opus 5 b374d9c423 Slugs numériques : garde-fou et régénération après un enregistrement sans titre
Avec la structure de permaliens /%category%/%postname%/, la règle
(.+?)/([^/]+)(?:/([0-9]+))?/?$ lit un dernier segment numérique comme un
numéro de page : l'article répond 404 tout en restant listé partout.

Deux chemins produisaient un tel slug :
- un titre vide à la première publication — le cœur retombe alors sur l'ID
  du post et ne régénère plus jamais le slug ensuite, même titre corrigé ;
  c'est ce que provoquait post-title-required.php, qui laisse le post
  s'écrire en publish avant d'annuler son statut ;
- un titre légitimement numérique (« 1917 »).

- inc/post-slug-guard.php : filtre wp_unique_post_slug limité à post/page,
  suffixe les slugs purement numériques (1917 → 1917-2). Les nav_menu_item
  et attachments, dont les slugs numériques sont normaux, ne sont pas touchés.
- pods-save-error-handler.php : l'annulation de statut vide aussi post_name
  quand le titre est vide, pour qu'il se régénère depuis le vrai titre.

Les deux articles déjà touchés en prod restent à re-sluguer à la main.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011w7RzAHv4r1Yahnm2NwDDG
2026-08-27 17:47:53 +02:00
valentin_le_moign 3f62d882f4 Newsletters archivées lisibles en mobile (iframe srcdoc) + fix couleur du bouton de recherche sur iOS 2026-07-06 23:34:30 +02:00
valentin_le_moign 5f682a637b Axes groupés par période sur les profils utilisateur + fix soulignement des titres de cards liées 2026-07-06 18:55:37 +02:00
valentin_le_moign e30b0baa50 Corrections Pods (sous-types custom-simple, sync pick→taxonomie), agenda accueil et gras/italique single 2026-07-06 17:12:01 +02:00
valentin_le_moign e6ab5124dd Droits d'accès : menu Outils visible pour les éditeurs + édition des séances héritée du séminaire 2026-06-13 06:40:48 +02:00
valentin_le_moign 9280c3b9ce Refactoring : sécurité (XSS), découpage en modules inc/* et js/admin/*, IDs résolus par slug, perf (caches, cron Gravatar, assets auto-hébergés), tests 2026-06-10 21:38:46 +02:00
valentin_le_moignandClaude Opus 4.8 e6b73df516 fix: sauts de ligne des adresses affichés sur le front
Le champ adresse (single + séances) était rendu brut : les retours à la ligne
saisis au back-office n'apparaissaient pas. Application de nl2br + esc_html à la
source (les templates le rendent en |raw), pour afficher les adresses sur
plusieurs lignes tout en gardant la sortie échappée.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 18:48:12 +02:00
valentin_le_moignandClaude Opus 4.8 f9467eb101 fix: verrouillage catégorie dans la modale d'ajout de séance
Le verrouillage de la catégorie sur « Séance de séminaire » était attaché via
$(window).on('load') depuis $(document).ready. Dans l'iframe de la modale Pods,
l'événement load est déjà émis quand ce code s'exécute, donc le handler ne se
déclenchait jamais (révélé par un changement de timing de chargement WP/jQuery).
Exécution immédiate si document.readyState vaut déjà 'complete', sinon attente
de load comme avant.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 18:20:30 +02:00
valentin_le_moign bea33f9fd3 correction doublons index Ajax + découplage slug categories couleurs 2026-06-04 17:41:11 +02:00
valentin_le_moign d900e7aa65 Classer les images en portrait selon l'orientation EXIF 2026-06-04 13:36:10 +02:00
valentin_le_moign 369b882693 Affichage des dates : année seule pour les Ouvrages, plage pour les séminaires 2026-05-28 18:27:05 +02:00
valentin_le_moign c1cad3b044 Empêche les contributeurs de publier les posts dont ils sont membres 2026-05-28 18:02:23 +02:00
valentin_le_moign ccf32dcece Initial commit 2026-05-12 23:33:46 +02:00