Так, вот рабочий вариант исправления (в предыдущих вариантах, предложенных мной, была опечатка):
Открываем файл
/components/com_jcomments/plugin/com_k2.plugin.php и заменяем:
function getObjectLink($id)
{
$db = & JFactory::getDBO();
$db->setQuery( 'SELECT alias FROM #__k2_items WHERE id = ' . $id );
$alias = $db->loadResult();
$link = 'index.php?option=com_k2&view=item&id='. $id . ':' . $alias;
require_once(JPATH_SITE.DS.'includes'.DS.'application.php');
$component = & JComponentHelper::getComponent('com_k2');
$menus = & JSite::getMenu();
$items = $menus->getItems('componentid', $component->id);
if (count($items)) {
$link .= "&Itemid=" . $items[0]->id;
}
$link = JRoute::_($link);
return $link;
}
на
function getObjectLink($id)
{
require_once (JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'route.php');
$db = & JFactory::getDBO();
$query = "SELECT i.id, i.catid, i.alias, category.alias as catalias"
. " FROM #__k2_items as i"
. " LEFT JOIN #__k2_categories as category ON category.id=i.catid"
. " WHERE i.id = " . $id;
$db->setQuery($query);
$row = $db->loadObject();
$link = JRoute::_(K2HelperRoute::getItemRoute($row->id.':'.urlencode($row->alias), $row->catid.':'.urlencode($row->catalias)));
return $link;
}
Эта функция более универсальна, так как использует API компонента K2, и будет работать не только в случае наличия пунктов меню, ссылающихся на категории К2, но и пунктов меню, ссылающихся на отдельные материалы.
Проверено у одного отзывчивого пользователя на связке JComments 2.2.0.2, K2 2.4.1 и JComments Latest 2.5.6...