Olá a todos,
Aprendi muito usando templates, plugin outlets e toda a mágica maravilhosa no Discourse. É possível listar todas as tags usadas em uma categoria no topo da lista de tópicos lá?
Olá a todos,
Aprendi muito usando templates, plugin outlets e toda a mágica maravilhosa no Discourse. É possível listar todas as tags usadas em uma categoria no topo da lista de tópicos lá?
Consigo realizar isso mais ou menos com: Discourse Popular Tag Sidebar
Vou ver o que consigo aprender.
Você pode obter as top_tags facilmente:
Importe ajax – import { ajax } from \"discourse/lib/ajax\";, depois →
ajax(`/c/general.json`).then((data) => {
console.log(data.topic_list.top_tags);
});
Esta é a categoria general; você pode substituí-la por uma variável ou configuração de componente de tema.
Se você quiser exibir todas as tags sem filtro por categoria, use /tags.json.
Para usar o outlet acima da lista de tópicos, o nome do outlet é /javascripts/discourse/connectors/above-main-container/{nome-do-seu-arquivo}.hbs. Recomendo ver como isso é feito em outros componentes de tema e ler Using Plugin Outlet Connectors from a Theme or Plugin.
Mais difícil é obter todas as tags. Você pode olhar a estrutura de dados de /c/general.json, que se parece com isto. Em vez de fazer data.topic_list.top_tags, você pode iterar cada um em data.topic_list.topics e adicionar cada tags para cada topic a um array. data.topic_list.topics.map((topic) => topic.tags);.
Espero que ajude! ![]()