Комментарии социальных сетей 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: