Расширение Disqus позволяет посетителям сайта комментировать отдельные пакеты, используя систему комментариев на основе AJAX. Недостатком этого плагина является то, что комментарии не сохраняются локально, а информация о пользователе не передается между CKAN и системой комментирования.
Примечание. Для этого расширения требуется ckan 1.7 или выше.
Чтобы настроить плагин Disqus, вам сначала нужно зайти на disqus.com и настроить форум с вашим доменным именем. Вы сможете выбрать название форума.
Чтобы установить плагин, введите свою виртуальную среду и загрузите исходный код:
(pyenv)$ pip install -e git+https://github.com/okfn/ckanext-disqus#egg=ckanext-disqus
Для версий ckan до 2.0 используйте ветку Release-v1.8.
Это также зарегистрирует точку входа плагина, поэтому теперь вы сможете добавить следующее в свой файл CKAN .ini:
ckan.plugins = disqus <другие-плагины> disqus.name = YOUR_DISQUS_NAME
На этом этапе каждая страница просмотра набора данных будет содержать комментарии Disqus. Чтобы добавить комментарии на другие страницы, см. следующий раздел.
Disqus будет использовать window.location.href в качестве disqus_url. Иногда полезно, особенно во время разработки, указать базовый URL-адрес, который будет использовать disqus. Это можно добавить в файл CKAN .ini:
disqus.disqus_url = my_staging.server.com
Не включайте http:// или косую черту в конце.
Чтобы цепочки комментариев отображались на страницах, вставьте в шаблоны, где вы хотите, чтобы комментарии появлялись:
{{h.disqus_comments()}}
Примечание для разработчиков тем: расширения пытаются сгенерировать disqus_identifier вида:
{контроллер/имя-домена-объекта}::{id}
Где контроллер = «группа» в разделе группы, «набор данных» в разделе набора данных (обратите внимание, что оно отличается от внутреннего имени контроллера, которое по-прежнему является пакетом), «ресурс» для ресурсов и т. д. Этот идентификатор будет полезен, если вы захотите затем укажите этот комментарий (например, для количества комментариев) в другом месте сайта.
Вставьте на страницы, где вы хотите, чтобы последние комментарии отображались:
{{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 вы должны сохранить свои открытый и секретный ключи в ini-файле CKAN:
ckan.plugins = disqus <другие-плагины> disqus.name = YOUR_DISQUS_NAME disqus.secret_key = ВАШ_DISQUS_SECRET_KEY disqus.public_key = ВАШ_DISQUS_PUBLIC_KEY