Themeninformationen abrufen

Neuling-Frage: In Ihrem Entwicklerhandbuch (Developing Discourse Themes & Theme Components) erklären Sie, wie man mit api.getCurrentUser(); Informationen über einen Benutzer erhält und dann console.log(user) ausführt. Das ist einfach. Wie bekommt man jedoch ähnliche Informationen über ein Thema, wenn man sich auf einer Themen-Seite befindet? Wir haben getTopic() versucht, aber eine solche Methode existiert nicht. Wie erhält man die Werte, die auf einer bestimmten Themen-Seite für ein Thema verfügbar sind, und nutzt dann console.log, um zu sehen, was verfügbar ist?

Es gibt verschiedene Möglichkeiten, dies zu tun. Anstatt ins Blaue hinein Vorschläge zu machen, die möglicherweise nicht relevant sind, möchte ich zunächst klären:

Was genau möchtest du erreichen? Und wie?

Also, was wir erreichen wollten, ist folgendes: Wir haben bestimmte HTML-Nachrichten, die siteweit angezeigt werden sollen. Anstatt sie einzeln in jedem Thema einzugeben, wollten wir sie automatisch basierend auf einem Themenschlagwort anzeigen. Wir haben uns entschieden, die Nachrichten und Schlagwörter einfach in den Einstellungen zu speichern und einen Widget-Container zu verwenden, um die Schlagwörter in den einzelnen Themen basierend auf dem Discourse-Container zu targeten. Ist das der richtige Weg? Also so etwas wie:

 const container = Discourse.__container__;
 const topicController = container.lookup("controller:topic");
 tags = topicController.get("target.currentRoute.parent.attributes.tags");

Dann einfach die Schlagwörter des Themas mit denen in den Einstellungen vergleichen und basierend auf dem Vergleich HTML anzeigen oder nicht.