Criando uma página inicial de filtro personalizada

Posso criar uma página inicial dinâmica como esta:

  • 10 Tópicos Ativos Recentemente (esta semana)
  • 5 Tópicos Criados Mais Recentemente (hoje)
  • 5 Tópicos Mais Recentes (esta semana)
  • 5 Tópicos Mais Respondidos (esta semana)
  • 5 Tópicos Mais Curtidos (esta semana)
  • 5 Tópicos Criados Mais Recentemente (ontem ou hoje)

Existe um componente de tema através do qual posso criar uma página inicial como esta em Discourse Filtered Topics List, mas sinto que a desvantagem é que ele só funciona com um determinado período de tempo, então eu teria que mudar o período de tempo diariamente.

Quero dizer, por enquanto, funciona com base em que posso adicionar datas a ele, como:

activity-before:AAAA-MM-DD tópicos com a última atualização antes da data especificada
activity-after:AAAA-MM-DD tópicos com a última atualização após a data especificada
created-before: AAAA-MM-DD tópicos criados antes da data especificada
created-after:AAAA-MM-DD tópicos criados após a data especificada

Mas então eu sempre teria que mudar as datas. Existe alguma alternativa que eu possa fazer no fórum?

2 curtidas

Além disso, o principal problema com este componente é que ele repete tópicos em todas as ordenações

Seu caso exige que sejam literalmente os tópicos com mais respostas/curtidas? Se você usar a lista de tópicos /top, pode obter períodos de tempo automáticos… os principais fatores em visualizações, curtidas e contagem de postagens (e você pode ajustar um pouco esses pesos com as configurações do site)

Certo, essa é uma complicação ao obter várias listas de tópicos, um componente precisaria referenciar cruzadamente cada lista e remover duplicatas. Não é muito complicado, mas acho que isso não foi implementado em nenhum componente disponível.

1 curtida

Não totalmente em respostas e curtidas, mas sim, apenas tentando criar uma página inicial com aparência dinâmica.

Então, um componente que possa remover o tópico duplicado de qualquer um dos campos resolverá o problema?

Sim, não seria muito complicado adicionar um recurso de "ocultar duplicatas" a Filtered Topic Lists, se o @gormus estiver interessado. A ação findFilteredTopics poderia ser modificada para armazenar cada ID de tópico em uma lista e, em seguida, as duplicatas poderiam ser filtradas.

A desvantagem é que, se você quiser uma lista de 10 tópicos, poderá obter apenas 5 após a remoção das duplicatas… mas isso poderia ser parcialmente evitado talvez buscando alguns extras além do que foi especificado na configuração.

1 curtida

Já adicionei listas filtradas às páginas iniciais em vários projetos antes e eu alertaria que, para popular várias listas de “mais recentes” com filtros sobrepostos, você realmente precisa de uma comunidade muito ativa para começar. Agora, quando sua comunidade é tão ativa, você também terá um conjunto de conteúdo muito mais rico para trabalhar na construção de uma página inicial dinâmica. Nesse caso, um bloco de listas diferentes pode parecer estático e não tão visualmente atraente.

Embora para um ângulo ligeiramente diferente, você também pode explorar apenas colocar uma ou duas listas com um filtro de tempo manual. Isso pode até parecer mais dinâmico para os usuários. Como nesta visualização:

Essa é uma funcionalidade que tirei do tema Central e está disponível aqui como um componente de bloco: Manuel Kostka / Discourse / Blocks / Top Topics · GitLab

4 curtidas

Verdade, isso pode funcionar, mas, no entanto, eu realmente queria preencher vários filtros na página.

2 curtidas

Sim, isso realmente funciona. Se @gormus estivesse interessado :))

Fiz uma atualização hoje que ajudará um pouco com isso: FEATURE: allow date-based filters to accept a day count by awesomerobot · Pull Request #33197 · discourse/discourse · GitHub (você deve receber isso na próxima vez que atualizar o Discourse)

Isso permitirá que você insira o número desejado de dias nos filtros activity/created-before/after, então você pode fazer:

activity-after:7 tópicos ativos nos últimos 7 dias
created-after:1 tópicos criados após 1 dia atrás

Você também pode usar 0 para hoje (como após a meia-noite)

7 curtidas

Caramba, isso foi rápido. Obrigado!!

2 curtidas

Oi @awesomerobot , só queria avisar que fiz as alterações necessárias e está funcionando perfeitamente agora. Obrigado :))

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.