Социальные плагины

Плагины социальных комментариев доступны в каталоге!!!

В каталоге размещены два новых плагина – плагин интеграции с социальными сетями и плагин гостевых комментариев с авторизацией через соц.сети. Оба этих плагина решено было сделать с защитой ioncube. Знаю, противников ионкуба в сообществе достаточно, но в этом случае шаг обоснован.
Для обоих плагинов была разработана оригинальная расширяемая библиотека взаимодействия Альто с социальными сетями и код только этой библиотеки защищён ioncube, остальные файлы плагина открыты и доступны для чтения и модификаций. Кроме того, интерфейс библиотеки открыт и методика добавления других социальных сетей к плагинам описана в файле manual/Example.class.php.

Плагин интеграции

посмотреть демо версию

Доработан, в админке добавлен параметр, который позволяет отключить у плагина функции репоста и использовать его только в качестве регистрации через социальные сети.

Если про плагин интеграции я писал, то про плагин гостевых комментариев нужно упомянуть отдельно. Этот плагин, кстати, хоть и будет защищен ионкубом, но будет распространятся бесплатно.

Плагин гостевых комментариев

посмотреть демо версию

В нем доступны те же социальные сети что и в плагине интеграции (кроме твиттера)
Плагин позволяет оставлять комментарии к топикам без регистрации, но через авторизации в какой-либо соц.сети или только с указанием email. Плагин имеет админку и все его параметры указать можно без ковыряния в файлах CMS, то есть можно выбрать либо один из режимов работы плагина соц.сети/email, либо включить оба режима. Общий порядок работы с этим плагином такой:
В топике пользователь при желании оставить комментарий просто выбирает способ которым он это сделает.

Похожие статьи

  • Плагин интеграции с Telegram API
    Выпустил первую версию адаптации библиотеки Telegram Bot API PHP к AltoCMS. В коде плагина выполнены примеры встраивания через хуки, расширения функционала существующих функций (E::ModuleNotify()—>SendTalkNew())...
  • AltoCMS + vBulletin 3.8.7
    Данная тема и соответствующий плагин являются продолжением темы интеграции AltoCMS с проектами, начинавшимися и сушествующими на других системах. У меня был форум на phpBB, который надо было интегрировать с...
  • Обновлены плагины «Интеграция с соцсетями» и «Гостевые комментарии»
    Исправлены ошибки, которые возникали при работе с версией 1.1.х
  • Обновление плагина интеграции с соц.сетями.
    Плагин интеграции обновился до версии 1.2. В новой версии был исправлен ряд ошибок и добавлен режим экспресс-регистрации, который позволяет регистрировать пользователя на сайте в один клик без дополнительных окошек,...

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

+3
УРА!!! (простите за капслок)
+1
Спасибо за бесплатный плагин. С соц. сетями ценник на мой взгляд завышен.
С «Гостевыми комментариями» почему то после выключения плагина и повторного включения приключается следующая беда
SQL Error: Duplicate entry '0B8uAORUAmrIObE9QZ1U5QW8xakE' for key 'user_login' at /var/www/iqtrader/data/www/iqtraders.ru/engine/classes/modules/database/Database.class.php line 291 --- Array ( [code] => 1062 [message] => Duplicate entry '0B8uAORUAmrIObE9QZ1U5QW8xakE' for key 'user_login' [query] => -- ---------------------------------------------------------------------------------------------- -- install.sql -- Файл таблиц баз данных плагина Gc -- -- @author Андрей Г. Воронов -- @copyrights Copyright © 2014, Андрей Г. Воронов -- Является частью плагина Gc -- @version 0.0.1 от 03.09.2014 10:02 -- ---------------------------------------------------------------------------------------------- INSERT INTO `prefix_user` (user_id, user_login, user_password, user_activate, user_mail, user_date_register, user_ip_register) VALUES (0, '0B8uAORUAmrIObE9QZ1U5QW8xakE', '0B8uAORUAmrIObE9QZ1U5QW8xakE', 0, 'test@gladcode.ru', '2014-01-01 00:01', '127.0.0.1') [context] => /var/www/iqtrader/data/www/iqtraders.ru/engine/classes/modules/database/Database.class.php line 291 )

Ну и конечно слетели красивости в шаблоне BRAND в прямом эфире
+2
При включении проверяется не то поле, нужно проверять наличие comment_guest_login вместо guest_login
+1
для шаблона brand плагин просто не адаптирован. Ошибку увидел, будет исправлена.
0
Такая же ошибка в шаблоне experience, только вообще не включается.
0
Такая же ошибка в шаблоне experience, только вообще не включается. Кто знает в чем может быть проблема?
0
В плагине гостевых комментариев в файле плагина common/plugins/gc/PluginGc.class.php в строке 84 нужно заменить
if (!$this->isFieldExists('prefix_comment', 'guest_login')) {

на
if (!$this->isFieldExists('prefix_comment', 'comment_guest_login')) {
0
Ошибка исправлена, обновите плагин «gc»
0
Блин, теперь Exception: Unable to load template file 'comments/comment.pagination.tpl' in 'comments/comment.tree.tpl' Права на все вложенные каталоги папки common стоят 777
0
На каком шаблоне ошибка? Плагин ls включен или нет?
0
Шаблон experience, плагин совместимости с LS включен, alto 1.0.7
0
В версии 1.0.8 файл паджинации был переименован. Для того, что бы плагин заработал на версии 1.0.7 нужно в файле плагина common/plugins/gc/templates/skin/experience/tpls/comments/comment.tree.tpl в строке 126 заменить
{include file='comments/comment.pagination.tpl' aPagingCmt=$aPagingCmt}

на
{include file='comments/comment.paging.tpl' aPagingCmt=$aPagingCmt}
0
Спасибо помогло… Интересно зачем переименовывать файл паджинации… покороче что ли чтобы стал?
0
Не, наоборот — в 1.0.8 подлиннее стало. Наверное, это перфекционизмом отдает, но «pagination» — более корректное название, чем «paging»
+1
А можете включить все сервисы авторизации на демо сайте? Хотелось бы опробовать все. На демо сайте не увидел этих возможностей при авторизации и при публикации топика:
— Брать из социальных сетей доступную дополнительную информацию и заполнять ею профиль создаваемого пользователя.
— Публиковать в социальные сети (не во все, правда) информацию о публикациях пользователя, новом статусе, новой записи на стене;
— Искать по сайту друзей из социальных сетей;
— Публиковать в открытую группу Фейсбука информацию о новых статьях.

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

Другое дело что я в принципе не хочу ставить ioncube себе на сервер =(
Отредактирован:
+1
Аналогично… Принципиально не ставлю ничего с кубом.
+1
Чтобы вы не думали что я тут осуждаю, нет. Я всеравно возьму плагин как обновлюсь до 1 версии. Потому что плагин и правда полезный. А цена, 25 баксов в нынешней реальности, терпимо =)
0
Ещё раз проверил, по порядку
— Брать из социальных сетей доступную дополнительную информацию и заполнять ею профиль создаваемого пользователя.
к примеру от вконтакта берется аватарка, имя-фамиля, пол, «о себе», ссылка на профиль во вконтакте, email (не отображается). Этими данными заполняется профиль на сайте. Не все провайдеры предоставляют полную информацию? например твиттер отдает только имя и ссылку на свою страничку

Публиковать в социальные сети (не во все, правда) информацию о публикациях пользователя, новом статусе, новой записи на стене;
Опять же не все провайдеры это разрешают, а только: фейсбук, мой мир, твиттер и вк, но через подтверждение в модальном js-окне. По умолчанию репост отключеён, но на странице example.com/settings/social/ можно галочками отметить куда будет репост. Где репост невозможен, галочки нет вообще.

Искать по сайту друзей из социальных сетей;
На странице example.com/settings/social/ для тех соц.сетей, которые предоставляют информацию о связях с другими пользователями есть кнопка «Найти друзей»

Публиковать в открытую группу Фейсбука информацию о новых статьях
Это может делать только админ. У него в подвале каждого топика будет кнопка «Репост в группу».
Отредактирован:
+1
Считаю ценник завышен сильно, да еще с такой ценой нужен куб! :(
0
Андрей, спасибо за проделанную работу. У меня есть вопрос. Я думаю, ценность плагина сильно бы выросла, если бы мы могли минуть ту стадию, где пользователю необходимо выбрать login и подтвердить вход. Если можешь, подскажи, как добиться такого:

1. Если я правильно понимаю, любая соцсеть отдает нам email пользователя. С этим вопросов нет.
2. Можно ли сделать так, чтобы login автоматом брался как тут? Например, для Facebook — vasja.pupkin
3. Вместе с этим, надо чтобы в базу данных заносился и profile name идентичный вышеполученному логину.
4. Я планирую на сайте выводить profile name вместо логина, так что пользователь сможет потом сменить имя на угодное ему.

Хочется добиться минимальной фрикции для пользователя. Во всех сервисах, которыми я пользуюсь, данная схема дефолтная.

Спасибо!
0
1. Если я правильно понимаю, любая соцсеть отдает нам email пользователя. С этим вопросов нет.
Твиттер, одноклассники и инстаграм не отдают email (

2. Можно ли сделать так, чтобы login автоматом брался как тут? Например, для Facebook — vasja.pupkin
инстаграмм гитхаб и твиттер не отдают разделяют имя и фамилию, а отдают одну строку и полным именем.

Еще остается опасность того, что пользователь войдя через другую соц.сеть создаст себе дубликат учетки.

Но для тех соц.сетей, которые отдают email задачу можно решить так:
1. В админке поставить галочку напротив настройки «Автологин». Таким образом логин будет формироваться авоматически по правилу «socialId» + «userId». Например для вконтакта будет id_555999999999999, где 555999999999999 — ид пользователя во вконтакте. В будущем логин менять нельзя будет, но если на сайте везде выводится profile name, то ничего разницы ни какой
2. В шаблоне common/plugins/ar/templates/skin/default/tpls/actions/ar/action.ar.confirm.tpl поля login и mail сделать типа hidden и зменить ее вид, оставив только текстовку/соглашение пользователя/приветствие и кнопку «Дальше»

Хотя согласен, такой режим «Быстрой регистрации» нужно делать в составе плагина. Займусь этим. Спасибо за идею.
0
Спасибо за ответ.

При включенном автологине Google+ выдает ошибку «Недопустимые символы в имени логина».
0
Исправлено, скоро обновление появится в каталоге.
0
Я не совсем понимаю, зачем запрашивать email еще раз в тех случаях, когда соцсеть его отдает. Может сделать перебор с If?
0
Отключил в плагине репост по группам, но в шаблонах осталось «Репост в группу». Кликаешь — пишет, что все репостнулось успешно, хотя никаких настроек групп нет ))
+1
Исправлено, скоро будет в каталоге
0
Андрей, а если ничего не произошло после активации плагина, нет возможности оставить комментарии?
«Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.»
Шаблон «Fortune»
Отредактирован:
0
Плагин не адаптирован под шаблон fortune, в этом всё дело. Нужно в файле плагина common/plugins/gc/PluginGc.class.php указать правильные имена шаблонов, которые нужно переопределять, например так:
protected $aDelegates = array(
'template' => array(

    // Комментарий к топику
    'comment_tree.tpl' => '_comments/comment.tree.tpl',
    'comment.tpl' => '_comments/comment.single.tpl',
...

А затем эти шаблоны приводить к виду темы.
Отредактирован:
0
Спасибо, правда вылезла другая ошибка:
Exception: Unable to load template file 'comments/comment.pagination.tpl' in 'comment_tree.tpl'

Пробовал сделать так, но не помогло:
common/plugins/gc/templates/skin/experience/tpls/comments/comment.tree.tpl в строке 126 заменить
{include file='comments/comment.pagination.tpl' aPagingCmt=$aPagingCmt}

на
{include file='comments/comment.paging.tpl' aPagingCmt=$aPagingCmt}

Может обновления у меня не все стоят.
Отредактирован:
0
В темах LS файл паджинации лежит в корне темы, то есть нужно, скорее всего так:
{include file='paging.tpl'}

но там ещё может куча всего вылезти (
0
Андрей, а когда пробую оставить комментарий через фейсбук, то дает ошибку:
Exception: Type must be either png, jpeg or gif
Это где-то нужно указать картинку?
Отредактирован:
0
Добрый день, друзья!
Установил GC плагин и настроил ioncube. В админке плагин потребовал указать почту. Потом вылезла вот такая ошибка при сохранении
E_ERROR [1] Call to a member function setMail() on a non-object
See details in error.log
Отредактирован:
0
будет исправлено
0
Сколько дней прошло, до сих пор не исправили(. Прошу, исправить!
+2
В каталоге выложена обновленная версия плагина Гостевых комментариев
Отредактирован:
0
Спасибо, большое!!! Успехов ВАМ!!!
0
Скачал и установил, не исправили ошибку
E_ERROR [1] Call to a member function setMail() on a non-object
See details in error.log

Все равно не работает. Пожалуйста, исправьте! CMS хорошая но из-за одного плагина сайт не правильно функционирует! Или напишите инструкцию как правильно версию 1.1.3 плагина нужно устанавливать.
0
Будет ли адаптация с крайним релизом (на момент написания комментария 1.1.16)?
0
Извиняюсь, имел ввиду «Плагин гостевых комментариев». У нас на 1.1.16 почему-то не хочет работать.
2015-11-13 21:31:30
E_STRICT [2048] Declaration of PluginGc_ModuleUploader::_checkUploadedFile() should be compatible with ModuleUploader::_checkUploadedFile($sFile, $sConfigKey = 'default') (/site.ru/common/plugins/gc/classes/modules/uploader/Uploader.class.php on line 12)
Отредактирован:
0
Решилось правкой строки 24 файла common/plugins/gc/classes/modules/uploader/Uploader.class.php
protected function _checkUploadedFile($sFile) {

на:
protected function _checkUploadedFile($sFile, $sConfigKey = 'default') {
0
Нет, не хочет. Комментарий в БД добавляется и отображается в статье после перезагрузки страницы, но в момент добавления комментария ajax не обновляет форму и появляется popup с System error #1002.
+1
Сегодня посмотрим, исправим
0
На новой актуальной версии не работает авторизация через соц сети в vk Пишет мол не правильно установлен урл переадресации. Когда добавляю комментарий через почту то выдает ошибку Erroy #.. Но при обновлении странички он есть .
0
System error #1002
0
Понаблюдав за работой данного плагина на новой версии alto могу сказать что не совсем корректно он работает. Не получилось заставить работать его через соц. сеть vk. При авторизации через email , после попытки добавить комментарий появляется ошибка System error #1002 И комментария нет.
Но после обновления странички то он появляется . Как можно исправить эту ошибку System error #1002 ?
0
E_ERROR [1] Call to a member function setDateCommentLast() on a non-object (/home/admin/web/сайт/public_html/common/classes/modules/comment/Comment.class.php on line 640)
Отредактирован:
0
Ребят не ужели не кто не подскажет как поправить данную ошибку ?
0
Посмотрю, что с ним не так
0
Спасибо.
0
Ну что есть какое то решение ?
0
При включенном плагине, во всех шаблонах кроме experience-simple, авторизованные пользователи не могут загрузить картинку в комментариях. Появляется «ошибка загрузки изображения (Error #3012)»
Исправил так:
В файле comment.tree.tpl (\common\plugins\gc\templates\skin\default\tpls\comments\comment.tree.tpl)

Заменил

{*{if !$bAllowToComment}*}
    {*{$sNoticeNotAllow}*}
{*{else}*}
    {*{if E::IsUser()}*}
        {include file='commons/common.editor.tpl' sImgToLoad='form_comment_text' sSettingsTinymce='ls.settings.getTinymceComment()' sSettingsMarkitup='ls.settings.getMarkitupComment()'}
        <div class="reply-header" id="comment_id_0">
            <a href="#" class="link-dotted"
               onclick="ls.comments.toggleCommentForm(0); return false;">{$sNoticeCommentAdd}</a>
        </div>

        <form method="post" class="comment-reply js-form-comment" onsubmit="return false;" enctype="multipart/form-data">
            {hook run='form_add_comment_begin'}

            <div class="form-group">
                    <textarea name="comment_text" id="form_comment_text"
                              class="form-control js-editor-wysiwyg js-editor-markitup"></textarea>
            </div>

            {hook run='form_add_comment_end'}

            <input type="hidden" name="comment_mode" value="reply"/>
            <input type="hidden" name="comment_id" value=""/>
            <input type="hidden" name="cmt_target_id" value="{$iTargetId}"/>
            <input type="hidden" name="reply" value="0" id="form_comment_reply"/>

            <button type="button" onclick="ls.comments.preview();"
                    class="btn btn-default js-button-preview">{$aLang.comment_preview}</button>
            <button type="submit" name="submit_comment"
                    id="comment-button-submit"
                    onclick="ls.comments.add(this,'{$iTargetId}','{$sTargetType}'); return false;"
                    class="btn btn-success js-button-submit">{$aLang.comment_add}</button>
            <button type="submit" name="edit_comment"
                    id="comment-button-edit"
                    onclick="ls.comments.editSubmit(this, '{$iTargetId}', '{$sTargetType}'); return false;"
                    class="btn btn-primary btn-edit js-button-edit" style="display: none;">
                {$aLang.comment_edit_submit}
            </button>
        </form>

    {*{else}*}
        {*{$aLang.comment_unregistered}*}
    {*{/if}*}
{*{/if}*}


На это

{*{if !$bAllowToComment}*}
    {*{$sNoticeNotAllow}*}
{*{else}*}
    {*{if E::IsUser()}*}
        {include file='commons/common.editor.tpl'
        sTargetType="{$sTargetType}_comment"
        bTmp='false'
        sImgToLoad='form_comment_text'
        sSettingsTinymce='ls.settings.getTinymceComment()'
        sSettingsMarkitup='ls.settings.getMarkitupComment()'}

        <div class="topic-comment-controls reply-header" id="comment_id_0">
            <a class="btn btn-blue btn-normal corner-no" href="#" onclick="ls.comments.toggleCommentForm(0); return false;">{$sNoticeCommentAdd}</a>
            <a class="btn btn-light btn-normal corner-no pull-right"
               data-toggle-all="{$aLang.comment_toggle_all}"
               data-toggle-down="{$aLang.comment_toggle_down}"
               onclick='
                       ls.comments.toggleAll();
                       if ($(this).text()=="{$aLang.comment_toggle_all}") {
                       $(this).text("{$aLang.comment_toggle_down}");
                       } else {
                       $(this).text("{$aLang.comment_toggle_all}");
                       }
                       return false;'
               href="#">{$aLang.comment_toggle_all}</a>
        </div>

        <form method="post" class="comment-reply js-form-comment" onsubmit="return false;" enctype="multipart/form-data">
            {hook run='form_add_comment_begin'}

            <div class="form-group">
                    <textarea name="comment_text" id="form_comment_text"
                              rows="5"
                              class="form-control js-editor-wysiwyg js-editor-markitup"></textarea>
            </div>

            {hook run='form_add_comment_end'}

            <input type="hidden" name="comment_mode" value="reply"/>
            <input type="hidden" name="comment_id" value=""/>
            <input type="hidden" name="cmt_target_id" value="{$iTargetId}"/>
            <input type="hidden" name="reply" value="0" id="form_comment_reply"/>

            <button type="submit" name="submit_comment"
                    id="comment-button-submit"
                    onclick="ls.comments.add(this,'{$iTargetId}','{$sTargetType}'); return false;"
                    class="btn btn-blue btn-normal corner-no js-button-submit">{$aLang.comment_add}</button>
            <button type="submit" name="edit_comment"
                    id="comment-button-edit"
                    onclick="ls.comments.editSubmit(this, '{$iTargetId}', '{$sTargetType}'); return false;"
                    class="btn btn-blue btn-normal corner-no btn-edit js-button-edit" style="display: none;">
                {$aLang.comment_edit_submit}
            </button>
            <button type="button" onclick="ls.comments.preview();"
                    class="btn btn-light btn-normal corner-no js-button-preview">{$aLang.comment_preview}</button>
        </form>

    {*{else}*}
        {*{$aLang.comment_unregistered}*}
    {*{/if}*}
{*{/if}*}
0
Поставил плагин, пришлось откатить на хосте версию PHP 7.0 на 5.9, но то мелочи.
Сразу все вроде бы хорошо, но до первого гостевого комментария.
На страничке, где написан комментарий, под первым комментарием появляется ошибка:
E_WARNING [2] link() expects exactly 2 parameters, 1 given
See details in error.log

Виджеты уходят с правой колонки вниз, под комментарии. в виджете активности вместо имени гостя отображается набот символов и цыфр
На картинках видно.
AltoCMS последняя 1.1.23
Подскажите решение, комментарии удалять не хочется и сайт в таком виде оставлять нельзя
0
Посмотрел лог:
[LOG:1481226537.812-5849B929C6498][2016-12-08 22:48:57][PID:999913][ERROR][[
E_WARNING [2] link() expects exactly 2 parameters, 1 given (/.../engine/classes/modules/hook/Hook.class.php on line 405)
]][END:1481226537.812-5849B929C6498]

нашел строчку на которую ругалось, закоментил
                        if ($bArgsAsArray) {
                            if ($oObject) {
                                $xHookResult = $oObject->$sMethod($aVars);
                            } else {
/*                                $xHookResult = call_user_func_array($aCallback['function'], array(&$aVars)); */
                          }
                        } else {
                            if ($oObject) {
                                $xHookResult = call_user_func_array(array($oObject, $sMethod), $aVars);
                            } else {
                                $xHookResult = call_user_func_array($aCallback['function'], $aVars);
                            }
                        }

Что у меня не будет работать без этой строчки?
После этого шаблон исправился и ошибка ушла.
Осталось отображение имени комментатора набором символов в виджете, видно из за отсутствия привязки пользователя к аккаунту.
Отредактирован:
0
Речь о каком именно плагине? «Гостевые комментарии» или «Интеграция с соцсетями»?
0
гостевые комментарии.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.