E aí, existe alguma forma de não criar automaticamente um tópico para cada post de blog que publicamos no nosso site, mas ainda assim manter a seção de discussões?
Acho que faz mais sentido gerar um tópico automaticamente desde que haja um comentário em determinado post de blog. Atualmente, a lógica é que o tópico precise existir antes que as pessoas possam comentar.
Para deixar claro que não estamos usando nenhum sistema de comentários além do Discourse. O que queremos é criar um tópico apenas quando houver realmente um comentário em uma postagem, em vez de uma série de tópicos vazios no Discourse como abaixo:
Não muito… Como os usuários devem responder a um tópico se ele ainda não foi postado em nenhum lugar? Todo tópico precisa começar com 0 respostas. Acho que estou perdendo algo aqui
Acho que o que você deseja é que todos os tópicos importados para o Discourse a partir do seu site sejam marcados como não listados. Quando um tópico receber um comentário, ele seria automaticamente marcado como listado. Tópicos não listados não aparecem na lista de tópicos, o que impediria que a lista de tópicos do seu site ficasse cheia de tópicos sem respostas.
Esse tipo de configuração faz sentido para sites em que as pessoas acessam tópicos do Discourse clicando em um link “Iniciar discussão” exibido abaixo de uma postagem de blog. O Discourse não possui uma configuração para isso, mas acho que seria uma solicitação de recurso razoável. O plugin do WordPress para Discourse possui essa funcionalidade, mas utiliza a API do Discourse para listar e não listar os tópicos.
@simon É exatamente isso que queremos! Obrigado pela sua resposta. O problema é que nosso site não foi construído com WordPress. Mas podemos dar uma olhada na API do Discourse.
Falando em solicitações de recursos, onde posso registrar essa solicitação para o Discourse?
@Canapin Então queremos que a postagem do blog receba um comentário primeiro ANTES de ser listada como um tópico no Discourse. A postagem já existe em nosso site, certo?
Essa é uma boa ideia. A outra opção seria não criar os tópicos até que o usuário clique, mas acho que sua sugestão pode ser mais fácil. Talvez @eviltrout possa considerar isso como uma tarefa possível para esta versão, na próxima semana?
A maneira mais fácil de descobrir isso seria tentar deslistar e depois listar um tópico através da interface do usuário do Discourse, seguindo os passos descritos neste guia: Como fazer engenharia reversa da API do Discourse.
Para automatizar o processo via API, você precisaria configurar um webhook para ouvir eventos de postagem. Quando receber um webhook informando que a primeira postagem na sua categoria de incorporação foi criada, você enviaria uma solicitação à API para deslistar o tópico. Quando receber um webhook informando que a segunda postagem de um tópico foi criada, você enviaria uma solicitação à API para listar o tópico novamente.
Como mencionado acima, uma abordagem melhor pode ser fazer com que o tópico seja automaticamente deslistado na primeira vez que um usuário clicar nele a partir de um site de blog. Dessa forma, o primeiro usuário a deixar um comentário não verá o tópico marcado como “Não listado”. Isso seria um pouco mais complexo de configurar, mas pode ser feito através da API ouvindo eventos de clique em links para seus tópicos do Discourse.
Idealmente, este tópico será atualizado quando o recurso estiver disponível. Nesse caso, você receberá uma notificação sobre isso se definir seu nível de notificação para este tópico como “Observando”.
Acabei de ver esse recurso ao vivo! Um agradecimento especial a @codinghorror e @eviltrout. Obrigado por serem tão atentos às solicitações dos usuários.