
Langue 🇫🇷 Français (France)
Contexte
API
Développement d'extensions
Contexte
FastComments offre la possibilité d'étendre notre fonctionnalité principale via des scripts que nous appelons Extensions.
Une Extension peut ajouter du balisage supplémentaire au widget de commentaires, ajouter des écouteurs d'événements et exécuter du code arbitraire.
Ici vous trouverez des exemples d'extensions que nous utilisons en production, ainsi que la documentation sur la manière d'écrire des extensions.
Le cycle de vie d'une extension 
Le script pour chaque extension est récupéré et invoqué avant que le widget de commentaires ne commence à récupérer le premier jeu de commentaires et à rendre l'interface utilisateur.
Au chargement initial, les données suivantes seront ajoutées à l'objet extension :
config- Une référence à l'objetconfig.translations- Une référence à l'objettranslations.commentsById- Une référence à tous les commentaires par id.root- Une référence au nœud DOM racine.
Les extensions doivent redéfinir les fonctions souhaitées, que le widget de commentaires invoquera aux moments appropriés.
Définir une extension 
La plus petite extension possible serait :
Run 
Pour cet exemple, enregistrez ceci sous my-extension.js, et mettez-le à disposition à https://example.com/my-extension.min.js.
Cette extension ne fait rien ; au chargement, elle récupère simplement l'objet Extension créé par la bibliothèque principale de commentaires.
Cet objet Extension est un singleton et n'est pas partagé avec d'autres extensions.
Ensuite, pour charger notre extension, nous devons en informer le widget de commentaires. Par exemple :
Run 
Pour des exemples fonctionnels, voir la section suivante.
Exemples d'extensions 
Chez FastComments, nous écrivons nos propres extensions en utilisant la même API. Vous pouvez consulter le code non minifié de ces extensions aux points de terminaison suivants :
Mode sombre
L'extension Mode sombre est chargée de manière conditionnelle lorsqu'une page "dark" est détectée. Cette extension ajoute simplement du CSS au widget de commentaires. De cette façon, nous n'avons pas à charger le CSS du mode sombre lorsqu'il n'est pas nécessaire.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Modération
Lorsque l'utilisateur actuel est modérateur, nous utilisons l'extension de modération.
C'est un bon exemple pour ajouter des gestionnaires d'événements basés sur des clics, effectuer des requêtes API, et ajouter des éléments au menu des commentaires et aux zones de commentaires.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Chat en direct
L'extension Chat en direct (en combinaison avec d'autres configurations et styles) transforme le widget de commentaires en un composant de chat en direct.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
L'objet d'extension 
L'objet d'extension se compose de la définition suivante :
Run 
L'API de l'extension 
Interagir avec l'Extension est simple, car nous définissons simplement des références aux fonctions que nous voulons invoquer.
Pour prolonger l'exemple précédent, disons que nous voulons ajouter du HTML en haut de chaque commentaire :
Run 
Chaque fois que vous renvoyez du HTML de cette manière, il sera fusionné dans l'interface via un algorithme de diff du DOM.
Déclencher manuellement le re-rendu d'un commentaire
Nous pouvons attendre le chargement initial de la page et re-rendre manuellement un commentaire en appelant reRenderComment :
Run 