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.
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?
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.
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).
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 é:
mantê-lo com exigência de login e usar as ferramentas existentes:
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?
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
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:
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!