Componente de tema de texto de espaço reservado do modelo de tópico

Texto de Espaço Reservado do Modelo de Tópico componente de tema

Este componente de tema permite que você exiba Modelos de Tópico como espaços reservados (marca d’água) em vez de texto de modelo editável.

Isso permite que você forneça instruções personalizadas como um espaço reservado para cada tópico.

Por exemplo:

Este é o texto normal de espaço reservado (marca d’água).

NB: Você já pode alterar isso em todo o site alterando o texto personalizado

Vá para Admin >> Personalizar >> Texto

Em seguida, pesquise o texto que você vê na tela.
Uma pesquisa por “BBCode” deve fornecer o que você deseja:

Em seguida, altere os valores de js.composer.reply_placeholder para o texto de espaço reservado que deseja exibir

Você também pode definir um Modelo de Tópico em cada categoria

No diálogo Editar Categoria, selecione Modelos de Tópico. Você pode adicionar um modelo personalizado para sua categoria.

Isso funciona bem, MAS o usuário precisa excluir o texto do modelo antes de poder começar a digitar sua postagem.

Este componente de tema permite que você exiba o texto do modelo de tópico como um texto de espaço reservado (marca d’água) em vez do texto editável. Basta clicar na caixa e começar a digitar.

Pode ser configurado para exibir todos os Modelos de Tópico como espaços reservados, ou você pode fazê-lo caso a caso, adicionando um indicador [placeholder] ao Modelo de Tópico.

Instalar o componente de tema

:hammer_and_wrench: Repositório Git: https://github.com/naidihr/discourse-topic-template-placeholders

:thinking: Como instalo um Tema ou Componente de Tema?

Créditos

Obrigado a @merefield por refatorar o elemento JQuery para usar o framework Ember e o núcleo do Discourse.

Observe que a versão atualizada foi testada apenas para funcionar nas versões do Discourse a partir de 2.4.1. Se você estiver em uma versão anterior do Discourse, tente a versão original, que foi testada na versão 2.3.10.
Repositório da versão original: https://github.com/naidihr/discourse-topic-template-placeholders_original

35 curtidas

Nota de desenvolvimento do PS. Tive que aplicar um truque com o JQuery para que isso funcionasse como um componente de tema. Se for possível atualizar o placeholder via modelo, ficaria grato se você me informasse.

8 curtidas

Você pode tentar algo assim

<script type="text/discourse-plugin" version="0.8">
  api.modifyClass("model:composer", {
    applyTopicTemplate() {
      this._super(...arguments);

      Ember.run.schedule("afterRender", () => {
        // faça seu trabalho aqui
      });
    }
  });
</script>

Isso deve permitir que você adicione alguma lógica personalizada quando o Discourse aplicar modelos de tópicos por categoria.

Dito isso, essa forma de escrever as coisas está um pouco desatualizada. Também recomendo que você leia isso se planeja passar muito tempo com temas do Discourse. Isso torna a vida muito mais fácil.

9 curtidas

Ótima ideia para um Componente de Tema!

Já enviei um PR para fazer o seguinte:

  • elimina a necessidade do jQuery
  • elimina a preocupação com o timing (use o framework Ember e o núcleo do Discourse, não lute contra eles)
  • modifica o Modelo do Composer para ajudar a alcançar o resultado (como você corretamente sugeriu)

Não ficarei chateado se você não o mesclar, mas espero que ajude a ver outra maneira de fazer as coisas :slight_smile:

(Não posso prometer que não há bugs, mas estou feliz em dar sequência a qualquer um! :cowboy_hat_face: )

9 curtidas

Obrigado, Robert. Eu já mesclinei esse PR. Muito obrigado :+1:

2 curtidas

Isso é exatamente o que eu estava procurando! Você é um deus! :bowing_man: :shallow_pan_of_food: :bowing_woman:
Por favor, aceite esta humilde oferta de emojis. :canned_food:

1 curtida

FYI, isso só funciona se você primeiro acessar a categoria e criar um novo tópico. Se tentar criar um novo tópico a partir da página de mais recentes e, em seguida, selecionar uma categoria no menu suspenso, o texto não será exibido.

2 curtidas

Isso é esperado? É assim que a funcionalidade de Modelo de Tópico normalmente funciona. O Modelo de Tópico não será considerado no segundo caso.

Mas, sim, na minha opinião, isso poderia ser melhorado até mesmo no Discourse padrão, sem essa TC, para suportar o seu segundo caso. Pessoalmente, achei irritante que os usuários não recebam o Modelo se seguirem o segundo caminho.

Essa TC está apenas aproveitando o núcleo…

Talvez estejamos falando de coisas diferentes, mas é assim que funciona para mim…

1 curtida

Isso pode ser devido a algum outro motivo, pois aqui no Meta funciona. Se você for até /latest, abrir o Composer e depois selecionar a categoria do Marketplace, você obterá o template que temos para isso.

4 curtidas

Sim, estranho. Desculpe, acho que pode ter sido resolvido. Isso me incomodava há ages, mas parece que agora funciona.

Ok, isso apresenta um novo desafio. Haha.

4 curtidas

Olá, Robert — testei após o merge e estava funcionando, mas para mim não está mais? Isso está com a configuração de substituição — não estou usando o [placeholder]. Você poderia verificar também na sua compilação?

Além disso, na minha versão original, funcionava da mesma forma se você iniciasse um novo Tópico a partir da página mais recente e depois selecionasse a categoria.

Talvez eu precise fazer um rollback…?

Estou olhando agora. Dê-me um pouco de tempo.

OK, o PR para a correção foi aberto: FIX: change the placeholder & template when switching selected Category by merefield · Pull Request #2 · naidihr/discourse-topic-template-placeholders · GitHub

Agora ele está pegando a Categoria da seleção do Composer. Agora que isso foi feito, parece funcionar em todas as situações, mas por favor, confirme.

2 curtidas

Olá Robert, juntei aquele último PR e atualizei para a versão mais recente do componente de tema, mas ainda está exibindo o texto do modelo padrão feito por mim, mesmo com a opção “exibir todos os modelos de tópico como espaços reservados” ativada. Estou usando o Discourse 2.4.1. Mais alguma ideia?

2 curtidas

Isso funciona, mas também não funciona de forma alguma se a opção ‘exibir todos os modelos de tópico como espaços reservados’ estiver ativada, mesmo que eu esteja na categoria. Estou arrependido de ter me voluntariado para isso agora? :stuck_out_tongue_winking_eye:

2 curtidas

Sem problema, pessoal. Apenas iteramos. :). Vou dar uma olhada.

Atualização: PR FIX: resolve issue with displaying all Topic Templates as Placeholders by merefield · Pull Request #3 · naidihr/discourse-topic-template-placeholders · GitHub

Ao fazer o checkout, lembre-se de atualizar a página se alterar alguma configuração.

2 curtidas

Ótimo, Robert. Esse último PR resolveu o problema. Também ao iniciar um tópico a partir das páginas mais recentes ou de categorias. Tudo parece estar ótimo agora. Obrigado por dedicar seu tempo para analisar isso. Solução muito elegante _bom trabalho :wink::+1:

3 curtidas

Sem problemas. Foi um prazer. Desculpe, meu teste inicial deveria ter sido mais rigoroso. Obrigado pela sua paciência.

Acho que estamos no caminho certo agora, com sorte!

Continuem trazendo mais ótimas ideias e colocando-as em prática!

3 curtidas

Olá, pessoal! Adoramos a ideia desse componente de tema!

Acabei de tentar instalá-lo na nossa instância do Discourse, mas estou enfrentando alguns problemas.
Parece que, quando ativado no tema, ele quebra parte do estilo já existente no tema.
Por exemplo, os botões no menu suspenso do usuário:

ficam assim quando ativado:


Além disso, o texto de substituição (placeholder) não parece funcionar, tanto com a opção 'Exibir todos os seus Modelos de Tópico como placeholders (texto de marca d'água)' ativada quanto desativada.

Pode ser que nossa instância do Discourse esteja na versão v2.3.10?

Já analisei o código aqui e não consegui identificar por que nosso estilo está desorganizado.

Contamos com outra equipe para gerenciar e atualizar nossa instância do Discourse, e é uma tarefa bastante grande realizar essa atualização.

Estou esperando por uma dica rápida para resolver isso, mas, se o problema for a versão do nosso Discourse, tudo bem também!

Obrigado desde já :smiley: