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.
Credo di avere lo stesso problema: sarebbe ottimo, ma ho bisogno che le pagine siano visibili agli anonimi, dato che ho un sito privato e voglio esporre alcune pagine statiche al pubblico.
@joebuhlig - questa domanda è stata posta diverse volte in questa discussione. Hai qualche pensiero da condividere a riguardo?
Ho determinato che l’errore è causato dall’uso di Discourse.Model, che è stato deprecato (credo che nella versione attuale di Discourse sia stato rimosso completamente, da qui il nuovo errore).
Ho corretto l’errore e ho inviato una Pull Request:
Sembra che sia già stata unita… evviva! Dovresti ora poter reinstallare il plugin.
Non credo che Joe stia mantenendo i suoi plugin in questi giorni. Qualcun altro dovrà creare una PR.
Detto questo, stiamo attualmente lavorando a una funzionalità di pagina statica nel core. È ancora nelle fasi iniziali, ma puoi provarla abilitando l’impostazione enable page publishing nelle impostazioni del tuo sito. Puoi creare una pagina pubblicata aprendo il menu delle azioni del post su un argomento (seleziona il pulsante … seguito dal pulsante a chiave inglese).
Immagino sia troppo presto per dedicare troppo lavoro al design del tuo forum, dato che è ancora in fase di sviluppo, ma per ora tutto è disponibile qui:
Grazie, Steven; dopo un po’ di prove, non è possibile renderli visibili agli anonimi nei forum che richiedono il login. Peccato: è proprio per quello che volevo usarli. Comunque, è comunque piuttosto figo.
Sembra che l’unico modo per rendere visibile più contenuto statico agli utenti non registrati sia:
mantenere il requisito di login e utilizzare gli strumenti esistenti:
Esatto. So che questo plugin serve principalmente a creare pagine statiche. Tuttavia, supponiamo di realizzare un’applicazione calcolatrice che si desidera inserire nella pagina. La calcolatrice richiede un input dall’utente. La pagina mantiene il codice statico, ma aggiornerebbe il risultato in base all’input dell’utente. È possibile farlo con questo plugin o è meglio creare una pagina HTML/CSS esterna con JavaScript?
Vorrei utilizzare un widget di terze parti su una pagina statica. Il JavaScript per questo dovrebbe essere inserito prima di </body>. Esiste un modo per farlo solo su questa specifica pagina statica? Grazie per l’aiuto!
Condivido solo come sono riuscito a eseguire uno script per le pagine statiche:
<script type="text/discourse-plugin" version="0.8">
const { setDefaultHomepage } = require('discourse/lib/utilities');
const user = api.getCurrentUser();
if(!user) {
setDefaultHomepage('/page/welcome/1/'); // <--- imposta l'URL della homepage
}
api.onPageChange((url, title) => {
if(url.indexOf("/page/welcome") === 0) {
// esegui azioni per questa pagina statica
}
});
</script>
Una precisazione: impostare la pagina come homepage è completamente opzionale quando si tratta di eseguire lo script; volevo solo mostrare che è possibile farlo anch’esso
Grazie!
Sai come utilizzare script esterni (non provenienti dallo stesso dominio) per una pagina statica?
Compare sempre questo errore: Content Security Policy: Le impostazioni della pagina hanno bloccato il caricamento di una risorsa inline ("script-src"). Origine: (function injectedScript() {...
In generale, qual è il modo migliore per incorporare, ad esempio, un negozio online senza usare un iframe?
Esempio di codice:
Vorrei riproporre questa richiesta. Il plugin è ottimo, ma ogni volta che si condivide una pagina del genere vengono mostrati solo i metadati predefiniti. Sarebbe fantastico se fosse possibile specificare il titolo, la descrizione e un’immagine personalizzata. Il plugin è ancora in sviluppo attivo o è meglio indirizzare questa richiesta alla categoria del marketplace? Grazie!