Hallo zusammen,
ich habe durch die Verwendung von Vorlagen, Plugin-Outlets und all der wunderbaren Magie in Discourse viel gelernt. Ist es möglich, alle in einer Kategorie verwendeten Tags am Anfang der Themenliste dort aufzulisten?
Hallo zusammen,
ich habe durch die Verwendung von Vorlagen, Plugin-Outlets und all der wunderbaren Magie in Discourse viel gelernt. Ist es möglich, alle in einer Kategorie verwendeten Tags am Anfang der Themenliste dort aufzulisten?
Ich kann das irgendwie mit Folgendem erreichen: Discourse Popular Tag Sidebar
Ich werde sehen, was ich lernen kann.
Sie können die top_tags ganz einfach abrufen:
Importieren Sie ajax – import { ajax } from \"discourse/lib/ajax\";, dann –\u003e
ajax(`/c/general.json`).then((data) =\u003e {
console.log(data.topic_list.top_tags);
});
Dies ist die general-Kategorie; Sie können dies durch eine Variable oder eine Theme-Komponenten-Einstellung ersetzen.
Wenn Sie alle Tags ungefiltert nach Kategorie anzeigen möchten, verwenden Sie /tags.json.
Um den Outlet über der Themenliste zu verwenden, lautet der Name des Outlets /javascripts/discourse/connectors/above-main-container/{name-of-your-file}.hbs. Ich empfehle Ihnen, sich anzusehen, wie dies in anderen Theme-Komponenten geschieht, und Using Plugin Outlet Connectors from a Theme or Plugin zu lesen.
Schwieriger ist es, alle Tags zu erhalten. Sie können die Datenstruktur von /c/general.json betrachten, die wie folgt aussieht. Anstatt data.topic_list.top_tags zu verwenden, könnten Sie jeden Eintrag in data.topic_list.topics durchlaufen und jeden tags für jeden topic zu einem Array hinzufügen. data.topic_list.topics.map((topic) =\u003e topic.tags);.
Ich hoffe, das hilft! ![]()