Комментарии социальных сетей SocComments вставляем в компонент K2
Здравствуйте дорогие друзья и любители Joomla. Как и обещал в прошлой статье, сегодня я вам расскажу как комментарии социальных сетей SocComments добавить в компонент K2 при рабочем компоненте JComments. Первые попытки примерить код JComments из SocComments с K2 увенчались провалом и я уже думал создавать отдельный плагин для K2, но дополнительный плагин добавит работы с его обновлением и работой над ним, а времени на это пока нету. По этому я собрался, сел на пару часов за кодом и решил данный вопрос.
Если честно, все же у меня мелькают мысли создать отдельный плагин SocComments для K2, но если это и будет то только после выхода новых версий Socbuttons и SocComments. В комментариях, хотелось бы услышать ваше мнение, нужен ли отдельный плагин SocComments для K2 или кому нужно и по моим статьям все сделает.
Добавляем комментарии социальных сетей SocComments в компонент K2
Как я уже писал выше, то основная загвоздка была это заставить работать вкладку JComments в K2. Так что для работы нам нужно:
- Компонент K2
- Компонент JComments 2.3
- Плагин SocComments 1.3 (скачать SocComments )
- Системный плагин 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%; и все придет в норму.
На этом пожалуй все. Если возникнут вопросы, задавайте их в комментариях. Желаю вам побольше комментаторов на ваших сайтах и по меньше спама.
Комментировать статью: