Полноценные комментарии D7 под Битрикс
 

Документация

Парсер комментариев из форумов

Стандартным инструментом, использующимся в Битриксе для организации обсуждения, являются комментарии на основе механизма форума. Это накладывает ряд ограничений, в частности — обязательное наличие модуля Форума в системе. Многие клиенты, за неимением альтернативы, используют штатный механизм обсуждения. Начиная с версии 6.0.6 в наш модуль включён инструмент по переносу комментариев с форумов в «Полноценные комментарии». Таким образом, клиент может перенести все старые комментарии и начать использовать наш механизм обсуждения без потери того, что накоплено до текущего момента.

Порядок действий парсера

Парсер форумов запускается по ссылке «Сервисы / Полноценные комментарии / Парсер форумов». Парсер проверяет наличие модуля форума в системе и в случае успешной проверки, пользователь видит страницу с кнопкой для начала парсинга.

Полноценные комментарии под Битрикс. Парсер форумов

Кнопкой «Начало. Анализировать сообщения форума» запускается механизм, находящий все сообщения форумов, привязанные к элементам. Потом для каждого элемента считывается информация из инфоблоков. Всё это складывается в отдельно промежуточное хранилище.

Если после анализа данных выйти из парсера и потом вернуться к нему, будут найдены промежуточные данные и отображено сообщение:

Полноценные комментарии под Битрикс. Парсер форумов

Важно! Адреса страниц для элементов инфоблоков (новостей, статей, товаров в магазине) составляются на основе шаблонов путей, прописанных в инфоблоке. Поэтому рекомендуется проверить данные настройки перед запуском парсера. Если даже по каким-то причинам шаблоны ссылок не прописаны в каком-то из инфоблоков, а их элементы откомментированы в публичной части, желательно прописать шаблоны ссылок хотя бы временно — для того чтобы парсер корректно отработал.

Полноценные комментарии под Битрикс. Парсер форумов

После того, как данные проанализированы и сложены в промежуточное хранилище, администратору предлагается перейти к следующему шагу: созданию копий комментариев в нашем модуле. Отмечу, что комментарии форума не переносятся в буквальном смысле. На самом деле, на их основе создаются копии в инфоблоках модуля "Полноценных комментариев". Парсер не удаляет комментарии с форумов.

Полноценные комментарии под Битрикс. Парсер форумов

На данной странице пользователь выбирает, в каком инфоблоке создавать комментарии, спарсенные из форума. Тут же можно создать для этого отдельный инфоблок. Отмечу, что парсер распознаёт ситуацию, когда на обрабатываемой странице новости или товара из магазина, уже есть комментарии. Он не перезаписывает их, а дописывает. По этой же причине нужно быть внимательным с парсером: двойная процедура создат дубликаты форумных комментариев. Ну и конечно, лучше для начала испробовать парсер на каком-то тестовом инфоблоке, который потом можно будет безболезненной удалить.

Дальше выбирается опция проверки страниц. Если галочка установлена, перед тем, как для определённой страницы перенести комментарии, скрипт запросит её по урлу и проверит наличие на ней названия новости (статьи, товара) — поле NAME элемента. Как правило, на всех детальных страницах содержится упоминание названия отображаемого элемента — на этом принципе мы и основывались при разработке парсера.

Дальше дан список всех найденных статей, новостей, детальных страниц с указанием количества обнаруженных комментариев. Каждый элемент списка снабжён ссылкой (открывается в новом окне) и псевдо-ссылкой для того, чтобы просмотреть список комментариев.

Кнопкой "Начать перенос" запускается механизм фактического создания комментариев в модуле.

Процедура выполняется пошагово: берётся первый элемент в списке, при необходимости проверяется на корректность урла, создаётся в указанном инфоблоке и к нему прикрепляются комментарии. После успешно выполненной операции, элемент и промежуточные данные по нему удаляются. Это защищает весь механизм на случай сбоя в сети или на сервере. Если по каким-то причинам связь оборвалась, можно открыть парсер по новой и продолжить с того места, где процедура оборвалась.

Важно! В случае, когда комментарии на основе форумов запущены на сайте, реализованном по принципу многосайтовости, рекомендуется запустить парсер на каждом сайте отдельно и проводить перенос комментариев с установленной галочкой проверки урла страниц. Доменное имя берётся из запроса и все комментарии, которые действительно запущены в текущем сайте, перенесутся корректно, а остальные (из другого сайта) будут проигнорированы.

Все элементы, которые не прошли проверку на корректность урла, не удаляются и отображаются с предупреждением об ошибке. Если брать во внимание ситуацию с многосайтовостью, это могут быть статьи с другого сайта. То есть первый запуск "просеет" корректные элементы данного сайта и пропустит те, что не относятся к нему. Второй запуск, произведённый на другом сайте из списка многосайтовости, заберёт все оставшиеся комментарии.

После окончания процедуры переноса, демонстрируется сообщение «Transfer complete».