Генерируем код
Открываем страницу Виджет для комментариев в контакте и генерируем код для виджета. В этом коде API_ID ваш id в контакте. Затем смотрим Документацию о виджете комментариев и добавляем в код дополнительные параметры, из которых page_id может быть полезен для более правильной идентификации материала в Joomla. Использовать page_id можно так:
$id = JRequest::getInt('id');
и добавляем этот page_id в код виджета:
VK.Widgets.Comments("vk_comments", {limit: 20, width: "450", attach: "*"},'.$id.');
Теперь думаем, как этот код добавить в Joomla
В файле templates\Ваш_Шаблон\html\com_content\article\default.php сидит вот такая штука:
echo $this->article->event->afterDisplayContent;
именно этой штукой пользуются известный плагин JComments и другие плагины, которые выводят что-либо под материалом:
function onAfterDisplayContent(&$article, &$params, $limitstart = 0) { if ($this->params->get('show_comments_event', 'onAfterDisplayContent') == 'onAfterDisplayContent') { require_once (JCOMMENTS_HELPERS.DS.'content.php'); $application = &JFactory::getApplication('site'); $view = JRequest::getCmd('view'); // check whether plugin has been unpublished if (!JPluginHelper::isEnabled('content', 'jcomments') || ($view != 'article') || $params->get('intro_only') || $params->get('popup') || JRequest::getBool('fullview') || JRequest::getVar('print')) { JCommentsContentPluginHelper::clear($article, true); return ''; } require_once (JCOMMENTS_BASE.DS.'jcomments.php'); $config = & JCommentsFactory::getConfig(); $isEnabled = ($config->getInt('comments_on', 0) == 1) && ($config->getInt('comments_off', 0) == 0); if ($isEnabled && $view == 'article') { JCommentsContentPluginHelper::clear($article, true); return JComments::show($article->id, 'com_content', $article->title); } } return ''; }
В статье Creating a content plugin об этом можно прочитать подробнее.
Недостатком такого метода является то, что тут не очень понятно как добавить скрипт в <head>, поэтому может быть лучше использовать событие OnPrepareContent.