Комментарии социальных сетей SocComments вставляем в компонент K2

Заметки


Здравствуйте дорогие друзья и любители Joomla. Как и обещал в прошлой статье, сегодня я вам расскажу как комментарии социальных сетей SocComments добавить в компонент K2 при рабочем компоненте JComments. Первые попытки примерить код JComments из SocComments с K2 увенчались провалом и я уже думал создавать отдельный плагин для K2, но дополнительный плагин добавит работы с его обновлением и работой над ним, а времени на это пока нету. По этому я собрался, сел на пару часов за кодом и решил данный вопрос.

Комментарии социальных сетей SocComments вставляем в компонент K2

Комментарии социальных сетей SocComments вставляем в компонент K2

Если честно, все же у меня мелькают мысли создать отдельный плагин SocComments для K2, но если это и будет то только после выхода новых версий Socbuttons и SocComments. В комментариях, хотелось бы услышать ваше мнение, нужен ли отдельный плагин SocComments для K2 или кому нужно и по моим статьям все сделает.

Добавляем комментарии социальных сетей SocComments в компонент K2

Как я уже писал выше, то основная загвоздка была это заставить работать вкладку JComments в K2. Так что для работы нам нужно:

  1. Компонент K2
  2. Компонент JComments 2.3
  3. Плагин SocComments 1.3 (скачать SocComments 1.3 )
  4. Системный плагин SocComments (идет в одном архиве в основным плагином SocComments)

Хочу сразу заметить, что после изменений в основном плагине SocComments вкладка Jcomments для com_content будет работать не корректно и этот пост для людей, которые использую компонент K2 в замену основному com_content.

Заметка: Пример приводится для Joomla 1.5, по этому номер строк может не совпадать, но глядя по приведенному коду вы сможете его найти и в версии Joomla 2.5

И начнем мы пожалуй из того, что внесем крохотное изменения в основной плагин SocComments:

Ищем 192 строку в файле /plugins/content/soccomments.php, ее вид такой:

$html .= JComments::showComments($_GET['id'], 'com_content', $title);

и заменяем com_content на com_k2 и получаем

$html .= JComments::showComments($_GET['id'], 'com_k2', $title);

Теперь мы внесем изменения в системный плагин SocComments:

Ищем строки 90-95 в файле /plugins/system/soccomments.php, ее вид такой:

if($plgSocComments->params->get('comment_system')=='jcomments'){
$jt = $plgSocComments->params->get('jc_text');
$artical->text  = str_replace($jt, '', $artical->text );
$artical->text  = str_replace('chat.png', 'secret.png', $artical->text );
$artical->text  = str_replace('#tabs-3', '#', $artical->text );
}

и полностью удаляем ее.Этот кусок кода отвечает за то, чтобы убрать вкладку JComments если плагин вставляется в сторонние расширения, так как стандартного решения в JComments не существует.

Потом опускаемся в самый них файла и видим 142-145 строки

$document->addStyleSheet('plugins/content/soc/css/soccomments.css');
$document->addScript("http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js");
$document->addScript("plugins/content/soc/js/jquery-ui-1.8.16.custom.min.js");
$document->addScript("plugins/content/soc/js/jsoccomments.js");

и мы добавляем к ним еще пару строк (2 скрипта и 1 css файл для JComments). В итоге у нас получится следующий код:

$document->addStyleSheet('components/com_jcomments/tpl/default/style.css?v=21');
$document->addStyleSheet('plugins/content/soc/css/soccomments.css');
$document->addScript("http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js");
$document->addScript("plugins/content/soc/js/jquery-ui-1.8.16.custom.min.js");
$document->addScript("plugins/content/soc/js/jsoccomments.js");
$document->addScript("components/com_jcomments/js/jcomments-v2.3.js?v=8");
$document->addScript("components/com_jcomments/libraries/joomlatune/ajax.js?v=4");

Теперь нам нужно вставить тег {soccomments} в подходящее место компонента K2. Я предлагаю заменить стандартную форму комментариев K2 нашей формой комментариев социальных сетей. Для этого мы открываем файл components/com_k2/templates/default/item_comments_form.php, а если вы используете свой шаблон для K2, то ищите файл item_comments_form.php в нем.
После 13 строки

defined('_JEXEC') or die('Restricted access');
?>

вставляете тег {soccomments}, получается

defined('_JEXEC') or die('Restricted access');
?>
{soccomments}

а все что ниже тега (код формы комментариев) вы просто удаляете. В итоге мы получаем следующую картинку:

Заметка: в работе со стандартным шаблоном ja_purity, было замечено что форма комментариев и сами комментарии налазили на друг друга. Оказывается в этом виноват css стиль самого JComments (файл components/com_jcomments/tpl/default/style.css?v=21, строка 83), а именно #comments .comments-list и его свойство height: 1%; . Если с вашим шаблоном происходит подобное после вставки SocComments, то просто удалите свойство height: 1%; и все придет в норму.

На этом пожалуй все. Если возникнут вопросы, задавайте  их в комментариях. Желаю вам побольше комментаторов на ваших сайтах и по меньше спама. Увидимся.

Joomla Блог Nauca – научись работать с Joomla

Хочешь получать на e-mail свежие статьи о компонентах, модулях, плагинах и других полезных вещах связанных с Joomla? Не пропусти ничего полезного, подпишись на новости блога Nauca:

  • Егор

    Добрый день!
    Все сделал как написано, но в K2 комментарии стали съезжать:
    1) так выглядят в нормальном виде — http://mirtreningov.ru/14-novosti/94-bezumnye-skidki-na-treningi-po-anglijskomu-ot-30-do-77
    2) так выглядят в k2 после правки кода — http://mirtreningov.ru/component/k2/item/20-vasiliy-ulyanov-kubiki-na-zhivote-za-60-dney
    исправление проблемы в сss 1% не помогло ((
    А то очень нравится эта система комментариев
    заранее спасибо

    • Очистите кеш и пересохраните настройки в основном плагине SocComments

  • Morph1us

    чего-то не хватает в описании, у меня joomla 2.5 сделал все как написано, несколько раз проверил, форма в K2 все равно не появляется, только если прописать в самой статье {soccomments}, то форма будет, но jcomments все равно отдельно появляется и потом в ручную в каждую статью забивать полный бред. Проверьте пожалуста на 2.5, чего то все равно не хватает в описании

    • А разве в статье написано, что нужно включать плагин JComments для k2? Выключите его.

      • Morph1us

        Talib, пожалуста проверь всетаки на 2.5, без jcomments не совсем удобно

        • В свободное время обязательно гляну и отпишусь

  • Morph1us

    и все-таки как установить счетчик, Талиб?

    • С К2 будет проблематично, а вот с стандартными материалами попробуем добавить новой версии.

  • Все сделал, но нифига нету 🙁 работает старый комент и все

  • Cherolina

    Спасибо огромное за ваш урок , все отлично получилось встал на джумлу 2.5, я уж не надеялась, т.к очень проблемный шаблон

  • habenskii

    попытался поставить у себя на сайте http://www.gostweb точка ru — все сделал по инструкции, мучился часа 2 — безрезультатно. Подскажите что не так. Joomla 2.5 Jcomments 2.3.0 Soccomments  с вашего сайта скачан. 

    • Более точно опишите что сделали и какой был результат.

  • Bistok

    Вместо плагина выводится сам текст  «{soccomments}». Это значит где что не так? Подскажите пожалуйста.

    • ipetos

      у меня такая же проблема заново все делал оно не появляется

    • ipetos

      можете пожалуйста написать какие плагины/компоненты оставлять включёным, а какие выключать

    • ipetos

      заранее спасибо

  • в joomla 2.5 почему-то не работает вкладка Jcomments в К2. А в обычном материале работает! В чем дело?

  • Почему-то не работает вкладка Jcomments в K2 Joomla 2.5. А в обычном материале работает! Что делать?

  • ipetos

    можете пожалуйста выложить готовый плагин

    • Выпуск готового плагина планируется, но пока не скоро

  • я все сделал по инструкции только не хочет отображаться jcomments или disqus, помогите кто-нить.

    • Включите в настройках плагина отображение вкладки

  • На джумла 2.5 немного по другому получается в одном файле. но вот отальное как у вас написано. но вот почему то работают тока вк ифайсбук комменты. а при нажатии на сайте пусто, а должны быть jcomments. есть какое то решение проблемы?
    при включении плагина к2 jcomments. вырубаются соц комменты. но работают jcom

  • Bavial

    В общем помучался я вместе с вами. И кому еще актуально, сделал все на много проще:
    Задача была вывести комментирование через соц сети в материалах компонента К2.
    Установил SocComments и настроил как написано здесь (естественно ничего не сработало сначала и оставалась форма комментирования К2 как и была). Мучался долго и нашел решение:
    Установил дополнительно плагин Disqus for K2, включил его, и в файле plugins/k2/disqus_k2/disqus_k2.php на 148 строчке где начинается
    if ($this->isArticlePage()):
    $output = ….
    Заменил текст вывода формы disqus на тег {soccomments}
    В итоге строка вышла такой
    if ($this->isArticlePage()):
    $output = ‘{soccomments}’;
    Все остальное настраиваем в плагине Content — SocComments
    Да, если кто найдет в каком файле находится html форма комментирования К2, то наверное туда можно вставить, п.ч. я не нашел, а файл components/com_k2/templates/default/item_comments_form.php как написано на этом сайте — не отвечает за вывод самой формы