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

素晴らしいプラグインをありがとうございます!

小さなSEOに関するリクエストです:ページタイトルとメタ説明を入力するための追加フィールドがあると非常に助かります。

「いいね!」 3

同意します。また、写真をアップロードできる機能もとても便利です。

「いいね!」 1

すみません、プライベートフォーラムでどのように設定されているかがわかりませんでした。
まさに私が求めているものです。

私も同じ問題を抱えていると思います。これは素晴らしいことですが、プライベートサイトでありながら、一部の静的ページを一般公開したいため、匿名ユーザーにもページが表示される必要があります。

@joebuhlig - この件については、このスレッドで何度か質問されています。何かご意見はありますか?

「いいね!」 3

インストール後にこれが表示されます。

また、これをアンインストールするまで、/admin/plugins のリストは空でした。なので… お願いします! :content:

「いいね!」 2

+·1
あなたが言いたかったことを言ってくれてありがとう :joy:

エラーの原因は、廃止された Discourse.Model を使用するコードにあると特定しました(現在の Discourse のバージョンでは完全に削除されているため、新しいエラーが発生したと思われます)。\n\nエラーを修正し、プルリクエストを提出しました:\nhttps://github.com/procourse/procourse-static-pages/pull/13\n\nすでにマージされたようです…やった!これでプラグインを再インストールできるようになるはずです。

「いいね!」 3

Joe は現在、自身のプラグインのメンテナンスをしていないと思います。別の誰かが PR を作成する必要があります。

とはいえ、コア機能として静的ページ機能の開発を進めています。まだ初期段階ですが、サイト設定で「ページ公開を有効化」設定を有効にすることで試すことができます。公開ページを作成するには、トピックの投稿アクションメニュー(…ボタンを選択し、その後レンチボタンを選択)を開いてください。

「いいね!」 13

実際には機能します!ありがとうございます :smiley:

「いいね!」 2

:heart:

おお!ついに!これは素晴らしいですね。これで WordPress を使わなくなる人が増えるかもしれませんね。おお、はい。本当に素晴らしいです。

:heart:

「いいね!」 10

素晴らしいですね。スタイリングのためにそれらにアクセスする方法について、何かコツはありますか?

フォアムがまだ開発中の段階なので、デザインにあまり力を入れるのは時期尚早かもしれませんが、現時点ではすべてのものがここにあります

「いいね!」 4

スティーブン、ありがとうございます。少し試してみましたが、ログイン必須のフォーラムでは、匿名ユーザーにそれらを表示させることはできないようです。残念ですね。それが本当に必要だったのですが。それでもかなり素敵です。

ログインしていないユーザーにさらに多くの静的コンテンツを表示させるには、以下のいずれかの方法しかないようです。

  1. ログイン必須のままにし、既存のツールを使用する:

    • /admin/customize/site_texts/login_required.welcome_message
    • /tos
    • /privacy

    または

  2. フォーラムをログイン必須ではなく(つまり公開状態にする):

    • 各カテゴリとグループの表示を厳密に制御する
    • 完全な /tos/privacy/about/faq のセットを利用する
    • enable page publishing を使って、好きなだけ静的ページを作成する

これ以外の方法(別のドメインやサブドメインにホストされたページを除く)をご存知の方がいらっしゃれば、教えてください。

「いいね!」 4

完全な手順は Page Publishing をご覧ください。

「いいね!」 1

その通りです。このプラグインは主に静的ページの作成を目的としていることは理解しています。ただし、ページに埋め込みたい電卓アプリケーションを作ると仮定してみましょう。この電卓はユーザーからの入力が必要です。ページのコード自体は静的なままですが、ユーザーの入力に応じて結果が更新されるようなものです。このプラグインで実現可能でしょうか、それとも外部の HTML/CSS ページと JS を作成する方がよいでしょうか?

「いいね!」 1

静的ページでサードパーティ製のウィジェットを使用したいと考えています。そのためのJavaScriptは</body>の前に挿入する必要があるとされています。特定の静的ページのみでこれを実現する方法はありますか?ご協力ありがとうございます!

静的ページでスクリプトを実行する方法を共有します:

<script type="text/discourse-plugin" version="0.8">
    const { setDefaultHomepage } = require('discourse/lib/utilities');
    const user = api.getCurrentUser();
    if(!user) {
        setDefaultHomepage('/page/welcome/1/'); // <--- ホームページURLを設定
    }
    api.onPageChange((url, title) => {
        if(url.indexOf("/page/welcome") === 0) {
            // この静的ページ向けの処理を実行
        }
    });
</script>

補足:スクリプトを実行する際に、ページをホームページに設定することは完全にオプションです。これも可能であることを示したかっただけです :+1:

「いいね!」 4

ありがとうございます!
静的ページで外部スクリプト(同じドメイン以外のもの)を使用する方法をご存知ですか?
常に以下のようなエラーが表示されます:
Content Security Policy: ページの設定により、インラインでのリソース読み込みがブロックされました(script-src)。ソース: (function injectedScript() {...

一般的に、iframe ではなくウェブストアなどを埋め込む最善の方法は何でしょうか?
コード例:

<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

このリクエストを再度取り上げさせていただきたく思います。プラグインは素晴らしいのですが、このようなページを共有する際、デフォルトのメタデータしか表示されません。タイトル、説明、カスタム画像を指定できると大変助かります。このプラグインは現在も積極的に開発されていますか?それとも、こちらのカテゴリ(マーケットプレイス)に移動させるべきでしょうか?よろしくお願いいたします。