Resumo:
Dê a cada usuário uma página inicial específica (“Categoria Inicial”) em sua comunidade.
Ele permite que você tenha um único Discourse em que os usuários tenham “páginas iniciais” específicas (leia-se: Categoria), conforme determinado por seu Grupo Primário.
GitHub: Repositório https://github.com/merefield/discourse-category-home
Instalar: Siga o guia de instalação de plugins.
Gostando deste plugin? Por favor,
ele no GitHub ! ![]()
Funcionalidades
Usando apenas os elementos de interface disponíveis de um Discourse normal, isso o torna uma solução robusta e fácil de manter.
Configuração
Usando a funcionalidade normal do Discourse:
- Decida quantas “casas” de Categoria
você quer, crie-as se elas não existirem:
- A menos que já existam, crie um Grupo distinto para cada uma delas
- Adicione os Usuários a cada um desses Grupos apropriadamente
- Defina esse Grupo como o Grupo Primário de cada Usuário
- Permita que cada um desses Grupos acesse sua respectiva Categoria.
Você está PRONTO! ![]()
Agora, sempre que alguém navegar para a página inicial da sua comunidade, ele será redirecionado para a Categoria para a qual seu Grupo Primário tem permissão.
NB: Isso segue uma regra simples que você deve seguir: Se alguém tiver um Grupo Primário registrado e este tiver permissão para uma única Categoria, ele será redirecionado para essa Categoria como sua casa.
Usar um Grupo Primário desta forma tem uma série de vantagens, como você pode ter notado no link acima, não menos importante:
- Você pode dar um Título a alguém
- Você pode dar a ele uma Flair
- Você pode estilizar suas Postagens
Outras considerações
Torne suas páginas iniciais de Categoria mais impactantes, estilizando-as de forma distinta, com, por exemplo: Category Banners
Verificando Permissões distintas de Categoria/Grupo Primário
Para verificar se seu Grupo Primário está associado a apenas uma Categoria, você pode usar este recurso prático pronto para uso do Discourse, por exemplo:
Há apenas uma Categoria na lista, bom! ![]()
A Parte Técnica
A lógica exata empregada é esta:
return CategoryGroup.where(group_id: primary_group).first.category_id
Embora possa ser possível “enganar”, provavelmente é imprudente se você usar esse Grupo Primário em mais de uma Categoria se esperar que isso funcione, então tenha isso em mente e siga minha recomendação.
Fornecendo mais flexibilidade
Estou aberto a sugestões sobre como configurar esse comportamento de outras maneiras, mas gostaria de limitar a quantidade de configurações personalizadas e usar o máximo possível de comportamento e dados prontos para uso. Se você tiver uma solução simples e elegante em mente, me avise.
Não consegue instalar plugins/A coisa do Grupo Primário não funciona para você?
Se você não pode instalar Plugins (porque está em um plano de hospedagem restritivo), ou acha que a configuração do Grupo Primário não funciona para você, considere esta alternativa de Componente de Tema: Custom Homepage for Groups que requer mais configuração personalizada, mas é menos invasivo.
