Réactions et commentaires sur les articles #43

Closed
opened 2026-05-12 23:35:47 +00:00 by cedricAbonnel · 1 comment
Owner

Fonctionnalité

Ajout de deux mécanismes d'interaction pour les visiteurs sur chaque article.

Réactions rapides

  • Trois réactions : 👍 Utile / 🔥 Important / 🤔 À creuser
  • Accessible sans compte (cookie UUID anti-doublon, 1 an, HttpOnly)
  • Toggle : cliquer à nouveau retire la réaction
  • Comportement async via reactions.js (fetch + fallback formulaire natif)
  • URL propre : POST /react

Commentaires avec vérification email

  • Formulaire : nom, email (non publié), texte (2000 chars max)
  • Protection : honeypot + CSRF en session
  • Envoi d'un code de vérification à 6 chiffres par email (expire 24 h)
  • Auto-publié après confirmation
  • URL propre : POST /comment, GET /verify-comment/<6chiffres>

Modération admin

  • Onglet Commentaires dans /admin/comments
  • Masquer / republier chaque commentaire
  • URL propre : POST /comment-moderate

Fichiers modifiés

  • src/ReactionManager.php (nouveau)
  • src/CommentManager.php (nouveau)
  • templates/comments_section.php (nouveau)
  • public/assets/js/reactions.js (nouveau)
  • database/interactions_create.sql (nouveau)
  • public/.htaccess
  • public/index.php
  • templates/post_view.php
  • templates/admin.php
  • templates/layout.php

BDD

CREATE TABLE article_reactions (...);
CREATE TABLE comments (...);

Tables créées sur le serveur.

## Fonctionnalité Ajout de deux mécanismes d'interaction pour les visiteurs sur chaque article. ### Réactions rapides - Trois réactions : 👍 Utile / 🔥 Important / 🤔 À creuser - Accessible sans compte (cookie UUID anti-doublon, 1 an, HttpOnly) - Toggle : cliquer à nouveau retire la réaction - Comportement async via `reactions.js` (fetch + fallback formulaire natif) - URL propre : `POST /react` ### Commentaires avec vérification email - Formulaire : nom, email (non publié), texte (2000 chars max) - Protection : honeypot + CSRF en session - Envoi d'un code de vérification à 6 chiffres par email (expire 24 h) - Auto-publié après confirmation - URL propre : `POST /comment`, `GET /verify-comment/<6chiffres>` ### Modération admin - Onglet **Commentaires** dans `/admin/comments` - Masquer / republier chaque commentaire - URL propre : `POST /comment-moderate` ## Fichiers modifiés - `src/ReactionManager.php` (nouveau) - `src/CommentManager.php` (nouveau) - `templates/comments_section.php` (nouveau) - `public/assets/js/reactions.js` (nouveau) - `database/interactions_create.sql` (nouveau) - `public/.htaccess` - `public/index.php` - `templates/post_view.php` - `templates/admin.php` - `templates/layout.php` ## BDD ```sql CREATE TABLE article_reactions (...); CREATE TABLE comments (...); ``` Tables créées sur le serveur.
Author
Owner

Implémenté et déployé.

Commits :

  • 0a44ab9 feat: boutons haut/bas de page dans la sidebar article
  • 78d6c65 feat: déplacer 'À lire aussi' après les réactions dans la colonne principale
  • f603c02 feat: liens d'ancre vers les sections dans la sidebar (à lire aussi, réactions, commentaires)

Tables BDD article_reactions et comments créées sur le serveur.

Implémenté et déployé. Commits : - `0a44ab9` feat: boutons haut/bas de page dans la sidebar article - `78d6c65` feat: déplacer 'À lire aussi' après les réactions dans la colonne principale - `f603c02` feat: liens d'ancre vers les sections dans la sidebar (à lire aussi, réactions, commentaires) Tables BDD `article_reactions` et `comments` créées sur le serveur.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cedricAbonnel/varlog#43