nystudio107/disqus

此包最新版本(1.1.1)没有提供许可证信息。

将Disqus评论系统集成到Craft CMS网站中,包括单点登录(SSO)和自定义登录/注销URL。

资助包维护!
khalwat

安装: 492

依赖项: 0

建议者: 0

安全性: 0

星星: 26

监视者: 4

分支: 10

开放问题: 0

类型:craft-plugin

1.1.1 2017-03-20 19:18 UTC

This package is auto-updated.

Last update: 2024-08-29 04:32:59 UTC


README

No Maintenance Intended

已弃用

此Craft CMS 2.x插件不再受支持,但它完全功能正常,您可以继续按需使用。许可证还允许您将其分支出来,并根据需要对其进行更改,以支持旧版。

此插件的Craft CMS 3.x版本可在以下位置找到:craft-disqus,并且也可以通过Craft CP中的Craft插件商店进行安装。

Craft CMS的Disqus插件

Disqus评论系统集成到Craft CMS网站中,包括单点登录(SSO)和自定义登录/注销URL。

相关:Disqus for Craft 3.x

安装

  1. 下载并解压缩文件,将disqus目录放入您的craft/plugins目录中
  2. - 或者直接在craft/plugins文件夹中执行git clone https://github.com/nystudio107/disqus.git。然后您可以使用git pull进行更新
  3. - 或者使用Composer通过composer require nystudio107/disqus进行安装
  4. 在Craft控制面板的设置>插件下安装插件
  5. 插件文件夹应命名为disqus,以便Craft能够识别。GitHub最近开始在zip文件下载的文件夹名称中附加-master(分支名称)。

配置Disqus

首先,确保您已经设置了一个Disqus账户

接下来在Craft管理控制面板中,转到设置>插件>Disqus,并输入您的Disqus网站的简称。这是Disqus插件的唯一必需设置。

所有设置也可以通过config.php文件进行配置,这是一个多环境友好的方式来存储默认设置。不要编辑此文件,而是将其复制到craft/config作为disqus.php,并在那里进行更改。

单点登录(SSO)

Disqus插件的实际用途是处理与您的Craft站点的单点登录(SSO)集成。

在您可以使用此功能之前,您需要根据集成单点登录网页上的说明设置Disqus SSO API。

然后复制并粘贴API密钥和API密钥到Disqus插件设置中,并打开“用户单点登录”开关。

自定义登录/注销URL

如果需要,Disqus插件还将处理自定义登录/注销URL。请参阅添加您自己的SSO登录和注销链接以获取详细信息。

如果您想在Disqus UI本身中显示自定义登录按钮,则需要此功能。

url 应该是您登录页面的地址。页面将在新窗口中打开,并在认证完成后自行关闭。这就是我们如何知道操作已完成并重新加载页面的方式。

logout 应设置为 http://example.com/actions/disqus/logoutRedirect 以调用处理注销和重定向的Disqus控制器。

在您的模板中使用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会忽略所有空字符串设置,例如:''

您将使用的典型Twig标签如下

{{ disqusEmbed(entry.slug, entry.title, entry.url) }}

...这将导致每个条目都有独特的评论。

在其最基本的情况下,这将导致Craft模板的输出如下所示

<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 设置是从Admin CP或 config.php 设置中获取的,其余的 DISQUS_* 设置作为变量从 disqusEmbed Twig过滤器/函数传递。

如果您已启用“用户单点登录”,则在上面的标签内还会输出类似的内容

this.page.remote_auth_s3 = "eyJpZCI6IjEiLCJ1c2VybmFtZSI6IkFkbWluIiwiZW1haWwiOiJhbmRyZXdAbWVnYWxvbWFuaWFjLmNvbSJ9 c0e4b8f2eca3c0e995cdd64ba2dedd720820ab5b 1431214361";
this.page.api_key = "GTX1r1JBbiJah3hzZkBO06hI71VxjyWxgdurckHYBWLiELkHDidVmnDkBW0XeROe";

假设您已正确设置了Disqus SSO,这将允许您的Craft用户使用Craft网站凭据登录Disqus。

如果您已启用“使用自定义登录/注销URL”,它还将为您生成 this.sso 设置,如本处所述

Disqus多语言网站

默认情况下,Disqus将使用您在 Disqus Admin > 设置 > 外观 中设置的语种,但是您也可以在 多语言网站 上使用它。

您可以向 {{ disqusEmbed() }} 提供的 DISQUS_LANGUAGE 参数允许您控制Disqus嵌入显示的语种。但是,评论对于所有语种仍然是相同的。

如果您希望评论本身根据语种而不同,您可以这样做

{{ disqusEmbed(entry.slug ~ "_" ~ entry.locale, entry.title, entry.url, '', entry.locale ) }}

这将导致不同语言的评论,并且Disqus嵌入将使用与评论相同的语种显示。

nystudio107 提供