Question de débutant : Dans votre Guide du développeur (Developing Discourse Themes & Theme Components), vous expliquez comment obtenir des informations sur un utilisateur en utilisant api.getCurrentUser(); puis console.log(user). C’est assez simple. Cependant, comment obtenir des informations similaires sur un sujet lorsque vous êtes sur une page de sujet ? Nous avons essayé getTopic(), mais une telle méthode n’existe pas. Comment obtenir les valeurs disponibles pour un sujet sur une page de sujet spécifique, puis utiliser console.log pour voir ce qui est disponible à utiliser ?
Il existe plusieurs façons de faire cela, mais plutôt que de tirer dans le noir et de suggérer des méthodes qui pourraient ne pas être pertinentes, je souhaite d’abord clarifier la situation.
Que cherchez-vous à faire ? Et comment ?
Donc, ce que nous cherchions à accomplir, c’est d’afficher certains messages HTML à l’échelle du site, mais au lieu de les saisir manuellement sur chaque sujet, nous souhaitions les afficher automatiquement en fonction d’un tag de sujet. Nous avons décidé de stocker simplement les messages et les tags dans les paramètres, puis d’utiliser un widget pour cibler les tags sur les sujets individuels en nous basant sur le conteneur Discourse. Est-ce la bonne approche ? Quelque chose comme ceci :
const container = Discourse.__container__;
const topicController = container.lookup("controller:topic");
tags = topicController.get("target.currentRoute.parent.attributes.tags");
Ensuite, il suffit de comparer les tags du sujet à ceux stockés dans les paramètres et d’afficher le HTML ou non en fonction de cette comparaison.