TL;DR
Cela ajoutera une classe topic-solution aux messages marqués comme réponse.
api.addPostClassesCallback((attrs) => {
if (attrs.accepted_answer) return ["topic-solution"];
});
Les classes attribuées à un message sont déterminées ici.
Le hook que vous recherchez existe déjà à la toute fin de ce fichier… comme ceci.
L’API des plugins propose une méthode qui vous permet d’ajouter des classes à un message en fonction d’une condition.
Son fonctionnement consiste à appliquer un callback donné et à retourner une classe à ajouter si la condition est remplie.
Lorsque le callback est déclenché, Discourse lui transmet les attributs du message. Vous pouvez donc, par exemple, faire quelque chose comme ceci.
api.addPostClassesCallback((attrs) => {
console.log(attrs);
});
Si vous vérifiez la console, vous verrez qu’elle affiche les attributs de chaque message.
Ce ne sont là que des exemples ; il y en a davantage.
Heureusement pour vous, lorsqu’un message est marqué comme solution, Discourse en garde une trace et l’ajoute aux attributs du message. La propriété s’appelle accepted_answer.
Il vous suffit donc de vérifier si cela est vrai et d’ajouter votre classe personnalisée si c’est le cas. Comme ceci :
api.addPostClassesCallback((attrs) => {
if (attrs.accepted_answer) return ["topic-solution"];
});
Cela devrait suffire à basculer la classe, même si l’auteur du sujet (OP) change d’avis et choisit une autre solution. La classe sera retirée de l’ancienne réponse et ajoutée à la nouvelle.
