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 « J'aime »

Merci pour ce super plugin !

Une petite demande SEO : il serait génial d’avoir des champs supplémentaires pour le titre de la page et une description afin de remplir le titre et la méta-description.

3 « J'aime »

D’accord. En outre, la possibilité de télécharger des images serait formidable.

1 « J'aime »

Désolé, je n’ai pas compris comment vous l’avez mis sur un forum privé.
C’est exactement ce dont j’ai besoin.

Je pense avoir le même problème. Ce serait génial, mais j’ai besoin que les pages soient visibles par les anonymes, car j’ai un site privé et je souhaite exposer certaines pages statiques au public.

@joebuhlig - cette question a déjà été posée plusieurs fois dans ce fil. Avez-vous des réflexions à ce sujet ?

3 « J'aime »

Cela apparaît après l’installation.

De plus, ma liste /admin/plugins était vide jusqu’à ce que je le désinstalle. Alors… Svp aidez-moi ! :content:

2 « J'aime »

+·1
tu as dit ce que je voulais dire :joy:

J’ai déterminé que l’erreur provenait du code utilisant Discourse.Model, qui a été déprécié (je crois qu’il a été entièrement supprimé dans la version actuelle de Discourse, d’où la nouvelle erreur).

J’ai corrigé l’erreur et soumis une Pull Request :

Et il semble qu’elle ait déjà été fusionnée… ouahou ! Vous devriez pouvoir réinstaller le plugin maintenant.

3 « J'aime »

Je ne pense pas que Joe maintienne ses plugins actuellement. Quelqu’un d’autre devra créer une PR.

Cela dit, nous travaillons actuellement sur une fonctionnalité de page statique dans le noyau. Elle en est encore à ses débuts, mais vous pouvez l’essayer en activant le paramètre enable page publishing dans les paramètres de votre site. Vous pouvez créer une page publiée en ouvrant le menu des actions du post sur un sujet (sélectionnez le bouton … suivi du bouton clé à molette).

13 « J'aime »

Cela fonctionne en fait ! Merci :smiley:

2 « J'aime »

:heart:

Oh ! Enfin ! C’est vraiment génial. Cela pourrait suffire pour que beaucoup de gens arrêtent d’utiliser WordPress. Oh. Oui. Tellement fantastique.

:heart:

10 « J'aime »

C’est génial ! Avez-vous des conseils sur la façon d’y accéder pour le style ?

Je suppose qu’il est encore trop tôt pour consacrer beaucoup de travail à la conception de votre forum, puisqu’il est en cours de développement, mais pour l’instant, tout se trouve ici

4 « J'aime »

Merci Steven ; après quelques essais, il semble impossible de les rendre visibles aux anonymes sur les forums nécessitant une connexion. Zut, c’est pourtant bien pour cela que je les voulais. Cela dit, c’est quand même plutôt cool.

Il semble que la seule façon d’afficher plus de contenu statique aux utilisateurs non connectés soit soit :

  1. de maintenir l’exigence de connexion et d’utiliser les outils existants :
    • /admin/customize/site_texts/login_required.welcome_message
    • /tos
    • /privacy
      ou
  2. de rendre le forum tel qu’il n’est pas nécessaire de se connecter (c’est-à-dire public)
    • et de strictement contrôler la visibilité de chaque catégorie et groupe
    • d’obtenir la suite complète /tos, /privacy, /about, /faq
    • de créer autant de pages statiques que l’on souhaite via enable page publishing

Quelqu’un connaît-il une autre méthode (à l’exception des pages hébergées sur un autre domaine ou sous-domaine) pour y parvenir ?

4 « J'aime »

Instructions complètes sur Page Publishing

1 « J'aime »

C’est exact. Je sais que ce plugin est principalement conçu pour créer des pages statiques. Cependant, imaginons que vous créiez une application de calculatrice que vous souhaitez intégrer à la page. La calculatrice nécessite une saisie de l’utilisateur. La page conserve son code statique, mais elle mettrait à jour le résultat en fonction de la saisie de l’utilisateur. Est-ce possible avec ce plugin, ou vaut-il mieux créer une page HTML/CSS externe avec du JavaScript ?

1 « J'aime »

Je souhaite utiliser un widget tiers sur une page statique. Le JavaScript correspondant doit être inséré avant . Existe-t-il un moyen de le faire uniquement pour cette page statique précise ? Merci pour votre aide !

Je partage simplement comment j’ai réussi à exécuter un script pour les pages statiques :

<script type="text/discourse-plugin" version="0.8">
    const { setDefaultHomepage } = require('discourse/lib/utilities');
    const user = api.getCurrentUser();
    if(!user) {
        setDefaultHomepage('/page/welcome/1/'); // <--- définir l'URL de la page d'accueil
    }
    api.onPageChange((url, title) => {
        if(url.indexOf("/page/welcome") === 0) {
            // faire quelque chose pour cette page statique
        }
    });
</script>

Une précision : définir la page comme page d’accueil est tout à fait facultatif lorsqu’il s’agit d’exécuter le script. Je voulais simplement montrer que c’est possible aussi :+1:

4 « J'aime »

Merci !
Connaissez-vous un moyen d’utiliser des scripts externes (non provenant du même domaine) pour une page statique ?
On obtient toujours :
Content Security Policy : Les paramètres de la page ont bloqué le chargement d'une ressource en ligne (« script-src »). Source : (function injectedScript() {...

De manière générale, quelle est la meilleure façon d’intégrer, par exemple, une boutique en ligne sans utiliser de cadre intégré (iframe) ?
Exemple de code :

<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 « J'aime »

Je souhaite remettre cette demande sur la table. Le plugin est excellent, mais chaque fois que vous partagez une telle page, seules les métadonnées par défaut sont affichées. Il serait idéal de pouvoir spécifier le titre, la description et une image personnalisée. Le plugin est-il toujours en développement actif, ou devrais-je plutôt poster cela dans la catégorie Marketplace ? Merci !