Criar sub-tópicos?

Gostaria de transformar alguns tópicos em subtópicos de outros.

Digamos que eu tenha o “Tópico A”. Na página do Tópico A, colocarei um botão para “criar subtópico”. Isso permitirá que o usuário crie um novo tópico, o “Tópico B”. O Tópico B seria um filho do Tópico A.

Do ponto de vista da experiência do usuário, isso significa:

Também poderia haver um botão na página do Tópico A para “ver todos os tópicos filhos do Tópico A”, o que levaria a uma lista dos tópicos filhos do Tópico A, como o Tópico B e quaisquer outros tópicos que sejam filhos do Tópico A.

Qual é a melhor maneira de fazer isso? (Estou assumindo que terei que fazer isso em um plugin, o que não há problema.)

Nota: estou procurando apenas um nível de subtópico, não vários.

Aqui estão alguns detalhes sobre as possibilidades que acredito que poderiam funcionar:

Categorias (embora isso provavelmente não seja o melhor caminho)

As categorias ofereceriam funcionalidade semelhante à que tenho em mente, mas isso poderia ficar pesado demais quando houver um número razoável de tópicos com subtópicos (parece exagero ter basicamente uma nova categoria para cada tópico pai).

ou

Tags

O melhor que consigo pensar no momento é usar tags. Assim, ao clicar em “criar subtópico” no Tópico A, abre-se um novo tópico e eu adiciono programaticamente uma tag oculta, como “Tópico-A”, que linka para o Tópico A. Então, ao clicar em “ver todos os subtópicos” do Tópico A, realiza-se uma busca pela tag “Tópico-A”.

Isso parece bastante limpo, exceto pelo fato de haver muitas tags (basicamente uma tag para cada tópico principal, o que pode acabar sendo um número grande).

ou

Campos personalizados para tópicos

Outra possibilidade que considerei é criar um campo personalizado para tópicos, que seria um array com os IDs dos subtópicos daquele tópico. Isso também poderia funcionar, mas provavelmente seria um pouco mais complicado de codificar.

Por exemplo, teria que atualizar o campo personalizado do tópico principal apenas após a criação de um subtópico; e teria que criar um novo tipo de busca — buscar todos os tópicos dentro do array do campo personalizado do tópico principal — em vez de simplesmente usar a funcionalidade de busca por tags já existente.

Existe outra solução que estou deixando passar?

Vejo outra solução que pode funcionar, sem muita codificação.

Com o plugin Custom Wizard, você pode realizar várias ações em um único procedimento. Nesse caso, você pediria ao usuário que escrevesse seu subtópico usando um assistente que:

  • Crie um novo tópico para o subtópico
  • Crie uma resposta no tópico principal com um link para o subtópico.

Com um CSS personalizado para todas as principais postagens (você pode adicionar uma classe CSS para selecioná-las por categoria ou tag), você pode modificar a aparência das respostas para corresponder ao que tem em mente. Você também pode encontrar uma maneira, usando o assistente, de adicionar um parâmetro às respostas que permitirá selecionar apenas as respostas automáticas.

Se você não gostar da solução de resposta, acredito que o Custom Wizard também possa adicionar a tag ao subtópico criado.

Não tinha pensado nisso. Obrigado. A peça-chave que estou deixando de lado é algo no subtópico que faça uma ligação de volta ao tópico principal. Como uma tag (

Eu estava pensando que também gostaria de um nível de subtópicos. Isso poderia alcançar um nível de aninhamento/hierarquia, ao mesmo tempo em que mantém a interface limpa para que não seja um monte de conversas aninhadas.

Exemplos de como eu poderia usá-lo:

  • Criar um tópico para um episódio/post/artigo e fazer com que as pessoas criem subtópicos com base em suas reações.

  • Criar um tópico de uma pergunta e, em seguida, fazer com que as pessoas criem subtópicos com suas próprias respostas (bônus pela opção de limitar um subtópico por pessoa)

Você fez algum progresso na criação de um plugin ou na descoberta de como fazer isso com os recursos atuais do Discourse?

A única maneira que eu vi de fazer isso foi usando campos personalizados de tópico. Por exemplo, o subtópico poderia ter um campo personalizado que se vincula de volta ao tópico principal. Então, você pode fazer uma pesquisa por todos os tópicos com esse tópico principal como valor do campo personalizado. Eu ainda não tenho um plugin totalmente implementado, mas consegui fazê-lo funcionar basicamente em desenvolvimento usando código como mencionei aqui: Retrieve Topics based on custom field? - #12 by JQ331

Ah sim, imagino que se criássemos um campo personalizado de tópico como “tópico-pai” ou algo assim, então haveria muitas maneiras de aproveitá-lo. Vou dar uma olhada mais a fundo no link que você compartilhou e, espero, aprender um pouco de Ruby no processo. Obrigado!