Permitir que usuários criem seus próprios sub-fóruns de grupo? (como canais do Slack)

Gostaria que os usuários pudessem criar seus próprios “mini-fóruns”. É algo semelhante ao que este usuário tinha em mente, e comparável à capacidade de os usuários criarem canais no Slack.

Assim como alguém que administra seu próprio fórum, isso deve permitir que o criador publique mensagens no topo do “subfórum” e escolha quais outros usuários podem participar dele.

Se os usuários pudessem criar suas próprias categorias, isso chegaria muito perto dessa funcionalidade. No entanto, pelas respostas à solicitação do usuário vinculada acima, parece que isso seria muito intensivo em termos de recursos e não recomendado.

Entendo que isso não faz parte da funcionalidade principal do Discourse. Existe alguma maneira de eu fazer isso ou algo próximo?

Estou postando aqui e não em Marketplace, porque estou tentando descobrir como fazer isso por conta própria (inclusive se isso significa programar sobre o Discourse).

E se não for possível com o Discourse, estou aberto a outras sugestões (embora, obviamente, eu prefira continuar com o Discourse!)

2 curtidas

Eu dou às pessoas suas próprias categorias, elas pedem e explicam como gostariam que fosse configurado, e então eu faço. Temos poucos fóruns de alta qualidade usados como blogs. :slight_smile:

3 curtidas

Obrigado. Isso poderia ser uma forma de começar, mas a ideia é que, eventualmente, muitos usuários possam criar suas próprias categorias, assim como os canais do Slack. Poderiam acabar existindo centenas de categorias ou mais, conforme a plataforma cresce.

1 curtida

Você deve ser capaz de fazer isso usando Grupos. Pesquise sobre grupos onde os usuários podem se juntar e depois se comunicar dentro do Grupo, o que pode ser mais flexível do que categorias.

5 curtidas

Os grupos podem funcionar exatamente como um canal do Slack, mas com posts de fórum do Discourse em vez de mensagens de chat do Slack?

Li este guia sobre grupos e também esta discussão sobre grupos versus categorias.

Pelo que entendi, grupos são apenas uma coleção de pessoas onde, quando um membro do grupo diz algo, os outros membros do grupo recebem uma notificação? Isso seria diferente do que estou procurando.

Pelas postagens que referenciei, parece que você pode criar um grupo e conceder a esse grupo apenas a permissão de ler e postar em uma determinada categoria. Mas isso parece depender das categorias de qualquer forma, e, portanto, traz os mesmos problemas antigos: os usuários não conseguem criar categorias, você deve ter apenas algumas categorias, etc.

1 curtida

Por que não usar tags? As tags podem ser criadas por qualquer pessoa, e clicar em uma tag leva você efetivamente a um sub-fórum composto pelas postagens daquela tag. Também permite configurar notificações específicas para essa tag e criar novos tópicos com a tag já anexada. Você pode ver um exemplo aqui com nossa tag “fantasia”.

Falando por experiência pessoal, quando você tem centenas de categorias, o desempenho é afetado. A equipe do Discourse fez um ótimo trabalho para mitigar isso desde que nossa comunidade sobrecarregou o sistema, mas é uma preocupação a ser considerada.

2 curtidas

Obrigado pela sugestão. Isso provavelmente é de fato o mais próximo do que tenho em mente, considerando as possibilidades atuais, assumindo que os grupos não funcionem.

Você acha que consigo configurar para que toda postagem nesse “sub-fórum” tenha automaticamente essa tag, e que os usuários não possam removê-la? (Eu gostaria que eles pudessem remover e adicionar outras tags, se quisessem.)

E quanto a dar ao criador do sub-fórum controle especial sobre a página vinculada à tag, como poder fixar postagens no topo da página e talvez decidir quem pode postar nessa página?

1 curtida

Mais uma reflexão: consigo usar a API para alcançar o que tenho em mente, ou seja, um canal restrito semelhante ao do Slack?

EDIT: Vou tentar simplificar minha postagem anterior:

Entendo como posso usar a funcionalidade de tags para criar uma página que parece quase um subfórum.

Suponho que possa adicionar algum HTML no topo da página para dar ao subfórum um nome e uma descrição. E vejo como poderia ter um aplicativo na frente do fórum, onde o usuário clica em um botão que diz: “Criar Subfórum”, o qual, por meio da API, cria uma tag e redireciona o usuário para a página dessa tag.

Até aqui, tudo bem. PORÉM, mesmo estando disposto a ser criativo com um aplicativo separado que se comunique com a API do Discourse, é possível atender aos seguintes requisitos fundamentais:

  1. Quando o criador do subfórum cria um tópico nele, esse tópico é fixado no topo do subfórum. E, mais importante:

  2. A capacidade de postar nesse subfórum é restrita às pessoas que o criador aprovou.

Não me importo que o processo de aprovação ocorra em um aplicativo separado que eu desenvolva (caso o Discourse não ofereça essa funcionalidade), mas existe uma maneira, seja com “Discourse puro” ou com “Discourse + aplicativo que se integra à API”, de fazer com que apenas um determinado grupo de usuários possa postar no subfórum?

Lembrando que haverá um grupo diferente de usuários permitidos para cada subfórum. E precisa funcionar como um subfórum com sua própria página (assim como os canais do Slack) — portanto, usar apenas mensagens privadas seria insuficiente.

Talvez isso seja o que os grupos fazem (vincular grupos a uma tag específica e única talvez?), mas ainda não consegui entender como eles funcionam.

Caso contrário, talvez haja uma maneira de interceptar uma postagem antes que ela seja enviada, verificá-la em um banco de dados externo que eu configure e permitir a postagem no subfórum apenas se o usuário tiver as permissões necessárias?

1 curtida

Olá @Heather_Dudley, estou começando a entender como posso usar as tags para chegar perto disso. Então, obrigado novamente pela sua resposta.

Percebi que, na página de resumo da tag, se você criar uma nova postagem, a tag aparece automaticamente. Você faz algo para garantir que os usuários não removam a tag de um novo tópico por acidente?

Em outras palavras, estou tentando descobrir como impedir que os usuários removam a primeira tag que aparece quando eles criam um tópico a partir da página de tags (ao mesmo tempo em que permitem que eles adicionem ou removam outras tags).

Na verdade, não. Tentar fazer quase qualquer coisa para “impedir que os usuários façam X” é um esforço inútil. Eduque-os. Remova as postagens nas quais eles não estão marcados e explique o motivo.

No nível da categoria, você pode exigir tags:

Obrigado. É bom saber disso.