Плагин «Социальные комментарии» (обновление 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-скрипта.
— Добавлена защита от подмены данных на клиенте (проверка авторизации в социальной сети).

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

avatar
Дык, не рабочий…
1. Он делегирует файлы шаблона с которыми могут работать другие плагины, например старрейтинг нетланка или editcomment
2. Гость, предположим, авторизован и в контакте и в фейсбуке — он откуда будет комментировать?
3. А собственно чем ваш код отличается от кода 4ever4you?
4. Смешно, но после включения этого плагина перестает работать авторизация в модальном окне. Пришлось выключить.
avatar
Благодарю за отзыв.
1. Он делегирует файлы шаблона с которыми могут работать другие плагины, например старрейтинг нетланка или editcomment
Абсолютно верно, делегирует, как и оригинальный плагин.
2. Гость, предположим, авторизован и в контакте и в фейсбуке — он откуда будет комментировать?
Проверка осуществляется последовательно — Вконтакте, фейсбук, гостевые комментарии.
3. А собственно чем ваш код отличается от кода 4ever4you?
1) Работоспособностью под 1.0.3.
2) Поддержкой гостевых комментариев.
3) Добавлены ссылки на профиль гостя из социальной сети.
4) Добавлена проверка авторизации в серверной части.
Пока все.
4. Смешно, но после включения этого плагина перестает работать авторизация в модальном окне. Пришлось выключить.
На чистом сайте никаких проблем с авторизацией не замечено (шаблон synio). Приведите, если вас не затруднит, список Ваших активных плагинов.
avatar
3) Добавлены ссылки на профиль гостя из социальной сети.

А как можно убрать эти ссылки или закрыть их от индексации? Или пустить через плагин urlredirect?
avatar
убрать эти ссылки
В файле "/classes/modules/user/entity/User.entity.class.php" замените строку
else return (empty ($this->guestProfile) ? Router::GetPath('profile') . 'guest/' : $this->guestProfile);

на
else return Router::GetPath('profile') . 'guest/';


закрыть их от индексации
Для этого необходимо править Ваш шаблон — во всех местах где используется ссылка на автора комментария добавить проверку, чтобы идентификатор был равен 0.
avatar
Спасибо, помогло!
avatar
Да, специально проверил работоспособность «EditComment» работает без каких-либо проблем. Плагина «Star Rating» у меня нет, проверить не могу.
avatar
Спасибо за ответы, попытаюсь адаптировать файлы шаблона, единственно я не согласен с двумя вещами:
1. Неужели надо обязательно делегировать файлы целиком? Хуками не решается?
2. У гостя всегда должна оставаться возможность выбора социальной сети, зачем за него решать откуда он должен комментировать?
avatar
1. Неужели надо обязательно делегировать файлы целиком? Хуками не решается?
Есть пара идей — возможно получится уменьшить число делегируемых файлов, но вряд ли все.
2. У гостя всегда должна оставаться возможность выбора социальной сети, зачем за него решать откуда он должен комментировать?
Свежая мысль. Т.е. чтобы при загрузке страницы просто отображать иконки выбора?
Почему то был уверен, что лучше автоматическая загрузка любого доступного способа комментирования.
avatar
Почему то был уверен, что лучше автоматическая загрузка любого доступного способа комментирования.
А это спорный момент))
Мне вот тоже нравится идея — когда сайт сам предлагает ответить под учетной записью в ВК если юзер в данный момент авторизирован в нем. Т.е. заходишь — читаешь топик — и видишь внизу уже свой аватар из ВК — остается только набрать коммент и нажать кнопку отправить — прикольно!))
avatar
Это не про этот плагин, тут этого нет. ))
avatar
Есть, после первого подтверждения доступа для приложения и до нажатия ссылки «Выход.»
avatar
Не увидел, увидел только значок социальной сети и имя. Кстати, а что так сложно демку сделать? Хотите предоставлю площадку?
avatar
Разворачиваю уже…
avatar
А попробовать в действие где нибудь можно?
  • ASA
  • 0
avatar
Пока нет.
avatar
Жаль(
Плагин вызывает интерес…

Можно вопрос — разъясните плиз, после ответа через Ваш плагин с помощью ВК или FB — я так понимаю учетной записи не создается как при использовании плагина ОпенАйдиАвто — так?
Если второй раз человек захочет ответить продолжая общение — плагин запомнит с помощью чего был сделан предыдущий ответ?
avatar
Можно вопрос — разъясните плиз, после ответа через Ваш плагин с помощью ВК или FB — я так понимаю учетной записи не создается как при использовании плагина ОпенАйдиАвто — так?
При работе плагина пользователь не регистрируется на сайте, для него не создается профиля и его статистика не отслеживается. Просто взамен предоставления информации из соцсети — предоставляется возможность писать комментарии.
Если второй раз человек захочет ответить продолжая общение — плагин запомнит с помощью чего был сделан предыдущий ответ?
Если пользователь не нажмет кнопку «Выйти», то он останется авторизированным в соцсети и при следующем входе на страницу будет автоматически оценен плагином как подключенный.
Единственная проблема на данный момент в том, что если пользователь одновременно авторизован в Вконтакте и Facebook одновременно, то ему будет подгружаться данные Вконтакте.
avatar
Спасибо за ответы.
При работе плагина пользователь не регистрируется на сайте, для него не создается профиля и его статистика не отслеживается. Просто взамен предоставления информации из соцсети — предоставляется возможность писать комментарии.
т.е. для движка он так и остается гостем, но с возможностью написания комментов без регистрации.

Если пользователь не нажмет кнопку «Выйти», то он останется авторизированным в соцсети и при следующем входе на страницу будет автоматически оценен плагином как подключенный.
А как ведут себя в этом случае различные условия в шаблонах — воспринимают как Гостя и выводят всю инфу как для гостя?

Единственная проблема на данный момент в том, что если пользователь одновременно авторизован в Вконтакте и Facebook одновременно, то ему будет подгружаться данные Вконтакте.
Имхо, не особая проблема… т.к. для РФ — ВК явно популярнее
avatar
т.е. для движка он так и остается гостем, но с возможностью написания комментов без регистрации.
Да.
А как ведут себя в этом случае различные условия в шаблонах — воспринимают как Гостя и выводят всю инфу как для гостя?
Стандартные шаблоны вопринимают как пользователь «guest» (кстати, при отключении шаблона именно так комментарии и будут выглядеть), а измененные шаблоны в плагине — выводят более корректную информацию.
avatar
Просто взамен предоставления информации из соцсети — предоставляется возможность писать комментарии.
и не совсем понимаю, что будет с этими комментаи если плагин отключить.

При отключенном плагине вместо имени гостя будет отображаться guest.
а если потом включить обратно плагин — появится иммя из ВК или FB?
avatar
и не совсем понимаю, что будет с этими комментаи если плагин отключить.
Включен:
Плагин включен

Отключен:
Плагин отключен

а если потом включить обратно плагин — появится иммя из ВК или FB?
Да, все вернется на круги своя.
avatar
А после регистрации юзера-гостя — его комменты под гостем ему не переходят?
avatar
С точки зрения системы на данный момент все гостевые комментарии оставлены одним пользователем с ID=0. В принципе ничего сложного в том, чтобы выцепить все предыдущие комментарии и привязать к новому логину, нет. Технически это реализуемо.
avatar
т.е. из таблицы гостей — перенести все комменты конкретного гость-юзера вполне возможно в таблицу юзеров?
очень интересно)
avatar
Для того, чтобы сделать подобный перенос достаточно нескольких SQL-запросов. Но это выходит за рамки рассмотрения данного плагина.
avatar
Пробуйте — ls.wasja.info/
avatar
Запрашивать e-mail для гостевых комментариев. По умолчанию включено (true)
Возможно ли при совместном использовании с плагином Нетланка — регистрация только с вводом Emal — netlanc.net/blog/345.html — создавать учетные записи для каждого ответившего?
  • ASA
  • 0
avatar
Скажу больше — это можно сделать и без плагина «Fast start», непосредственно работая с БД. Но это уже совсем другие цели и подход.
avatar
Почему считаете это другими целями и подходом?

С одной стороны мы задачу выполнили — спровоцировали легкое комментирование юзером, читающим топик. Начало положено — он выполнил действие и ввел свой маил (проявив заинтересованность) — можно брать за рога и делать его зарегинным юзером))

Вот тут было бы круто делать его зарегинным юзером после прохождения модерирования его коммента.

Кстати а вообще возможна разовая модерация таких юзер-гостей? Т.е. первый коммент отправлять на модерацию и если прошел — то последующие без модерации?
avatar
С этой точки зрения логичнее будет рассылка оповещений в социальную сеть, нежели регистрация пользователя на сайте.
avatar
Хм. можете более подробно разъяснить механизм того, что имеется ввиду? а то не очень дружу с соц.сетями… В чем будут плюсы и логичность?)
avatar
Для того, чтобы задействовать функционал плагина, необходимо создать «приложения» в соответствующей социальной сети. Этому приложению можно выставить определенный набор привилегий, которые должен подтвердить пользователь, чтобы добавить комментарий. Так вот там есть всякие интересные возможности вроде рассылки сообщений друзьям пользователя, размещению сообщений на стене, смене статусов и т.п. Конкретный набор у каждой соцсети свой. Но чем больше привилегий просит приложение, тем больше вероятность, что пользователь откажется.
Но это опять же мало относится к данному плагину.
avatar
примерно понял направление мысли)
Но чем больше привилегий просит приложение, тем больше вероятность, что пользователь откажется.
Тут согласен… комментирование становится сложнее…

Видимо было бы интереснее эти привилегии запрашивать не при первом комментировании, а например при третьем и т.п.
avatar
Видимо было бы интереснее эти привилегии запрашивать не при первом комментировании, а например при третьем и т.п.
Для того, чтобы идентифицировать пользователя (чтобы знать его идентификатор соцсети) необходимо, чтобы он авторизировался на сайте через соцсеть. Но если он уже авторизировался, то уже с определенными привилегиями, которые в процессе работы не сменить. Можно попытаться извратиться с помощью сообщения в стиле «Хотите получить расширенный доступ на сайт» и, при согласии, разлогинить пользователя, чтобы и запустить авторизацию с новыми привилегиями. Но мороки много.
avatar
К тому же, что делать с пользователем, который вчера зашел через вконтакт, сегодня через фейсбук, а завтра через мейлру? Три логина? Естественно нет, нужен какой-то один общий. Вот так плавно и незаметно мы подобрались к принципу работы OpenID, Loginza и иже с ними. :)
avatar
Я имел ввиду регистрировать гостя, если он оставляет коммент вводом e-mail и имени…

И к тому же скорее всего человек будет стараться заходить под одним типом авторизации… если только случайно под другими данными, т.к. кто-то другой из близких за время его отсутствия отключит его учетку.
avatar
Вот так плавно и незаметно мы подобрались к принципу работы OpenID, Loginza и иже с ними. :)
вот набросать бы таблицу сравнения по этим плагинам и Вашему) — плюсы минусы
avatar
Главная проблема в этих плагинах — для их работы нужен сторонний сервис, который и будет хранить единый профиль.
В моем плагине единого профиля просто не создается. :)
avatar
Добавлена поддержка авторизации Mail.ru.
Теперь порядок проверки — ВКонтакте, Facebook, Mail.ru, гостевые комментарии.
avatar
круто! а яндекс и гугл будут)?
avatar
Все зависит от наличия у них JS-библиотек (у гугла точно есть). Но пока собираюсь дошлифовать то, что есть.
avatar
Добавлены конфигурационные параметры:
$config['use_server_check'] — Дополнительная защита от подмены данных на клиенте — запрашиваются информация о пользователе напрямую в соцсети. Замедляет скорость добавления комментариев из-за выполнения запросов к серварам социальных сетей. По умолчанию включена (true).
$config['use_auto_login'] — Автоматическая проверка авторизации при загрузке страницы. По умолчанию включена (true).
avatar
1) Работа плагина переделана на использование хуков вместо делегации файлов шаблона.
2) Добавлен параметр $config['show_icon'] — загружать скрипт, отображающий иконки соцсетей возле имени автора комментария.
3) Исправлена ошибка с формированием ссылки на профиль автора у гостевого комментария.
4) Исправлено отображение информации об авторах комментариев в «Активности».
5) Работоспособность плагина проверена:
— на шаблонах «Synio» и «Developer»;
— с плагинами «EditComment», «Starrating»;
— плагин «Reposter» требует небольшой модификации.
avatar
#1060 — Duplicate column name 'guest_name'
avatar
У Вас уже установлен какой-то плагин, создавший это поле в таблице БД — скорее всего OpenComments или предыдущий SocialComments. Если это так, то их необходимо отключить и проверить, чтобы в таблице `prefix_comment` существовали 3 поля: `guest_name`, `guest_email` и `guest_extra`.

Если какого-то поля нет, то необходимо добавить отсутствующие:
— поле `guest_name` (у Вас присутствует):
ALTER TABLE `prefix_comment` ADD  `guest_name` VARCHAR( 150 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

— поле `guest_email`:
ALTER TABLE `prefix_comment` ADD  `guest_email` VARCHAR( 150 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

— поле `guest_extra`:
ALTER TABLE `prefix_comment` ADD  `guest_extra` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
avatar
Работает.
Отсутствовало поле
ALTER TABLE `prefix_comment` ADD `guest_extra` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
avatar
На версии плагина 1.0.3 был найден неприятный баг — при регистрации нельзя было пройти валидацию e-mail. Ошибка исправлена и новая версия отправлена на модерацию.

До появления новой версии в каталоге настоятельно рекомендую скачать архив отсюда, распаковать и залить файлы поверх предыдущей версии.
avatar
Добавлен параметр $config['use_small_icon'] для выбора размера иконок — 16px (true) или 24px (false).
avatar
Шустро вы! +
avatar
Добавлена поддержка мобильного шаблона.
avatar
Добавлено описание известных проблем.
avatar
Отличный плагин, а не подскажите как убрать возможность добавление коментов через почту, мне надо только через соц сети? Зарание спасибо за ответ.
avatar
1) $config['enabled'] — Позволяет отключать добавление гостевых комментариев без деактивации плагина.
При отключенном плагине вместо имени гостя будет отображаться guest. По умолчанию включено (true).
Установите данный параметр в false.
avatar
кстати у меня был до этого плагин native так оно так приколько показывало две формы для комментирования )))
avatar
Подскажите пожалйста, что сделать когда вот такая ошибка {«error»:«invalid_client»,«error_description»:«client_id is incorrect»}
avatar
Вы не создали приложение в соцсети и не настроили должным образом плагин (идентификаторы, секретные ключи и т.п.).
avatar
Спасибо!
avatar
Добавлен параметр $config['use_parser'] — Использовать стандартный парсер для обработки комментариев (разрешает вставлять видео и т.п.). Потенциально может снизить безопасность сайта. По умолчанию отключено (false).
avatar
В шаблоне vintage тоже все работает.
avatar
Плагин хороший и нужный, действительно потихоньку стали оставлять комментарии с его помощью. Но через пару недель столкнулся с проблемой спама. Спамят видимо через гостевой комментарий с капчей. Т.е. через соцсети вроде ок.

Соответственно вопрос, нельзя ли ввести параметр для отключения только комментариев в вводом емайла (оставив соцсети) или прикрутить графическую капчу с поворотом картинок или ответом на вопрос?

А то пока вынужден был отключить.
avatar
1) $config['enabled'] — Позволяет отключать добавление гостевых комментариев без деактивации плагина. При отключенном плагине вместо имени гостя будет отображаться guest. По умолчанию включено (true).
Необходимый Вам параметр конфигурации.
avatar
Да, Wasja. Спасибо, воспользовался. В конфиге видел этот параметр, но почему-то подумал, что он отключает все новые комментарии, в том числе и через соцсети.

И всё-таки половина комментариев была у меня через «гостевые». Вопрос с капчей для меня по-прежнему актуальный.

Спасибо.
avatar
Капча генерируется стандартными средствами LS.
avatar
Спасибо, за наводку, попробую поковырять конфиг здесь
engine/lib/external/kcaptcha
avatar
Есть очень большая проблема.
Если конкуренты или недоброжелатели желают какать через аккаунт социальной сети — нельзя их забанить, не отключив весь плагин вообще. То есть один недоброжелатель портит все и делает использование плагина невозможным.
В связи с этим вопрос: можно ли сделать доступным бан конкретного пользователя из контакта/fb?
Если нет, есть ли плагины, позволяющие такое?
avatar
В связи с этим вопрос: можно ли сделать доступным бан конкретного пользователя из контакта/fb?
В принципе черный список добавить можно. Но проблема в том, что если спамер достаточно настойчивый, он может хоть каждый день регистрировать новый аккаунт в соцсетях.
Если нет, есть ли плагины, позволяющие такое?
Как вариант, можно попробовать банить по IP-адресу (вроде бы aceAdminPanel это умела).
avatar
Но проблема в том, что если спамер достаточно настойчивый, он может хоть каждый день регистрировать новый аккаунт в соцсетях.
Сейчас в контакте, например, привязка к телефону идет. Регистрировать аккаунты десятками — дело затрудненное.

Как вариант, можно попробовать банить по IP-адресу (вроде бы aceAdminPanel это умела).

А у геста проблема в том, что IP в админке вообще нет. Он же для всех пустой.
avatar
А у геста проблема в том, что IP в админке вообще нет. Он же для всех пустой.
В таблице «prefix_comment» есть поле «comment_user_ip», в которое записывается IP-адрес пользователя.
avatar
Я так понимаю, за этой таблицей надо лезть куда-то в базу? Просто в «админке» ее нет?
avatar
Не пользуюсь админкой, поэтому сказать не могу. Но через БД посмотреть точно можно.
avatar
Добавлена поддержка плагина «Цитирование комментариев».
avatar
Вечная загрузка при добавлении комментария даже через email. Как быть?
avatar
Такое обычно происходит, если во время выполнения произошла ошибка на сервере — скопируйте описание ошибки из лог-файла Вашего веб-сервера.
avatar
А средствами движка это возможно?
Боюсь, что с сервера получить логи будет проблемно…
avatar
Стандартными средствами движка обойтись не получится.
Если есть FTP-доступ к сайту, то должен быть и доступ к лог-файлам. Например, можно попытаться перенаправить вывод логов в отдельный файл внутри каталога LS. Для этого в корневом файле ".htaccess" необходимо добавить строки:
# PHP error handling for development servers
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /usr/www/site.ru/htdocs/logs/php_errors.log
# [see footnote 3] # php_value error_reporting 999999999
php_value error_reporting -1
php_value log_errors_max_len 0

Путь "/usr/www/site.ru/htdocs/" необходимо заменить на корректный путь к каталогу LS в пределах сервера.
После этого логи будут писаться в файл «logs/php_errors.log».
avatar
Это не то, случайно?
[2014-05-25 22:52:14][14756][4647][ERROR][SQL Error: Unknown column 'guest_extra' in 'field list' at /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
Array
(
    [code] => 1054
    [message] => Unknown column 'guest_extra' in 'field list'
    [query] => INSERT INTO prefix_comment 
			(comment_pid,
			target_id,
			target_type,
			target_parent_id,
			user_id,
			comment_text,
			comment_date,
			comment_user_ip,
			comment_text_hash,
            guest_name,
            guest_email,
            guest_extra
			)
			VALUES(NULL, 3, 'topic', 6, 0, 'тест', '2014-05-25 22:52:13', '78.36.29.176', 'ebb5e89e8a94e9dd22abf5d915d112b2', 'Neobychny Murmansk', '', 'a:3:{s:6:\"avatar\";s:53:\"http://cs617329.vk.me/v617329131/3647/fKAW_FS_FMo.jpg\";s:4:\"type\";s:2:\"vk\";s:2:\"id\";i:224307131;}')
		
    [context] => /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
)
]
[2014-05-25 22:54:02][32084][5091][ERROR][SQL Error: Unknown column 'guest_extra' in 'field list' at /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
Array
(
    [code] => 1054
    [message] => Unknown column 'guest_extra' in 'field list'
    [query] => INSERT INTO prefix_comment 
			(comment_pid,
			target_id,
			target_type,
			target_parent_id,
			user_id,
			comment_text,
			comment_date,
			comment_user_ip,
			comment_text_hash,
            guest_name,
            guest_email,
            guest_extra
			)
			VALUES(NULL, 3, 'topic', 6, 0, 'nnkln', '2014-05-25 22:54:01', '78.36.29.176', '3917369223968692232ef6c3b3cf3a9a', 'Neobychny Murmansk', '', 'a:3:{s:6:\"avatar\";s:53:\"http://cs617329.vk.me/v617329131/3647/fKAW_FS_FMo.jpg\";s:4:\"type\";s:2:\"vk\";s:2:\"id\";i:224307131;}')
		
    [context] => /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
)
]
[2014-05-25 22:54:54][9315][4997][ERROR][SQL Error: Unknown column 'guest_extra' in 'field list' at /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
Array
(
    [code] => 1054
    [message] => Unknown column 'guest_extra' in 'field list'
    [query] => INSERT INTO prefix_comment 
			(comment_pid,
			target_id,
			target_type,
			target_parent_id,
			user_id,
			comment_text,
			comment_date,
			comment_user_ip,
			comment_text_hash,
            guest_name,
            guest_email,
            guest_extra
			)
			VALUES(NULL, 3, 'topic', 6, 0, 'nn n b', '2014-05-25 22:54:53', '78.36.29.176', '51b89075c600a48da52a3f5332407fbd', 'Neobychny Murmansk', '', 'a:3:{s:6:\"avatar\";s:53:\"http://cs617329.vk.me/v617329131/3647/fKAW_FS_FMo.jpg\";s:4:\"type\";s:2:\"vk\";s:2:\"id\";i:224307131;}')
		
    [context] => /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
)
]
[2014-05-25 22:58:33][15764][8501][ERROR][SQL Error: Unknown column 'guest_extra' in 'field list' at /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
Array
(
    [code] => 1054
    [message] => Unknown column 'guest_extra' in 'field list'
    [query] => INSERT INTO prefix_comment 
			(comment_pid,
			target_id,
			target_type,
			target_parent_id,
			user_id,
			comment_text,
			comment_date,
			comment_user_ip,
			comment_text_hash,
            guest_name,
            guest_email,
            guest_extra
			)
			VALUES(NULL, 3, 'topic', 6, 0, 'bh  jh j', '2014-05-25 22:58:32', '78.36.29.176', '55c88c5cceee7a4ba6222492aa8a6b63', 'Neobychny Murmansk', '', 'a:3:{s:6:\"avatar\";s:53:\"http://cs617329.vk.me/v617329131/3647/fKAW_FS_FMo.jpg\";s:4:\"type\";s:2:\"vk\";s:2:\"id\";i:224307131;}')
		
    [context] => /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
)
]
[2014-05-25 23:01:23][11475][7480][ERROR][SQL Error: Unknown column 'guest_extra' in 'field list' at /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
Array
(
    [code] => 1054
    [message] => Unknown column 'guest_extra' in 'field list'
    [query] => INSERT INTO prefix_comment 
			(comment_pid,
			target_id,
			target_type,
			target_parent_id,
			user_id,
			comment_text,
			comment_date,
			comment_user_ip,
			comment_text_hash,
            guest_name,
            guest_email,
            guest_extra
			)
			VALUES(NULL, 3, 'topic', 6, 0, 'bn bnbn mnm', '2014-05-25 23:01:22', '78.36.29.176', 'd821021f92f79163afb345b5d760a938', 'Neobychny Murmansk', '', 'a:3:{s:6:\"avatar\";s:53:\"http://cs617329.vk.me/v617329131/3647/fKAW_FS_FMo.jpg\";s:4:\"type\";s:2:\"vk\";s:2:\"id\";i:224307131;}')
		
    [context] => /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
)
]
[2014-05-25 23:05:16][17571][5795][ERROR][SQL Error: MySQL server has gone away at /home/u924113510/public_html/blog/classes/modules/talk/mapper/Talk.mapper.class.php line 265
Array
(
    [code] => 2006
    [message] => MySQL server has gone away
    [query] => 
					SELECT
						SUM(tu.comment_count_new) as count_new												
					FROM   						
  						prefix_talk_user as tu
					WHERE   						
  						tu.user_id = 1  
  						AND
  						tu.talk_user_active=1							
		
    [context] => /home/u924113510/public_html/blog/classes/modules/talk/mapper/Talk.mapper.class.php line 265
)
]
[2014-05-26 00:37:45][18266][4781][ERROR][SQL Error: Unknown column 'guest_extra' in 'field list' at /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
Array
(
    [code] => 1054
    [message] => Unknown column 'guest_extra' in 'field list'
    [query] => INSERT INTO prefix_comment 
			(comment_pid,
			target_id,
			target_type,
			target_parent_id,
			user_id,
			comment_text,
			comment_date,
			comment_user_ip,
			comment_text_hash,
            guest_name,
            guest_email,
            guest_extra
			)
			VALUES(NULL, 3, 'topic', 6, 0, 'dfsvdc d', '2014-05-26 00:37:44', '78.36.29.176', '460fc5b9beaeb35c9035fb58ac8c2403', 'Neobychny Murmansk', '', 'a:3:{s:6:\"avatar\";s:53:\"http://cs617329.vk.me/v617329131/3647/fKAW_FS_FMo.jpg\";s:4:\"type\";s:2:\"vk\";s:2:\"id\";i:224307131;}')
		
    [context] => /home/u924113510/public_html/blog/plugins/newsocialcomments/classes/modules/comment/mapper/Comment.mapper.class.php line 36
)
]
avatar
У Вас отсутствует поле 'guest_extra' в таблице. Решение уже писал ранее — livestreet.ru/blog/addons/16154.html#comment262880
avatar
Спасибо, получилось!

Но выглядит кривовато…

avatar
Проблема с Вашим шаблоном, необходимо небольшая доработка плагина.
avatar
А как это можно осуществить? Шаблон New, так отображаются только комментарии из соц. сетей
avatar
Нужно подогнать код JS-скриптов под Ваш шаблон.
avatar
А вы можете помочь?
Боюсь, что мне это не по силам :(
avatar
Скиньте ссылку на сайт — гляну что там за проблемы.
avatar
blog.enot51.ru
avatar
Найдите в своих CSS файлах строку
.comment .comment-info li.avatar img { vertical-align: top; }

и замените ее на
.comment .comment-info li.avatar img { vertical-align: top; width: 24px; height: 24px; }
avatar
Большое спасибо, теперь все выглядит чудесно!
avatar
Меня всегда интересовало, зачем этот плагин создает пустого юзера «guest». Если отключить плагин — появится куча сообщений от одного человека, которого даже в базе нет.
avatar
Без этого пользователя, Ваш сайт после отключения плагина просто умер. Все блоки, так или иначе связанные с комментариями выдавали бы ошибки при попытках обращения к сущности пользователя-автора комментария.
Альтернативное решение — после авторизации через соцсеть создавать новый аккаунт, но для этого есть специальные плагины, а усложнять этот смысла нет.
avatar
Добавлены параметры:
— $config['add_field'] — Добавлять в форму дополнительное поле для борьбы со спамом. По умолчанию разрешено (true).
— $config['field_name'] — Название дополнительного поля для борьбы со спамом.
— $config['use_mail_check'] — Проверять существование сервера почты для e-mail гостя (требует PHP 5.3.0 и выше при работе сервера под Windows). По умолчанию включено (true).
avatar
Доброго времени суток. Установил ваш плагин, создал приложения от трех социалок. Все работает отлично.
Есть вопрос. Будет ли сыпаться спам, допустим, с ВКонтакта, который раньше сыпался через виджет комментариев от ВК? Я так понимаю, что через виджет комменты постят боты. А здесь как, получиться у них такое?
avatar
Только если кто-то напишет специального бота именно под этот плагин. Но я полагаю, что пока работают боты, которые регистрируются на LS сайтах и уже от зарегистрированного пользователя спамят, это маловероятно.
avatar
Ясно, спасибо за плагин!
avatar
Как например бороться с посетителями из соц. сетей? С троллями и просто «неадекватами». Как их банить?
avatar
Такой возможности в плагине не предусмотрено. И, к сожалению, в обозримом будущем добавление такой возможности маловероятно в связи с нехваткой у меня свободного времени.
avatar
а реально ли такое вообще реализовать?
avatar
Если бы все соцсети отдавали e-mail, то можно было бы задействовать функционал плагина «Черный список». Но для того же Вконтакте e-mail, насколько мне известно, не предоставляется. Соответственно придется банить по идентификаторам, а это предполагает внедрение дублирующего функционала в этот плагин…
avatar
Добавлена поддержка шаблона "VK Flat Style".
avatar
— Добавлена проверка на использование имени существующего пользователя.
— Добавлен параметр $config['check_unique'] — Проверять совпадение пары «имя — e-mail» для гостевых комментариев (используется при $config['ask_mail'] = true). По умолчанию включено (true).
avatar
Добрый день.
А возможно ли доработать плагин и добавить в него возможность бана (запрета на комментирование) отдельных пользователей социальных сетей? Насколько я понимаю социальная сетеь передаёт на сторону сайта ID пользователей? Хотелось бы перед публикацией проверять это и если пользователю запрещены комментарии, то выводить соответствующее предупреждение такому пользователю или отправлять на некую страницу где написано о запрете использования сайта.
Дело в том, что в последнее время участились случаи размещения спама при помощи социальных комментариев.
avatar
Да, такая доработка возможна. Уникальный идентификатор пользователя из соцсети сохраняется при добавлении комментария. Однако, к сожалению, я этой доработкой в ближайшее время точно не займусь, хотя там и не особо много нужно добавить.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.