このCraft CMS 2.Xプラグインはサポートされなくなりましたが、完全に機能しているため、適合しても使用し続けることができます。また、ライセンスを使用すると、レガシーサポートの理由で必要に応じて変更を加えて変更することもできます。
このプラグインのCraft CMS 3.xバージョンは、Craft-Disqusで見つけることができ、Craft CpのCraftプラグインストアを介してインストールすることもできます。
Disqusコメントシステムを、シングルサインオン(SSO)やカスタムログイン/ログアウトURLなど、Craft CMS Webサイトに統合します。
関連:クラフト3.xのdisqus
インストール
disqus
ディレクトリをcraft/plugins
ディレクトリに配置しますgit clone https://github.com/nystudio107/disqus.git
craft/plugins
フォルダーに直接直接行います。その後、 git pull
で更新できますcomposer require nystudio107/disqus
disqus
という名前にする必要があります。 githubは最近、zipファイルのダウンロード用にフォルダーの名前にappending -master
(branch name)を開始しました。 まず、Disqusアカウントを設定していることを確認してください。
次にクラフト管理CPで、[設定] - > [プラグイン]> [> [disqus]に移動し、Disqusサイトの短い名前を入力します。これは、Disqusプラグインに必要な設定のみです。
すべての設定は、 config.php
ファイルを介して構成可能でもあります。これは、デフォルトの設定を保存するためのマルチ環境に優しい方法です。このファイルを編集しないでください。代わりに、 disqus.php
としてcraft/config
にコピーして、変更を行います。
Disqusプラグインの真の有用性は、クラフトサイトとの単一サインオン(SSO)統合を処理することです。
これを使用する前に、統合されたシングルサインオンWebページで説明されているように、Disqus SSO APIをセットアップする必要があります。
次に、APIキーとAPIの秘密をDisqusプラグインの設定にコピーして貼り付け、「ユーザーシングルサインオン」LightSwitchをオンにします。
Disqusプラグインは、それらを使用したい場合に、カスタムログイン/ログアウトURLも処理します。詳細については、独自のSSOログインとログアウトリンクの追加を参照してください。
これが必要なのは、Disqus UI自体にカスタムログインボタンを表示する必要があることです。
url
、ログインページのアドレスである必要があります。ページは新しいウィンドウで開かれ、認証が完了した後は閉じる必要があります。それが、それがいつ行われたかを知る方法であり、ページをリロードします。
logout
http://example.com/actions/disqus/logoutRedirect
に設定して、ログアウトを処理してリダイレクトするDisqusコントローラーを押します。
これらの方法はすべて同じことを達成します。
{# Output the Disqus embed code using the 'disqusEmbed' function #}
{{ disqusEmbed( DISQUS_IDENTIFIER, DISQUS_TITLE, DISQUS_URL, DISQUS_CATEGORY_ID, DISQUS_LANGUAGE) }}
{# Output the Disqus embed code using the 'disqusEmbed' filter #}
{{ DISQUS_IDENTIFIER | disqusEmbed(DISQUS_TITLE, DISQUS_URL, DISQUS_CATEGORY_ID, DISQUS_LANGUAGE) }}
{# Output the Disqus embed code using the 'disqusEmbed' variable #}
{{ craft.disqus.disqusEmbed( DISQUS_IDENTIFIER, DISQUS_TITLE, DISQUS_URL, DISQUS_CATEGORY_ID, DISQUS_LANGUAGE) }}
DISQUS_IDENTIFIER
を除くすべてのパラメーターはオプションです。これらのパラメーターが何であるかの詳細については、JavaScript構成変数を参照してください
Disqusは、空の文字列である設定を無視します''
使用する典型的な小枝タグは次のようになります:
{{ disqusEmbed(entry.slug, entry.title, entry.url) }}
...その結果、入場ごとにユニークなコメントが発生します。
最も基本的なケースでは、これにより、このように見えるクラフトテンプレートに出力されます。
<div id="disqus_thread"></div>
<script data-cfasync="false" type="text/javascript">
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
if (typeof disqus_config !== 'undefined') {
var _old_disqus_config = disqus_config;
}
var disqus_config = function() {
if (typeof _old_disqus_config !== 'undefined') {
_old_disqus_config.apply(this);
}
this.page.url = 'DISQUS_URL';
this.page.identifier = 'DISQUS_IDENTIFIER';
this.page.title = 'DISQUS_TITLE';
this.page.category_id = 'DISQUS_CATEGORY_ID';
this.language = 'DISQUS_LANGUAGE';
};
(function() { // REQUIRED CONFIGURATION VARIABLE: EDIT THE SHORTNAME BELOW
var d = document, s = d.createElement('script');
s.src = '//DISQUS_SHORTNAME.disqus.com/embed.js'; // IMPORTANT: Replace EXAMPLE with your forum shortname!
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
DISQUS_SHORTNAME
設定は、管理CPまたはconfig.php
設定から取得され、 DISQUS_*
の残りの設定は、 disqusEmbed
Twigフィルター/関数の変数として渡されます。
「ユーザーシングルサインオン」をオンにした場合、上記のタグ内にこのようなものが出力されます。
this.page.remote_auth_s3 = "eyJpZCI6IjEiLCJ1c2VybmFtZSI6IkFkbWluIiwiZW1haWwiOiJhbmRyZXdAbWVnYWxvbWFuaWFjLmNvbSJ9 c0e4b8f2eca3c0e995cdd64ba2dedd720820ab5b 1431214361";
this.page.api_key = "GTX1r1JBbiJah3hzZkBO06hI71VxjyWxgdurckHYBWLiELkHDidVmnDkBW0XeROe";
Disqus SSOを適切にセットアップすると仮定すると、クラフトユーザーをクラフトWebサイトの資格情報を使用してDisqusにログインすることができます。
「カスタムログイン/ログアウトURLを使用する」がオンになっている場合、ここで説明するように、 this.sso
設定も生成されます。
デフォルトでは、DisqusはDisqus Admin > Setup > Appearance
で設定した言語を使用しますが、多言語のWebサイトでも使用できます。
{{ disqusEmbed() }}
に提供できるDISQUS_LANGUAGE
パラメーターを使用すると、disqus埋め込みが表示される言語を制御できます。ただし、コメントはすべての言語で同じです。
コメント自体が言語ごとに異なる場合は、次のようなことができます。
{{ disqusEmbed(entry.slug ~ "_" ~ entry.locale, entry.title, entry.url, '', entry.locale ) }}
これにより、言語ごとに異なるコメントが発生し、コメントと同じ言語で埋め込まれます。
Nystudio107によってもたらされました