Personalizar texto do botão de novo tópico

:discourse2: Resumo Personalize o botão de novo tópico por categoria ou tag
:eyeglasses: Prévia Prévia no Criador de Temas do Discourse
:hammer_and_wrench: Repositório \u003chttps://github.com/discourse/discourse-customize-new-topic-button-text\u003e
:question: Guia de Instalação Como instalar um tema ou componente de tema
:open_book: Novo em Temas do Discourse? Guia para iniciantes no uso de Temas do Discourse

Instalar este componente de tema

Recursos

Este componente de tema permite personalizar o botão Novo Tópico em uma lista de tópicos de categoria ou tag, bem como o nome da ação e o botão no compositor (destacado abaixo). Se você tiver uma categoria de Bug, por exemplo, poderá atualizar esses textos para dizer “Reportar Bug”:

(Alguns ícones podem precisar ser adicionados à sua configuração de administrador svg icon subset)

Você também pode personalizar o texto do botão de resposta, isso substituirá o texto reply no compositor e dentro dos tópicos:

Configurações

Nome Descrição
custom new topic text É aqui que você insere os detalhes para cada botão personalizado
inherit parent category Quando desativado, as subcategorias não herdarão automaticamente o texto da categoria pai

Existem duas configurações, a principal sendo custom new topic text:

Esta configuração permite definir o filtro (nome da tag ou categoria), o ícone para o botão “Novo Tópico” (isso não altera os ícones no compositor), bem como o nome da ação no topo do compositor e o botão “Criar Tópico” do compositor.

Há uma configuração adicional, habilitada por padrão, chamada inherit parent category. Quando habilitada, todas as categorias filhas também terão seu texto alterado (a menos que especificado de outra forma nas configurações).

\u003e:information_source: Observe que se você configurar uma tag, ela substituirá a categoria selecionada.

:bulb: Ideias para aprimoramentos futuros

  • Texto localizável para diferentes idiomas
  • Suporte para combinações de categorias e tags, e múltiplas tags

\u003cbr\u003e

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

27 curtidas

Isso é muito bom, muito obrigado :heart:

Hoje, eu estava trabalhando em uma versão muito mais simples disso usando api.customizeComposerText() :sweat_smile:

Esta é uma solução muito melhor. Obrigado @awesomerobot!

Em meus experimentos, nunca consegui substituir o rótulo do botão do Composer para as categorias usando o plugin discourse-post-voting. Isso se torna um problema maior quando várias categorias estão habilitadas para votação de posts.

Se posso sugerir; habilitar suporte para substituir os rótulos do discourse-post-voting seria um ótimo aprimoramento. ( :

1 curtida

Este é um ótimo componente de tema! Uma ideia para levá-lo um passo adiante poderia ser esta:

Se você está renomeando o botão porque deseja efetivamente mudar o tipo de tópico, então você deve mudar a nomenclatura em toda a *categoria.

Por exemplo:
Você tem uma categoria chamada Eventos. Você mudaria efetivamente a palavra “tópico” em toda a categoria para “eventos”. Não é “Novo Tópico”, é “Novo Evento”, em vez de uma lista de Tópicos, você teria uma lista de Eventos, etc.

Você vê isso em outras ferramentas onde você muda o caso de uso principal de algo. Veja o que o AirTable faz quando você cria uma nova tabela. As tabelas, por padrão, têm “registros”.

Mas digamos que eu queira criar uma tabela chamada “Usuários”, então posso mudar cada registro para ser chamado de Usuários:

Tratar o componente de tema dessa forma nos permitiria, de forma fácil e eficaz, rebrandar uma categoria como uma entidade mais específica. Solicitações de Suporte, Eventos, etc.

Encontrei este componente de tema ao pesquisar, porque eu queria mudar esta palavra de “Tópico” para “Eventos”:

3 curtidas

@awesomerobot este componente de tema é seriamente incrível, muito obrigado por ele!

Estou percebendo que este componente de tema parece causar um comportamento estranho com o CSS do botão Novo Tópico.

Componente de tema desabilitado:

Componente de tema habilitado:


Também notei que, embora ele altere o botão “Criar Tópico” no compositor, o que é ótimo…

Ele também altera o texto do botão Responder para a mesma string, o que é menos que ideal porque não se trata de criar outro relatório de bug, é uma resposta :slight_smile:

Quais as chances de um outro campo poder ser adicionado ao editor para alterar o texto do botão de resposta (ou deixá-lo em branco para manter como Responder?

4 curtidas

Desculpe, mais uma coisa: isso também não parece respeitar o caso em que duas subcategorias (cada uma de um pai diferente) têm o mesmo slug. por exemplo:

  • pai1
    • sub1
  • pai2
    • sub1

Neste caso, não consigo fazer com que o componente de tema diferencie entre as duas subcategorias, e ambas compartilham a mesma configuração do editor.

3 curtidas

Obrigado pelo feedback, fiz algumas atualizações! FIX: action, switch category to ID, ignore replies by awesomerobot · Pull Request #5 · discourse/discourse-customize-new-topic-button-text · GitHub

Eu ignorei completamente o botão de resposta! Por enquanto, eu apenas o mantive como reply, mas uma configuração separada para alterar seu texto faria sentido.

Bom ponto, parece que usar o ID da categoria em vez do nome da categoria nas configurações seria a melhor maneira de evitar isso. Isso significa que quaisquer configurações existentes que você tenha precisarão ser atualizadas.

3 curtidas

Parece que há um novo bug. Quando este plugin está ativado, ele cria dois botões de tópico:

2 curtidas

Sim, obrigado por relatar, alguns conectores mudaram no Discourse — deve estar corrigido agora se você atualizar:

2 curtidas

É possível corrigir a diferença de tamanho do botão? (captura de tela antiga, sua atualização mais recente corrigiu o problema do botão duplo)

1 curtida

Sim, este botão deve estar com a altura correta agora

1 curtida
Hmm tentando usar este componente sem sucesso e vendo muitos avisos em meus logs como este.

Mensagem (4 cópias relatadas)

[DiscourseJsProcessor] DEPRECATION: Usar {{attrs}} para referenciar argumentos nomeados foi descontinuado. {{attrs.canCreateTopic}} deve ser atualizado para {{@canCreateTopic}}. (‘discourse/components/custom-new-topic-button.hbs’ @ L2:C8) [id de deprecation: attrs-arg-access] Veja Ember.js - Deprecations para mais detalhes.
at theme-transpiler.js:3164:26752
at j.computed (theme-transpiler.js:3168:1693)
at j.computed (theme-transpiler.js:3168:161)
at j.computed (theme-transpiler.js:3168:1693)
at D (theme-transpiler.js:3168:1754)
at te (theme-transpiler.js:3168:1318)
at PathExpression (theme-transpiler.js:3198:21763)
at yo (theme-transpiler.js:3187:2776)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Ml (theme-transpiler.js:3187:3350)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Bi (theme-transpiler.js:3187:3879)
at PA (theme-transpiler.js:3190:3002)
at Cf (theme-transpiler.js:3190:9856)
at Al (theme-transpiler.js:3176:35353)
at gf (theme-transpiler.js:3176:35600)
at D (theme-transpiler.js:3198:42250)
at Sft.o.precompile (theme-transpiler.js:3281:3078)
at dDe (theme-transpiler.js:3161:1003)
at e.CallExpression (theme-transpiler.js:3159:33796)
at h (theme-transpiler.js:10:111797)
at e.uPe [as _call] (theme-transpiler.js:59:16906)
at e.oPe [as call] (theme-transpiler.js:59:16726)
at e.lPe [as visit] (theme-transpiler.js:59:17700)
at t.visitQueue (theme-transpiler.js:59:40645)
at t.visitSingle (theme-tr…

Backtrace

/var/www/discourse/lib/discourse_js_processor.rb:133:in block in create_new_context' mini_racer-0.8.0/lib/mini_racer.rb:273:in block in attach’
mini_racer-0.8.0/lib/mini_racer.rb:242:in call_unsafe' mini_racer-0.8.0/lib/mini_racer.rb:242:in block (2 levels) in call’
mini_racer-0.8.0/lib/mini_racer.rb:369:in timeout' mini_racer-0.8.0/lib/mini_racer.rb:241:in block in call’
mini_racer-0.8.0/lib/mini_racer.rb:240:in synchronize' mini_racer-0.8.0/lib/mini_racer.rb:240:in call’
/var/www/discourse/lib/discourse_js_processor.rb:168:in block in v8_call' /var/www/discourse/lib/discourse_js_processor.rb:167:in synchronize’

1 curtida

Hmm estranho, testei no Discourse mais recente e tudo está funcionando bem — acabei de mesclar uma atualização no componente que resolverá esse problema de depreciação, você pode atualizar e tentar novamente?

1 curtida

O mesmo aqui, não está aparecendo após várias tentativas.

Infelizmente, este maravilhoso componente de tema não parece funcionar bem com Custom Wizard Plugin 🧙

O plugin Wizard é capaz de se conectar ao botão de categoria através das configurações de Categoria:

Ao usar seu Componente, o botão muda de nome, mas pressioná-lo não inicia mais o Wizard selecionado nas configurações da categoria. Ficaríamos felizes em usar seu componente em um grande site de produção, mas não podemos agora. Espero que possa ser corrigido. Sem pressão :slight_smile:

Não estou vendo isso, tenho a mesma configuração e meus botões funcionam. Você pode precisar olhar outros plugins ou TCs. Estou nas últimas compilações, para sua informação.

1 curtida

Este é um pequeno componente agradável que pode adicionar um polimento de atenção aos detalhes a um site.

1 curtida

Olá

Acho que tenho um bug.

O texto do botão “Novo Tópico” não pode mais ser modificado.
A modificação é eficaz para os outros botões.

Versão: 3.2.0.beta4-dev([4886c1fddc]

Obrigado pela sua ajuda (e por essas funções!)

2 curtidas

Obrigado pelo relatório!

Parece que há uma regressão do último PR:

Ele converte da sintaxe this.args.<param>. para @<param>; no entanto, o primeiro é necessário, pois estamos dentro de um plugin outlet.

EDIT: Fiz um PR :+1:

1 curtida

Obrigado pelo PR @Arkshine! isso deve ser corrigido na atualização

Isso também será incluído na atualização: FEATURE: add ability to customize "Reply" text by 3-w-c · Pull Request #7 · discourse/discourse-customize-new-topic-button-text · GitHub

Portanto, agora a opção de personalizar também o texto do botão de resposta no compositor e nas postagens (ainda com base na tag e categoria) será incluída.

1 curtida