ProCourse Static Pages

I’ve been doing freelance Discourse customization as my primary gig for almost a year at this point. And one of the most common questions I get is about static pages. “Can I just create a static sales page?” “Where’s a good place to put a FAQ without a discussion around it?”

You can likely argue the validity of these questions in most scenarios. The main response being “just close the topic.” But that doesn’t cut it for most. Thus, I decided to create this plugin to make it possible.

It’s pretty simple. You get a backend under Admin > Plugins to create, edit, and delete these pages as you like. It uses the same topic composer we’re used to. Once you have the page built, you can Enable it and share the link to the page wherever you like.

For a demo: LINK IS DEAD.

I should also note that styling is made easier with a class static-page in the wrapping div for the whole page. That way you can do whatever you want to the body of the page from a CSS standpoint in a theme.

46 curtidas

Obrigado pelo ótimo plugin!

Um pequeno pedido de SEO: Seria ótimo ter campos extras para o título da página e uma descrição para preencher o título e a meta description.

3 curtidas

Concordo. Além disso, a capacidade de fazer upload de imagens seria ótima.

1 curtida

Desculpe, não entendi como você configurou isso em um fórum privado.
É exatamente o que eu preciso.

Acho que estou com o mesmo problema — isso seria ótimo, mas preciso que as páginas sejam visíveis para anônimos, pois tenho um site privado e quero que algumas páginas estáticas sejam expostas ao público.

@joebuhlig - isso já foi perguntado algumas vezes neste tópico. Você tem alguma opinião sobre isso?

3 curtidas

Isso aparece depois que eu o instalei.

Além disso, minha lista /admin/plugins estava vazia até que eu o desinstalei. Então… Por favor, ajude! :content:

2 curtidas

+·1
você disse o que eu quero dizer :joy:

Concluí que o erro vem do código que usa Discourse.Model, que foi descontinuado (acredito que na versão atual do Discourse ele tenha sido completamente removido, daí o novo erro).

Corrigi o erro e enviei um Pull Request:

E parece que já foi mesclado… uhu! Agora você deve conseguir reinstalar o plugin.

3 curtidas

Acho que o Joe não está mais mantendo seus plugins. Alguém precisará criar um PR.

Dito isso, estamos trabalhando atualmente em um recurso de página estática no núcleo. Ainda está em seus estágios iniciais, mas você pode experimentá-lo ativando a configuração enable page publishing nas configurações do seu site. Você pode criar uma página publicada abrindo o menu de ações do post em um tópico (selecione o botão … seguido pelo botão de chave de fenda).

13 curtidas

Na verdade, funciona mesmo! Obrigado :smiley:

2 curtidas

:heart:

Oh! Finalmente! Isso é muito bom. Isso pode ser o suficiente para que várias pessoas parem de usar o WordPress. Oh. Sim. Tão fantástico.

:heart:

10 curtidas

Isso é ótimo — você tem alguma dica sobre como acessá-las para estilização?

Acho que é cedo demais para investir muito tempo no design do seu fórum, já que ele ainda está em desenvolvimento, mas por enquanto tudo está aqui

4 curtidas

Obrigado, Steven; após um breve teste, verifiquei que não é possível torná-los visíveis para anônimos em fóruns que exigem login. Que pena — era exatamente para isso que eu queria usá-los. Ainda assim, bem legal.

Parece que a única maneira de tornar mais conteúdo estático visível para usuários não logados é:

  1. mantê-lo com exigência de login e usar as ferramentas existentes:
    • /admin/customize/site_texts/login_required.welcome_message
    • /tos
    • /privacy
      ou
  2. configurar o fórum para que não exija login (ou seja, público)
    • e controlar rigorosamente a visibilidade de cada categoria e grupo
    • obter o conjunto completo de /tos, /privacy, /about, /faq
    • criar quantas páginas estáticas desejar por meio de enable page publishing

Alguém conhece outra forma (exceto páginas hospedadas em outro domínio ou subdomínio) de alcançar isso?

4 curtidas

Instruções completas em Page Publishing

1 curtida

Isso. Sei que este plugin é principalmente para criar páginas estáticas. No entanto, digamos que você crie um aplicativo de calculadora que deseja incluir na página. A calculadora requer uma entrada do usuário. A página ainda tem código estático, mas atualizaria o resultado com base na entrada do usuário. Isso é possível usando este plugin ou é melhor apenas criar uma página externa em HTML/CSS com JavaScript?

1 curtida

Gostaria de usar um widget de terceiros em uma página estática. O JavaScript para isso deve ser inserido antes de </body>. Existe uma maneira de fazer isso – apenas nesta página estática específica? Obrigado pela ajuda!

Apenas compartilhando como consegui executar um script para as páginas estáticas:

<script type="text/discourse-plugin" version="0.8">
    const { setDefaultHomepage } = require('discourse/lib/utilities');
    const user = api.getCurrentUser();
    if(!user) {
        setDefaultHomepage('/page/welcome/1/'); // <--- definir URL da página inicial
    }
    api.onPageChange((url, title) => {
        if(url.indexOf("/page/welcome") === 0) {
            // fazer algo para esta página estática
        }
    });
</script>

Apenas uma esclarecimento: definir a página como inicial é totalmente opcional quando se trata de executar o script. Eu quis mostrar que também é possível fazer isso :+1:

4 curtidas

Obrigado!
Você sabe como usar scripts externos (não do mesmo domínio) em uma página estática?
Sempre aparece:
Content Security Policy: As configurações da página bloquearam o carregamento de um recurso inline ("script-src"). Origem: (function injectedScript() {...

De modo geral — qual é a melhor maneira de incorporar, por exemplo, uma loja virtual sem usar um iframe?
Exemplo de código:

<div id="my-store-<id>"></div> <div> <script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?<id>&data_platform=code&data_date=2020-12-20" charset="utf-8"></script><script type="text/javascript"> xProductBrowser("categoriesPerRow=3","views=grid(20,3) list(60) table(60)","categoryView=grid","searchView=list","id=my-store-<id>"); </script> </div>

1 curtida

Gostaria de trazer essa solicitação de volta à mesa. O plugin é ótimo, mas sempre que você compartilha uma página assim, ele mostra apenas os metadados padrão. Seria ótimo se você pudesse especificar o título, a descrição e uma imagem personalizada. O plugin ainda está em desenvolvimento ativo ou isso deveria ir para a categoria do marketplace? Obrigado!