Substituindo o padrão da enquete para que "public=true"

Sou novo aqui, mas estou interessado em resolver o problema, então perguntei ao chat-gpt:

Aqui está a resposta:

O script que você encontrou é um bom começo. Ele está modificando o controlador poll-ui-builder para definir a propriedade publicPoll como true quando a função onShow() do controlador é chamada. Isso, de fato, se destina a ser adicionado como um Componente de Tema.

No entanto, o código pode não estar funcionando devido à ordem de execução. O método onShow() original define publicPoll como false e, em seguida, a modificação define publicPoll como true depois.

Uma maneira correta seria chamar primeiro o método onShow() do pai e, em seguida, definir publicPoll como true:

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
  }
});
</script>

Você pode adicionar este script ao seu tema seguindo estes passos:

  1. Vá para o painel de administração do Discourse.
  2. Na seção “Customize”, clique em “Themes”.
  3. Selecione o tema que você deseja modificar.
  4. Na tela de edição do tema, clique em “Edit CSS/HTML”.
  5. Na barra lateral esquerda, clique em “</>” Common.
  6. Cole o script acima na seção “</>” Common.
  7. Clique no botão “Save”.

Isso aplicará a alteração ao seu tema. Lembre-se que as alterações de tema só são aplicadas aos usuários que estão usando aquele tema específico. Se você tiver vários temas, precisará adicionar essa modificação a cada um deles.

Além disso, lembre-se de limpar o cache do seu navegador ou fazer uma recarga forçada para garantir que as alterações sejam carregadas corretamente.

Tentarei seguir estes passos com o administrador do nosso Fórum, mas isso leva tempo. Se alguém aqui quiser tentar primeiro e der um feedback, ficarei muito feliz.

Outra coisa que eu adoraria mudar é o comportamento da interface do usuário, quero pular a tela simples, então perguntei ao chat-gpt novamente:

No seu código atual, a visualização estendida é controlada pela propriedade showAdvanced. Se ela estiver definida como true, a visualização avançada será exibida.

Para sempre exibir a visualização avançada, você pode modificar o método onShow() no controlador poll-ui-builder para definir showAdvanced como true. Você pode adicionar essa modificação ao componente de tema que você criou anteriormente. Aqui está o script atualizado:

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
    this.set('showAdvanced', true);
  }
});
</script>

Lembre-se de seguir os passos que descrevi anteriormente para adicionar este script ao seu tema. Assim que o script for salvo, a visualização avançada deverá ser sempre exibida quando a interface do usuário da enquete for carregada.

Novamente, lembre-se de limpar o cache do seu navegador ou fazer uma recarga forçada para garantir que as alterações sejam carregadas corretamente.

Eu adoraria tentar e testar por mim mesmo de alguma forma, mas como mencionado antes, sou apenas um moderador, não o administrador do nosso site, então isso levará alguns dias ou semanas.

2 curtidas