Olá,
Alguma forma de executar scripts em posts limitados apenas a administradores?
Já tentei configurar antes e acabei travando meu site no PuTTY.
Tenha uma boa quarta-feira
Olle
Olá,
Alguma forma de executar scripts em posts limitados apenas a administradores?
Já tentei configurar antes e acabei travando meu site no PuTTY.
Tenha uma boa quarta-feira
Olle
Houve uma postagem sobre este assunto há alguns anos, mas tenho esperança de que haja uma maneira de fazer isso.
https://meta.discourse.org/t/adding-a-javascript-in-a-post/130019/3
Olle
@Olle11 pode ajudar se você detalhar mais o que está tentando alcançar.
Não há como permitir isso de forma ad hoc através do Composer, mas dependendo do seu caso de uso, pode haver soluções alternativas.
Por exemplo, o plugin Poll essencialmente executa JavaScript em uma Postagem (entre outras coisas).
Espero executar um script através de HTML ou React que possa mostrar widgets em tempo real nas postagens principais.
Por exemplo, um widget mostrando o clima ao vivo em uma cidade através de um script de widget HTML.
O plugin Poll é utilizável para este caso?
Atenciosamente,
Olle
Não, eu estava apenas usando isso como um exemplo. Dê uma olhada no código-fonte.
Você pode tentar usar um iframe se puder hospedar o JavaScript em outro lugar.
Se quiser uma integração mais estreita, será necessário considerar o uso do EmberJS.
Esta é provavelmente a resposta mais acessível se você quiser conteúdo na postagem em oposição a, por exemplo, um banner no topo.
Por exemplo, peguei um dos itens da página inicial do CodePen (já que está em nossos allowed_iframes) e o incorporei abaixo:
Parece que o script que preciso não permite iframe devido a X-FRAME-Options: DENY.
Talvez algo nestas linhas para permitir um script em execução no Discourse @merefield @supermathie?
App.yml:
DISCOURSE_ALLOW_UNSAFE_HTML: true
Configuração do Nginx para CSP:
add_header Content-Security-Policy “script-src ‘self’ ‘https://webadress.com’ ‘unsafe-inline’ ‘unsafe-eval’;”;
Estou tentando adicionar a configuração do Nginx, mas nem ‘unsafe-inline’ nem o https aparecem no CSP ao verificar com curl. ‘unsafe-eval’ é adicionado pelo admin.
Editar: NÃO SEGURO
Remover as proteções que o Discourse tem para impedir isso é uma ideia terrível.
Por isso, todos estão tentando orientar você para as maneiras sugeridas de fazer isso.
Você deve usar um tema ou componente de tema para adicionar scripts às páginas.
Posso usar um tema ou um componente de tema para adicionar script a uma postagem?
Como posso incluir ‘unsafe-inline’ na CSP para fazer o script funcionar?
Você poderia. O script em si precisaria ficar fora da postagem, ou talvez você pudesse fazer com que ele decorasse aspectos específicos das postagens.
É difícil saber exatamente o que você quer sem detalhes.
Essa é uma má ideia e você não deveria fazer isso.
Em relação ao CSP e ao que adicionei ao app.yml, removerei o unsafe_html: true, o volume do nginx e a configuração do nginx para CSP do site porque não é seguro.
Talvez um componente de tema funcione, hmm.
Exatamente qual script você quer executar?
Onde você quer executá-lo?
É para ser em um post específico? Ou em outro lugar da página? Quais parâmetros precisam ser passados? É diferente em cada post? Categoria?
O iframe pode funcionar. Preciso atualizar o CSP e unsafe_html para que o site seja seguro, pois o CSP e as outras soluções que tentei não são seguras
Obrigado pela contribuição. O Iframe pode funcionar pelo menos por enquanto até que eu encontre uma solução melhor.
Olhando o script, você não pode executá-lo globalmente. Ele requer carregamento no local com opções.
Eu fiz um TC simples: GitHub - Arkshine/discourse-tradingview-chart
Para facilitar a alteração das opções, você pode copiá-las e colá-las diretamente do site dentro de [wrap]..[/wrap].
Por padrão, ele força a proporção para ser 16/9, ocupará todo o espaço de largura e a altura é automática. O script permite especificar largura/altura, que também funcionará.
Eu sugiro usar a opção show_popup_button: true. Ela fornecerá uma maneira de visualizar o gráfico em tela cheia em uma nova janela.

Eu adicionei duas opções:
Desculpe, mas apenas um
não é suficiente para transmitir. . .
Cara. Isso é incrível.