Disqus 扩展允许站点访问者使用基于 AJAX 的评论系统对各个包进行评论。该插件的缺点是评论不会存储在本地,并且用户信息不会在 CKAN 和评论系统之间共享。
注意:此扩展需要ckan 1.7或更高版本
为了设置 Disqus 插件,您首先需要访问 disqus.com 并使用您的域名设置一个论坛。您将能够选择一个论坛名称。
要安装插件,请输入您的 virtualenv 并加载源:
(pyenv)$ pip install -e git+https://github.com/okfn/ckanext-disqus#egg=ckanext-disqus
对于2.0之前的ckan版本,请使用release-v1.8分支。
这还将注册一个插件入口点,因此您现在应该能够将以下内容添加到您的 CKAN .ini 文件中:
ckan.plugins = disqus <其他插件> disqus.name = YOUR_DISQUS_NAME
此时,每个数据集视图页面都会有 Disqus 注释。要将评论添加到其他页面,请参阅下一节。
Disqus 将使用 window.location.href 作为 disqus_url。有时指定供 disqus 使用的基本 url 会很有帮助,尤其是在开发过程中。这可以添加到 CKAN .ini 文件中:
disqus.disqus_url = my_staging.server.com
请勿包含“http://”或尾部斜杠。
要让评论线程显示在页面上,请插入到您希望显示评论的模板中:
{{h.disqus_comments()}}
主题开发人员请注意:扩展尝试生成以下形式的 disqus_identifier:
{控制器/域对象名称}::{id}
其中,组部分中的controller = 'group',数据集部分中的'dataset'(请注意,这与内部的控制器名称不同,后者仍然是包),资源的'resource'等。如果您想要的话,此标识符将很有用在网站的其他地方引用此评论(例如评论计数)。
在您希望显示最近评论的页面上插入:
{{h.disqus_recent()}}
最近评论小部件默认会显示 5 条最近评论。要显示最近 10 条评论,请使用以下命令:
{{h.disqus_recent(num_comments=10)}}
Disqus 提供了许多其他小部件。我们建议主题开发人员直接合并代码,而不是自动提供这些作为此扩展的一部分(请注意,您从传递到所有模板的配置对象访问相关的配置变量)。
Disqus 提供“单点登录”选项,允许用户使用本地用户名/密码提交评论,而不需要单独的 disqus 帐户。有关如何在 Disqus 端进行设置(即创建 API 密钥)的说明,请参阅:https://help.disqus.com/customer/portal/articles/236206-integrating-single-sign-on
要与此 CKAN 插件集成,您必须将公钥和密钥存储在 CKAN ini 文件中:
ckan.plugins = disqus <其他插件> disqus.name = YOUR_DISQUS_NAME disqus.secret_key = YOUR_DISQUS_SECRET_KEY disqus.public_key = YOUR_DISQUS_PUBLIC_KEY