Blocos na barra lateral direita

|||
-|-|-|
:discourse2: | Resumo | Blocos da Barra Lateral Direita exibe uma barra lateral à direita das listas de tópicos com uma lista configurável de blocos.
| :eyeglasses: | Pré-visualização | Pré-visualizar no Criador de Temas do Discourse
:hammer_and_wrench: | Link do Repositório | https://github.com/discourse/discourse-right-sidebar-blocks
:open_book:|Novo em Temas do Discourse?| Guia para iniciantes no uso de Temas do Discourse

Instalar este componente de tema

Recursos

O componente inclui alguns blocos que você pode exibir na barra lateral:

  • popular-tags
  • top-contributors
  • recent-replies
  • category-topics
  • custom-html
  • category-list
  • subcategory-list
  • upcoming-events-list*
  • minimal-gamification-leaderboard**

:information_source: O diretório de usuários deve estar habilitado para que a lista de Principais Contribuintes seja preenchida. Se sua lista estiver em branco, procure por enable user directory nas suas configurações de administrador para garantir que esteja habilitada.

  • Apenas disponível quando usado com o plugin Calendar.
    ** Apenas disponível quando usado com o plugin Gamification.

Você também pode usar outros componentes Ember como blocos, basta usar o nome correto. Por exemplo, o core inclui um componente Ember signup-cta, e você pode usá-lo na barra lateral como está. Note que você não pode usar componentes que esperam um conjunto de parâmetros, mas você pode construir seu próprio componente Ember em um tema separado e referenciá-lo apenas pelo nome na configuração blocks da barra lateral.

Você pode controlar alguns recursos para os blocos fornecidos através de parâmetros.

nome descrição padrão valor disponível para
count limita o número de resultados varia número todos, exceto custom-html
excerptLimit limita o comprimento de cada trecho de resposta 150 número recent-replies
id id da categoria id da categoria (category-list usa separado por vírgula) category-topics, category-list
content conteúdo a ser exibido html custom-html
scopeToCategory mostra apenas na categoria ou subcategoria X id da categoria popular-tags
excludedTags lista de tags excluídas nomes de tags popular-tags
displayInSpecificCategories lista de categorias para mostrar o widget todas números separados por vírgula popular-tags
id id do placar número minimal-gamification-leaderboard
tag qual tag exibir id da tag tag-topics
period período de tempo dos tópicos principais weekly all, yearly, quarterly, monthly, weekly, daily top-topics
title título do bloco varia string tag-topics, category-list, top-contributors
excludedGroupNames Exclui grupos especificados Nomes de grupos top-contributors
order Ordena os contribuidores String (likes_received ou likes_given) top-contributors
period Período de tempo para os principais contribuidores yearly all, yearly, quarterly, monthly, weekly, daily top-contributors
upcomingDays Eventos iniciados antes do valor fornecido 180 número upcoming-events-list
timeFormat Formato da data/hora do evento LT formato momentjs upcoming-events-list

Configurações

Nome Descrição
blocks
show in routes Apenas para usuários avançados: limita a barra lateral às rotas selecionadas.
Exemplos: discovery.latest, discovery.unread, discovery.new, discovery.top, tag.show, “c/category-slug” (para categorias), “tag/sample-tag” (para tags).
Quando vazio, a barra lateral é exibida em todas as rotas de lista.

blocks: escolha os blocos a serem exibidos e ajuste sua ordem

show_in_routes: decida em quais rotas de lista de tópicos exibir a barra lateral. Por padrão, ela será exibida em todas as rotas de descoberta, exceto em /categories.

Tradução Padrão
top_contributors.heading Principais contribuidores
top_contributors.view_all Ver todos
popular_tags.heading Tags populares
popular_tags.view_all Ver todos
recent_replies.heading Respostas recentes
subcategory_list.heading Subcategorias
top_topics.heading Tópicos principais
category_list.heading Categorias

Capturas de tela

Note que o componente vem apenas com estilo muito básico, a suposição é que os administradores que usam o componente adicionarão seu próprio estilo em seu próprio tema.

Interações

Quando usado em conjunto com o plugin Discourse Calendar, você pode adicionar um bloco na barra lateral para seus eventos futuros. O nome do bloco é upcoming-events-list, e o formato da data pode ser personalizado seguindo esta sintaxe (por exemplo, MMMM D, YYYY).

:discourse2: Hospedado por nós? Componentes de tema estão disponíveis para uso em nossos planos Standard, Business e Enterprise.

60 curtidas

O que devo adicionar no parâmetro “name” se eu usar custom-html?

1 curtida

Ótimo ver isso como um Componente de Tema #oficial! Certamente abre um novo mundo de customizações.

Tenho 2 perguntas:

  1. Na barra lateral, quero exibir a lista de tópicos /latest de forma semelhante à maneira como category-topics os exibe. Isso é possível? recent-replies quase chega lá (especialmente se o trecho estiver oculto), mas eu realmente quero incluir tópicos sem respostas.

  2. É possível exibir os blocos laterais apenas em certas categorias? O que quero dizer é que a única rota exibida é a Lista de Tópicos da Categoria, e apenas para as categorias que eu especificar.

1 curtida

Desculpe, a documentação para isso está incompleta (vou atualizá-la agora). O nome do parâmetro para custom-html é content.

Não temos nada pronto para a lista completa de /latest, mas você pode criar a sua e adicioná-la à configuração usando o nome dela. Deve ser muito semelhante às listas de categorias/tags, apenas sem um filtro.

Atualmente, não, você não pode exibi-lo apenas em categorias específicas. No entanto, você pode usar discovery.category na configuração show in routes, que exibirá a barra lateral apenas nas rotas de categoria (mas em todas elas, não em um subconjunto).

3 curtidas

Obrigado, é possível incluir a barra lateral em cada tópico também?

4 curtidas

Apenas observei uma limitação do componente, especialmente quando se trata dos blocos category-topics e subcategory-list, e é que adicionar vários blocos de qualquer um desses tipos com IDs diferentes sempre resultou em eles exibirem tópicos/subcategorias do bloco mais acima no editor de lançamento (presumo).

Um bug que estou tendo agora é que, depois de brincar com o bloco subcategory-list por cerca de 10 a 12 vezes, ele parou de aparecer completamente em nosso site de staging (veja o vídeo abaixo).

2 curtidas

O bloco subcategory-list não aceita nenhum parâmetro. Quando usado, ele exibirá as subcategorias da categoria atual com base em qual categoria atual você navegou… portanto, não faz sentido usar esse bloco mais de uma vez.

É também por isso que o subcategory-list não está aparecendo no seu vídeo. Se você estiver em uma rota que não seja de categoria, esse bloco não será exibido.

Para category-topics, no seu vídeo, vejo o mesmo ID usado duas vezes: 7. Fiz um teste local e, com IDs diferentes, obtive tópicos diferentes exibidos (ou seja, não consigo reproduzir o bug relatado).

4 curtidas

Olá, muito obrigado por este plugin incrível!

Tenho uma pergunta sobre a barra lateral subcategory-list: existe uma opção para exibi-la apenas para uma categoria específica?

Nossos desenvolvedores deram uma olhada e parece que não há suporte para o parâmetro id no subcategory-list, você poderia adicionar isso, por favor?

2 curtidas

E em relação ao bloco top-contributors: há alguma forma de buscar os resultados para um período de uma semana?

2 curtidas

Atualmente, não, essa opção não existe. Faz sentido adicioná-la, embora eu imagine que ela deva suportar vários IDs para que você possa mostrar o bloco para uma lista de categorias (A, B e C, por exemplo). Ficarei feliz em revisar PRs no repositório, se seus desenvolvedores acharem que podem adicionar isso, seria ótimo. (Caso contrário, posso adicioná-lo a uma lista de “nice-to-haves” no componente do tema.)

Você quer dizer a) buscar os resultados e armazená-los em cache por uma semana ou b) buscar os principais contribuidores da última semana a cada carregamento? O segundo deve ser fácil de adicionar, o cache é um pouco mais complicado.

3 curtidas

@pmusaraj você pode adicionar

padding: 3px 4px 3px 4px

para as popular-tags?

Obrigado.

1 curtida

Olá @pmusaraj, muito obrigado pela sua resposta!

Nosso desenvolvedor compartilhou os PRs aqui, por favor, dê uma olhada: Implement the `displayInCategories` parameter which allows to specify a list of categories where the `subcategories-list` block is displayed by d521bb85 · Pull Request #10 · discourse/discourse-right-sidebar-blocks · GitHub

A segunda variante seria perfeita! Precisamos exibir a lista dos principais contribuidores da última semana, de fato. Muito obrigado!

4 curtidas

O componente intencionalmente tem muito pouco estilo para que os consumidores possam adicionar seus próprios estilos em seus próprios temas/componentes de tema.

Obrigado, esse PR é ótimo e agora foi mesclado!

Também trabalharei em breve para adicionar configurabilidade ao bloco de principais contribuidores (ou se alguém for mais rápido, ficarei feliz em revisar um PR).

3 curtidas

Não tenho certeza de onde encontrar o código para isso - você se importaria de me direcionar? Gostaria de olhar para modificar os category-topics para que não ter um ID lhe dê todas as categorias (e, portanto, efetivamente a lista /latest)

Seria ótimo ter isso em todos os blocos!

2 curtidas

@pmusaraj Incrível! Muito obrigado pela sua ajuda, estou ansioso para usar o bloco de principais contribuidores :slight_smile:

1 curtida

Olá! Não tenho certeza se este componente está causando erros. Mas, uma vez desativado, não há mais erros. :thinking: Alguém poderia dar uma olhada nisso para me ajudar a descobrir o problema? Agradeceria muito.

Com ele ativado, ao visitar um determinado tópico no desktop, clicar no logotipo do site na barra superior na tentativa de retornar à página inicial me levava a uma tela de carregamento que nunca desaparecia e gerava erros no console do navegador (como abaixo). Nenhum log de erro relacionado foi visto no caminho mysite/logs.

d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'findFiltered')
    at new CategoryTopics (d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98:18)
    at h.createComponent (base-component-manager.js
1 curtida

Ah, sim, desculpe por isso. Deve estar corrigido agora, você só precisa baixar a versão mais recente do componente de tema.

3 curtidas

Obrigado! Funciona perfeitamente agora.

3 curtidas

Olá @pmusaraj, desculpe se estou sendo insistente - apenas queria saber se há alguma previsão de quando essa implementação será feita.

Seria uma adição incrível :slight_smile:

Muito obrigado!

3 curtidas

Obrigado por este componente incrível!

Notei que todo o meu cabeçalho e rodapé desaparecem globalmente quando isso está ativado (tudo no meu header.html e footer.html). Isso foi intencional? Mas para contornar isso, tenho que usar o PluginAPI para adicionar manualmente um cabeçalho/rodapé.

2 curtidas