Плагин «Социальные комментарии» (обновление 10.09.2014)

Описание

Позволяет посетителям оставлять комментарии, используя аккаунты социальных сетей, и гостевые комментарии без регистрации.
Поддерживается авторизация из социальных сетей Вконтакте, Facebook и Mail.ru (для корректной работы необходимо получение идентификаторов для сайта).

Основан на плагинах:
1) "OpenComments" (автор: flexbyte, модификации: iMind);
2) "Social Comments" (автор: 4ever4you)

Работоспособность проверена:
— на шаблонах «Synio» и «Developer»;
— с плагинами «EditComment», «Starrating», «Цитирование комментариев»;
— плагин «Reposter» требует небольшой модификации.

Тестовый сайт: ls.wasja.info/

GitHub: github.com/wasja1982/livestreet_newsocialcomments

Внешний вид


Разрешена авторизация из Вконтакте, Facebook, Mail.ru


Разрешена авторизация из Вконтакте, Facebook, Mail.ru и гостевые комментарии (крупные иконки авторизации)


Авторизованный пользователь


Отображение иконки соцсети

Настройка

Настройка плагина осуществляется редактированием файла "/plugins/newsocialcomments/config/config.php".

Поддерживаемые директивы:
1) $config['enabled'] — Позволяет отключать добавление гостевых комментариев без деактивации плагина. При отключенном плагине вместо имени гостя будет отображаться guest. По умолчанию включено (true).

2) $config['ask_mail'] — Запрашивать e-mail для гостевых комментариев. По умолчанию включено (true).

3) $config['use_mail_check'] — Проверять существование сервера почты для e-mail гостя (требует PHP 5.3.0 и выше при работе сервера под Windows). По умолчанию включено (true).

4) $config['use_fb_api'] — Разрешить авторизацию через Facebook. По умолчанию разрешено (true).

5) $config['fb_id'] — Идентификатор приложения для Facebook. Уникальный идентификатор для своего сайта необходимо получить по ссылке developers.facebook.com/apps/?action=create

6) $config['fb_secret'] — Секретный ключ приложения для Facebook. Получается одновременно с идентификатором приложения.

7) $config['use_vk_api'] — Разрешить авторизацию через Вконтакте. По умолчанию разрешено (true).

8) $config['vk_id'] — Идентификатор приложения для Вконтакте. Уникальный идентификатор для своего сайта необходимо получить по ссылке vk.com/editapp?act=create

9) $config['vk_secret'] — Секретный ключ приложения для Вконтакте. Получается одновременно с идентификатором приложения.

10) $config['use_mr_api'] — Разрешить авторизацию через Mail.ru. По умолчанию разрешено (true).

11) $config['mr_id'] — Идентификатор приложения для Mail.ru. Уникальный идентификатор для своего сайта необходимо получить по ссылке api.mail.ru/sites/my/add/

12) $config['mr_private'] — Приватный ключ приложения для Mail.ru. Получается одновременно с идентификатором приложения.

13) $config['mr_secret'] — Секретный ключ приложения для Mail.ru. Получается одновременно с идентификатором приложения.

14) $config['use_server_check'] — Дополнительная защита от подмены данных на клиенте — запрашиваются информация о пользователе напрямую в соцсети. Замедляет скорость добавления комментариев из-за выполнения запросов к серверам социальных сетей. По умолчанию включена (true).

15) $config['use_auto_login'] — Автоматическая проверка авторизации при загрузке страницы. По умолчанию включена (true).

16) $config['show_icon'] — Загружать JS-скрипт, отображающий иконки соцсетей возле имени автора комментария.
Вместо данного скрипта рекомендуется использовать изменение шаблона. По умолчанию разрешено (true).

17) $config['use_small_icon'] — Размер иконок для логина — 16px (true) или 24px (false). По умолчанию 16px (true).

18) $config['use_parser'] — Использовать стандартный парсер для обработки комментариев (разрешает вставлять видео и т.п.). Потенциально может снизить безопасность сайта. По умолчанию отключено (false).

19) $config['add_field'] — Добавлять в форму дополнительное поле для борьбы со спамом. По умолчанию разрешено (true).

20) $config['field_name'] — Название дополнительного поля для борьбы со спамом.

Установка

1. Скопировать плагин в каталог /plugins/
2. Через панель управления плагинами (/admin/plugins/) запустить его активацию.
3. Активация будет успешной если пользователя с ID = 0 не существует в базе (см. prefix_user).
В противном случае, надо выполнить вручную след. SQL запрос:
ALTER TABLE `prefix_comment`
        ADD  `guest_name` VARCHAR( 150 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
        ADD  `guest_email` VARCHAR( 150 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
        ADD  `guest_extra` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL


Известные проблемы

1. Если при добавлении комментариев с авторизацией через социальную сеть плагин возвращает ошибку «Ошибка авторизации в социальной сети», а с добавлением гостевых комментариев проблем нет, то вероятно на хостинге установлено ограничение «allow_url_fopen» для PHP в false. В результате функция «file_get_contents» не может считать информацию с сервера соцсети.
Решение:
  1. Разрешить «allow_url_fopen».
  2. Отключить дополнительную защиту от подмены данных на клиенте — установить параметр $config['use_server_check'] равным false.
2. При использовании плагина «Reposter» во время добавления комментария выдается сообщением вида
Fatal error: Call to a member function getUserId() on a non-object in /var/sites/site.ru/plugins/reposter/classes/hooks/HooksReposter.class.php on line 109

Это вызвано попыткой обратиться к несуществующему пользователю.
Решение: добавить в файле "/plugins/reposter/classes/hooks/HooksReposter.class.php" после строки
public function ExportComments( $aVars){

следующий код
///////////////////////////////////////////////////////////////////////////////
// Для совместимости с New Social Comments
///////////////////////////////////////////////////////////////////////////////
		if (!$this->User_IsAuthorization()) {
			return;
		}
///////////////////////////////////////////////////////////////////////////////

3. Окно авторизации в соцсети не открывается или открывается и сразу закрывается. Такая проблема может наблюдаться при использовании блокировщиков рекламы.
Решение: просить разработчиков блокировщиков исправить некорректные правила для блокировки.

Изменения
1.0.7 (09.09.2014)
— Добавлена поддержка возможности замены капчи с помощью хуков:
блочный хук «template_block_newsocialcomments_captcha» — для замены блока вывода капчи;
хук «newsocialcomments_captcha_check» — переопределение проверки капчи (результат возвращается в параметре 'bCaptchaCheck');
блочный хук «template_block_newsocialcomments_captcha_reload» — для замены блока JS-функции обновления капчи.
— Добавлено автоматическое обновление капчи при ответе на комментарий и цитировании комментария.
— Добавлен параметр $config['add_field'] — Добавлять в форму дополнительное поле для борьбы со спамом.
— Добавлен параметр $config['field_name'] — Название дополнительного поля для борьбы со спамом.
— Добавлен параметр $config['use_mail_check'] — Проверять существование сервера почты для e-mail гостя.

1.0.6 (30.04.2014)
— Добавлен параметр $config['use_parser'] — Использовать стандартный парсер для обработки комментариев (разрешает вставлять видео и т.п.).
— Рефакторинг кода JS скрипта.
— Исправлена ошибка с авторизацией в Mail.ru.
— Исправлена ошибка с отображением панели авторизации в шаблоне.
— Добавлена поддержка плагина «Цитирование комментариев».

1.0.5 (08.12.2013)
— Добавлен параметр $config['use_small_icon'] для выбора размера иконок — 16px (true) или 24px (false).
— Добавлена поддержка мобильного шаблона.
— Исправление ошибки с формированием поля «ссылка на профиль».

1.0.4 (24.11.2013)
— Добавлен параметр $config['show_icon'].
— Исправлена ошибка с формированием ссылки на профиль автора у гостевого комментария.
— Исправлено отображение информации об авторах комментариев в «Активности».
— Исправлена ошибка с валидацией e-mail при регистрации пользователей.

1.0.3 (10.11.2013):
— Работа плагина переделана на использование хуков вместо делегации файлов шаблона.

1.0.2 (31.10.2013):
— Добавлена поддержка авторизации Mail.ru.
— Усилена защита от подмены данных на клиенте (запрос информации о пользователе осуществляется серверной частью).

1.0.1 (27.10.2013):
— Исправлены файлы шаблона.
— Исправлены неточности работы JS-скрипта.
— Добавлена защита от подмены данных на клиенте (проверка авторизации в социальной сети).

10 комментариев

avatar
Неплохой плагин, но есть пара странных вещей.
первое - слишком непонятный интерфейс. стоит сразу выдавать большие кнопки авториазции
второе - стоит сразу и плюсовать минусовать материал , раз уж получили идентификацю от вконтакта...
avatar
стоит сразу выдавать большие кнопки авториазции
Добавлен параметр $config['use_small_icon'] для выбора размера иконок — 16px (true) или 24px (false).
стоит сразу и плюсовать минусовать материал, раз уж получили идентификацю от вконтакта…
С этим не согласен — нет никакой необходимости давать гостям возможность управления рейтингом, слишком велика возможность накрутки. Для этих целей уместнее использовать плагины для регистрации пользователей.
avatar
Тестируем.
avatar
Вечная загрузка при добавлении комментария даже через email. Как быть?
avatar
комментарий был удален
комментарий был удален
avatar
Похоже, что плагин неплохой. Это тестовый комментарий, так сказать, посмотреть, что будет...
avatar
Очень приятно, что комментарии из разных социальных сетей можно собрать в нормальную ленту.

Оставить комментарий

Комментировать при помощи:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.