
Langue 🇨🇦 Français (Canada)
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, des écouteurs d'événements, et exécuter du code arbitraire.
Ici vous trouverez des exemples d'extensions que nous avons en production, ainsi que la documentation sur la façon d'écrire des extensions.
Le cycle de vie de l'extension 
Le script de chaque extension est récupéré et exécuté avant que le widget de commentaires ne commence à récupérer le premier ensemble de commentaires et à afficher 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 rendez-le disponible à https://example.com/my-extension.min.js.
Cette extension ne fait rien, sauf qu'au chargement elle récupère l'objet créé Extension 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 façon conditionnelle lorsqu'une page « sombre » est détectée. Cette extension ajoute simplement du CSS au widget de commentaires. Ainsi, 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 écouteurs d'événements basés sur les clics, effectuer des requêtes API, et ajouter des éléments au menu 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 temps réel.
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 d'extension 
Interagir avec l'Extension est simple, car nous définissons simplement des références aux fonctions que nous souhaitons invoquer.
Pour reprendre l'exemple précédent, supposons que nous voulons ajouter du HTML au haut de chaque commentaire :
Run 
Chaque fois que vous renverrez du HTML comme ceci, il sera fusionné dans l'interface utilisateur 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 relancer manuellement le rendu d'un commentaire en invoquant reRenderComment:
Run 