Tag in cima all'elenco degli argomenti in una categoria

Ciao a tutti,

Ho imparato molto usando i template, i plugin outlet e tutta la meravigliosa magia di Discourse. È possibile elencare tutti i tag utilizzati in una categoria in cima all’elenco degli argomenti lì?

Posso più o meno raggiungere questo obiettivo con: Discourse Popular Tag Sidebar

Vedrò cosa posso imparare.

È possibile ottenere facilmente i top_tags:

Importa ajax – import { ajax } from \"discourse/lib/ajax\";, quindi –\u003e

ajax(`/c/general.json`).then((data) =\u003e {
  console.log(data.topic_list.top_tags);
});

Questa è la categoria general; puoi sostituirla con una variabile o un’impostazione del componente tema.

Se desideri visualizzare tutti i tag senza filtro per categoria, usa /tags.json.

Per utilizzare l’outlet sopra l’elenco degli argomenti, il nome dell’outlet è /javascripts/discourse/connectors/above-main-container/{nome-del-tuo-file}.hbs. Ti consiglio di vedere come viene fatto in altri componenti tema e di leggere Using Plugin Outlet Connectors from a Theme or Plugin.


Più difficile è ottenere tutti i tag. Puoi esaminare la struttura dei dati da /c/general.json, che appare così. Invece di usare data.topic_list.top_tags, potresti iterare su ciascuno in data.topic_list.topics e aggiungere ciascun tags per ciascun topic a un array. data.topic_list.topics.map((topic) =\u003e topic.tags);.

Spero sia d’aiuto! :slight_smile: