Existe alguma maneira de “ocultar” subcategorias das listas de tópicos e exibir as categorias principais abaixo do título do tópico?
O resultado desejado é uma categoria raiz com n subcategorias. Essas subcategorias não devem ser exibidas no front-end. Elas são usadas apenas para restringir o acesso às postagens com base na associação a grupos.
Na lista de tópicos, gostaria de exibir a categoria principal abaixo do título do tópico, em vez da subcategoria.
Pensei em usar tags, mas, infelizmente, não consigo restringir o acesso aos tópicos dessa forma.
Mas, se você quiser que isso ocorra apenas para uma categoria pai específica, precisaria adicionar mais lógica. Não sei qual seria a maneira recomendada de fazer isso: registrar um helper do Handlebars?
Outra abordagem seria sempre mostrar os links da categoria e da categoria pai e, em seguida, ocultar os que você não deseja com CSS.
As categorias principais não estão no modelo padrão, então sim, imagino que você precise modificar o modelo. Pelo menos, não conheço uma abordagem mais simples para alcançar isso.
Não há nenhuma configuração do site para modificar modelos; enviarei o código para você testar por mensagem direta.
Em geral, você deve evitar substituições completas de modelos, pois elas exigem manutenção: se uma atualização do Discourse quebrar seu tema, você precisará executar um diff e verificar o que mudou.
O que você pode fazer é dar um passo para trás e modificar os dados que são passados para o modelo.
O topic-list-item é um componente Ember, então você pode usar api.modifyClass para fazer as alterações desejadas.
Por exemplo, aqui está um trecho que exibirá o emblema da categoria pai em tópicos de subcategorias abaixo do título. Se o tópico estiver na categoria principal, o código não terá efeito.
Editei o trecho acima para refletir essa alteração. Tudo o que você precisa fazer é adicionar os IDs das categorias pai ao array targetCategoryIds. Você pode encontrar o ID da categoria visitando a página da categoria e verificando a URL.
https://meta.discourse.org/c/support/6
O “6” no final da URL acima é o ID da categoria de suporte aqui no Meta.
@Johani Onde exatamente devo colocar este trecho de código?
Tentei colocá-lo na tag </head> e na parte do cabeçalho do componente do meu tema, onde armazeno todo o meu CSS. Mas, então, a lista de tópicos é cortada exatamente no local onde o primeiro tópico afetado da subcategoria deveria ser listado.
Sim, houve um problema na forma como a categoria foi configurada que eu não percebi localmente. Editei o trecho acima, e agora deve funcionar.
O trecho acima permite que você defina as categorias nas quais deseja que isso funcione. Se quiser que funcione em todas as categorias, você usaria algo assim.