Миграция комментариев из Drupal 7 в Disqus

Disqus - веб-сервис , предоставляющий возможность импорта интернет-обсуждений и комментариев на сайт пользователя. Сервис использует свою социальную сеть, что упрощает комментирование на сайтах, использующих его. Сервис используют более 750 тысяч блогов и веб-сайтов, а также интернет-порталы таких изданий, как CNN, Daily Telegraph и IGN (выдержка из http://ru.wikipedia.org/wiki/Disqus).

В друпал есть модуль disqus , который обеспечивает поддержку систему комментирования Disqus , заменяющий стандартные комментарии друпал.

Но бывают ситуации , когда на сайте использовались друпал комментарии , а затем по каким либо причинам возникла необходимость перейти на комментарии disqus . При этом естественно хотелось бы и одновременно сохранить все старые комментарии , которые уже были на сайте.
Эти комментарии тоже нужно перенести в систему disqus . Благо для этих целей уже имеется Disqus API , который позволяет также и импортировать/экспортировать комментарии с помощью xml файлов. Disqus предоставляет к тому же интерфейс ,который позволяет импортировать сгенерированные xml файлы и делать экспорт уже существующих там комментариев в xml файл.

Для экспорта комментариев из друпал в disqus xml файл для Drupal 6 использовался сабмодуль disqus_migrate , который отсутствует в версии для Drupal 7. Покопавшись на просторах drupal.org, был найден в песочнице модуль для этих целей - портированный модуль disqus_migrate под Drupal 7 Disqus Migrate.

Итак, для перехода на disqus комментарии нам понадобится :

  • Друпал сайт с уже существующими комменариями
  • Disqus аккаунт
  • Disqus модуль - http://drupal.org/project/disqus
  • Disqus migrate модуль портированный под Drupal 7 - http://drupal.org/sandbox/dwkitchen/1483518
  • Disqus PHP API Bindings for PHP - https://github.com/disqus/disqus-php (при его отсутствии в админке модуля disqus во вкладке Advanced будет предупреждение о необходимости его наличия )
  • Модуль libraries для библиотеки disqus-php

Разберем пошагово все стадии для миграции на систему disqus комментирования :

Шаг 1 - Регистрация в системе Disqus

Для этого перейдем по адресу https://disqus.com/admin/signup ,зарегистрируемся там и добавим свой сайт .

disqus-import1.png

disqus-import4.png

Шаг 2 - Добавление нового приложения в Disqus API

Для этого переходим по адресу http://disqus.com/api/applications. Там добавим новое приложение и скопируем себе для этого приложения User Access Token, Public Key и Secret Key.

disqus-import5.png

Шаг 3 - Добавления модуля disqus на сайт
Скачиваем модуль с drupal.org , разархивируем его в sites/all/modules и включаем его . В админке по адресу /admin/config/services/disqus заполняем короткое имя сайта(Shortname ), добавленного при регистрации в disqus.
Во вкладке Visibility отмечаем типы материалов , в которых должны отбражаться комментарии . Также выбираем расположение комментов : в контентной части или же в отдельно блоке .

disqus-import6.png

Во вкладке Advanced заполняем User Access Token, Public Key и Secret Key , полученные нами ранее при регистрации приложения.

Шаг 4 - Добавления модуля Disqus Migrate и библиотеки disqusapi
Скачиваем модуль Disqus Migrate , размещаем его традиционно в sites/all/modules и включаем .
Скачиваем с репозитория библиотеку Disqus PHP API и размещаем его каталог disqusapi в sites/all/libraries.

Шаг 5 - Экспортируем друпал комментарии в xml файл
Переходим по адресу /admin/content/comment/disqus_export и просто жмем на кнопку "Export all comments to XML file" . Сохраняем сформированный файл .

disqus-import7.png

При включенном модуле devel файл может формироваться неправильно.

Шаг 6 - Импортируем полученный файл в disqus комментарии
Для этого переходим в админку Disqus ,выбираем нужный сайт и во вкладке "Import " выбираем "Upload your WXR XML file" .Адрес данной страницы будет следующим - SITENAME.disqus.com/admin/discussions/import/platform/generic/ . Жмем кнопку " Upload and import " и имортируем все наши комментарии .

disqus-import

Шаг 7 - Завершающий
Ну и никогда не может быть все хорошо - комментарии импортируются без сохранения иерархии . Также некоторые захотят проделать обратную процедуру - экспортировать комментарии из Disqus (не проблема , решается в админке сайта Disqus экспортом в xml файл ) и затем их импортировать в друпал комментарии . Disqus Migrate для Drupal 7 не реализует импорт комментариев . Поэтому при необходимости придется писать кастомную форму , в которую будет загружаться экспортируемый файл , затем при обработке будут создаваться из полученных данных комментарии и записываться в базу данных.

UPD На drupal.org нашел модуль для импорта комментариев Disqus в друпал комментарии - https://drupal.org/sandbox/sanchiz/1999128 .