Como substituir texto e atualizar dinamicamente

Precisamos adicionar um aviso legal ou divulgação a certas postagens (cerca de 100 e contando). A divulgação pode mudar no futuro, então gostaria de adicionar [DISCLOSURE-GOES-HERE] a cada uma das 100 postagens. Podemos adicioná-la manualmente, não há problema. Mas quando atualizarmos nossa divulgação no futuro, quero alterá-la em um só lugar.

O que tentei:

  1. Palavras Observadas. O problema é que as postagens existentes não mostram a divulgação atualizada até que você edite a postagem. Isso frustra o propósito para este caso de uso.

  2. Javascript para substituir innerHTML do elemento. Devo ter feito errado - isso causou erros sobre substituir um nó filho:

<script type="text/discourse-plugin" version="0.8">
    var disclosures = "• Divulgações Importantes: Não nos responsabilizamos, etc., etc."
    api.decorateCooked($elem => {
        var el = $elem[0];
        el.innerHTML = el.innerHTML.replace('[DISCLOSURE-GOES-HERE]', disclosures);
    });
</script>
  1. Componente de tema Auto-linkify. Adoro para outras coisas, mas quero exibir o texto da divulgação, não um link para a divulgação.

  2. Sei que você pode substituir texto do console Rails, mas quero que os moderadores o mantenham.

Eu fiz coisas semelhantes com base no código do componente Linkify Words.

1 curtida

Se você não altera o aviso com frequência, talvez possa Reassar todas as postagens correspondentes a um padrão quando o alterar.

Essa solução tem a vantagem de não renderizar esse texto em cada postagem toda vez que ela é visualizada.

5 curtidas

Há uma abordagem textual que também ajudará: tornar a mensagem de divulgação “atemporal”, e vincular aos detalhes do aviso. Em vez de…

Divulgações Importantes: Não somos responsáveis, nem mesmo conhecedores das alegações neste tópico.

…vá para algo como:

Divulgações Importantes: este tópico contém conteúdo que pode precisar de mais contexto, fornecido em Lista de Divulgações

Então, a maior parte da sua atualização pode ser em uma única página, que também pode ser um tópico no Discourse (fácil de editar/atualizar!). :slight_smile:

1 curtida