Quando usar um plugin versus um componente de tema?

Preciso fazer pequenas alterações em algumas visualizações:
Por exemplo:

Preciso criar um plugin para cada alteração? Mesmo que seja algo realmente pequeno, como apenas CSS?
Obrigado pela ajuda.

1 curtida

Não, os plugins só são necessários se você pretende alterar o back-end.

Se for apenas uma alteração local, você pode ir em Admin → Personalizar → Tema e inserir as alterações em um novo Componente de Tema, depois adicioná-lo ao seu Tema atual.

Dê uma olhada em https://meta.discourse.org/c/documentation/theme-developers/127, especialmente:

8 curtidas

Obrigado!
Então, se eu precisar alterar um rótulo ou adicionar uma dica de ferramenta, preciso criar um tema, mas se precisar adicionar uma nova coluna a uma página (por exemplo, a lista de tópicos), preciso criar um plugin?

A distinção é a seguinte:

  • Se precisar alterar a API, por exemplo, qualquer dado na rota .json, alterações na autorização, processamento de dados de back-end, você precisará de um plugin
  • Para muitas alterações de front-end que não precisam de dados diferentes, você só precisa de um TC. Ou seja, muitas alterações de apresentação ou qualquer lógica em javascript que não seja sensível.
5 curtidas

E uma área cinzenta (que não se aplica aqui, eu acho) é se você precisar de dados que não estão disponíveis (como campos personalizados do usuário), você pode usar AJAX para buscar esses dados com javascript quando precisar deles, ou ter um plugin que adiciona os dados ao serializador.

5 curtidas

ok obrigado. No guia, não entendo como posso configurar e importar um TC localmente, só há um exemplo para um remoto.

Eu sugiro usar esta ferramenta maravilhosa para criar TCs facilmente localmente:

2 curtidas

A menos que você tenha uma alteração muito pequena no CSS, recomendo usar um tema remoto ou a ferramenta CLI.

Mas se você clicar em "instalar tema", a caixa de diálogo permitirá que você crie um tema (ou um componente de tema se você fizer isso na página do componente).

dentro da lista de tópicos da categoria, preciso adicionar uma nova coluna com a coluna “created_at” e alterar a data de “tiny” para estendida (ex: DD/MM/YYYY HH:MM)

Se você quiser adicionar coisas novas a um modelo, eu começaria com GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes, mas não sei como adicionar uma coluna lá. Acho que há alguma mágica de JavaScript que você poderia fazer, mas isso não é minha área.

Você sabe que pode ver essa informação se passar o mouse por cima, certo?

Veja também Plugin outlet locations theme component, mas não há plugin outlet lá.

2 curtidas

Você tem estes plugin outlets: topic-list-after-columns e topic-list-header-after.

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/list/topic-list-item.hbr#L90

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/topic-list-header.hbr#L27

Boa observação. Parecia errado que não houvesse saída ali. Acho que o componente de tema simplesmente não o mostra.

1 curtida

O componente temático de locais de saída de plugin não mostra saídas brutas no momento.

Este componente temático mostra como adicionar uma coluna GitHub - discourse/discourse-add-category-column

3 curtidas