Commit Graph
18 Commits
Author SHA1 Message Date
valentin_le_moign f5b75f05e4 Pages membres : « Mis à jour le » toujours affiché, date de création du compte en secours
La ligne n'est plus masquée quand le profil n'a pas été réenregistré depuis
la mise en place du suivi : on affiche alors user_registered.
2026-10-12 14:38:19 +02:00
valentin_le_moign 69d07ec0c0 Interligne des corps en <div> : CSS compilée + div vides de fin masquées
Les <div></div> vides en fin de corps creusaient désormais un espace avant
les mots-clés : masquées via :has(~ …), sélecteur passé en @at-root
interpolé car Ruby Sass 3.7 supprime sinon silencieusement le :has().
2026-10-12 14:31:21 +02:00
valentin_le_moign da2504cf2f Retours client 09-10/2026 : accueil, admin, pages membres, interligne
- Accueil : bouton « Toutes les manifestations scientifiques » (au lieu de
  « Tous les événements »), titre de la page cible
- Accueil : diaporama Ouvrages et revues trié par date d'événement /
  de publication (thalim_event_date_order) et non par date de création
- Admin : bloc « Type d'annonce » de retour dans la colonne de droite —
  le groupe Pods s'appelle désormais `categorie`, la metabox est donc
  #pods-meta-categorie
- Pages membres : « Mis à jour le » lit la date de dernière modification
  du profil (user meta thalim_profile_updated, posée sur profile_update et
  à la sauvegarde Pods) au lieu de user_registered (date de migration) ;
  ligne masquée tant que le profil n'a pas été réenregistré
- Single : interligne et espacement des corps collés depuis un webmail
  (<div> par paragraphe, <div></div> vides) — SCSS seulement, CSS à compiler
2026-10-12 14:19:47 +02:00
valentin_le_moign 53f5a991bb 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).

Claude-Session: https://claude.ai/code/session_01WQLwtNFa1LNaN7QTAbYkZx
2026-09-10 01:16:20 +02:00
valentin_le_moign ddb1350381 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.

Claude-Session: https://claude.ai/code/session_01WQLwtNFa1LNaN7QTAbYkZx
2026-09-10 00:59:44 +02:00
valentin_le_moign e806c18225 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.

Claude-Session: https://claude.ai/code/session_011w7RzAHv4r1Yahnm2NwDDG
2026-08-27 17:47:53 +02:00
valentin_le_moign 61fc7a0a1e 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 0a37adc872 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 a4bd228aa2 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 3095504198 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 d7d5d83f84 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_moign d9bdd60071 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.
2026-06-10 18:48:12 +02:00
valentin_le_moign d3ed229760 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.
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