étapes du 21/09/2025

đŸ› ïž Étape 1 : Le cƓur de l’extension (PHP & SQL)

Maintenant que la table phpbb_post_reactions existe, il faut créer les scripts qui vont interagir avec elle.

1.1. Création du contrÎleur principal (Back-end)

C’est le script qui va gĂ©rer les requĂȘtes AJAX venant du front-end. Il doit ĂȘtre capable de :

  • RĂ©cupĂ©rer les donnĂ©es de la requĂȘte : l’ID du post, l’ID de l’utilisateur et l’emoji cliquĂ©.
  • Valider et sĂ©curiser les donnĂ©es :
    • VĂ©rifier que l’utilisateur est connectĂ© et autorisĂ© Ă  rĂ©agir.
    • S’assurer que le post_id existe bien.
    • Valider l’emoji (par exemple, s’il fait partie d’une liste autorisĂ©e).
  • Interagir avec la base de donnĂ©es :
    • Ajouter une rĂ©action : Si l’utilisateur n’a pas encore rĂ©agi Ă  ce post, insĂšre une nouvelle ligne dans la table post_reactions.
    • Modifier une rĂ©action : Si l’utilisateur a dĂ©jĂ  rĂ©agi, met Ă  jour sa rĂ©action existante.
    • Supprimer une rĂ©action : Si l’utilisateur clique Ă  nouveau sur son emoji, supprime la ligne de la table.
  • Retourner une rĂ©ponse : AprĂšs l’opĂ©ration, renvoie une rĂ©ponse au format JSON contenant :
    • Un statut de succĂšs ou d’Ă©chec.
    • Les compteurs mis Ă  jour pour ce post.

1.2. Mettre en place la logique pour les compteurs

Il te faudra une fonction pour compter les réactions par post.

  • Utilise une requĂȘte GROUP BY reaction_unicode sur ta table post_reactions pour obtenir le nombre de rĂ©actions pour chaque emoji sur un post donnĂ©.
  • Cette fonction sera appelĂ©e par le contrĂŽleur AJAX pour retourner les compteurs mis Ă  jour, mais aussi par le front-end pour afficher les compteurs lors du chargement initial de la page.

đŸ–„ïž Étape 2 : Le front-end (HTML, CSS & JavaScript)

C’est la partie visible de l’extension. L’objectif est de rendre l’interaction fluide et agrĂ©able.

2.1. Affichage des réactions dans le template

  • Ouvre le fichier de template viewtopic_body.html de ton style.
  • Localise la boucle « . C’est ici que chaque post est affichĂ©.
  • À l’intĂ©rieur de cette boucle, ajoute un bloc HTML pour les rĂ©actions, comme tu l’as dĂ©jĂ  prĂ©vu dans ton cahier des charges.
  • Utilise les variables de template de phpBB (postrow.POST_ID) pour associer les rĂ©actions au bon post.
<div class="post-reactions" data-post-id="{postrow.POST_ID}"></div>

2.2. L’interface utilisateur avec JavaScript

  • CrĂ©e un fichier JavaScript (par exemple, reactions.js) dans le rĂ©pertoire styles/all/template/ de ton extension.
  • Dans ce fichier, tu vas coder la logique d’interaction :
    • DĂ©tecter les clics : Ajoute des Ă©couteurs d’Ă©vĂ©nements sur les boutons d’emojis et sur le bouton +.
    • Envoi des requĂȘtes AJAX : Au clic, envoie une requĂȘte POST Ă  ton contrĂŽleur PHP, en passant le post_id et l’emoji en paramĂštre.
    • Mise Ă  jour de l’interface : Une fois la rĂ©ponse JSON reçue, mets Ă  jour les compteurs des emojis et change la classe CSS pour indiquer si l’utilisateur a dĂ©jĂ  rĂ©agi ou non.
  • N’oublie pas d’inclure ton fichier JavaScript dans le template via la fonction page_footer_after.html.

2.3. Le sĂ©lecteur d’emojis

  • CrĂ©e la logique JavaScript pour afficher et masquer la palette complĂšte d’emojis lorsque l’utilisateur clique sur le bouton +.
  • Tu peux utiliser une simple classe CSS pour contrĂŽler la visibilitĂ© (par exemple, display: none ou display: block).

đŸ’Ÿ Étape 3 : Les fonctionnalitĂ©s avancĂ©es et la finalisation

Une fois le noyau fonctionnel, tu peux ajouter les fonctionnalités supplémentaires.

3.1. L’import des donnĂ©es de l’ancienne extension

  • C’est une fonctionnalitĂ© optionnelle mais cruciale pour la migration.
  • Identifie la table de l’ancienne extension.
  • CrĂ©e un script d’importation dans la migration (un nouveau fichier migration.php ou une fonction dans release_1_0_0.php).
  • Ce script lira les donnĂ©es de l’ancienne table et les insĂ©rera dans ta nouvelle table post_reactions, en s’assurant que les formats correspondent.

3.2. Les fichiers de langue et les permissions

  • CrĂ©e les fichiers language/fr/reactions.php et language/en/reactions.php comme prĂ©vu.
  • Utilise les fonctions de phpBB ($user->lang) pour intĂ©grer les chaĂźnes de traduction dans tes templates et tes scripts.
  • Ajoute des permissions dans l’ACP (panneau d’administration) pour permettre aux administrateurs de contrĂŽler qui peut rĂ©agir aux posts (par groupe d’utilisateurs, par forum, etc.).

3.3. Tests et débogage

  • Teste toutes les fonctionnalitĂ©s : ajouter, modifier, supprimer une rĂ©action.
  • VĂ©rifie que les compteurs se mettent Ă  jour correctement pour tous les utilisateurs.
  • Assure-toi que l’extension est compatible avec diffĂ©rents navigateurs et sur mobile.
  • Utilise les outils de dĂ©veloppement du navigateur pour inspecter les requĂȘtes AJAX et les rĂ©ponses du serveur en cas de problĂšme.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *