VM 2.x Интеграция JComments 2.3.0 на страницы описания товаров VirtueMart 2

vm 2.6 joomla 2.5.27
Не могу установить Jcomments 3.0.5
JDatabaseMySQLi::query: 1060 - Duplicate column name 'category_id' SQL=ALTER IGNORE TABLE `evqj6_jcomments_objects` ADD `category_id` INT(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `object_group`;
подскажите в чем проблема?
 
Всем привет!
JComments 3.0.5
Joomla! 3.3.6
VirtueMart 3.0.4
Помогите пожалуйста интегрировать JComments в VirtueMart 3.
Для версии VirtueMart 2 я вставлял код в шаблон карточки товара
Код:
<?php // onContentAfterDisplay event
echo $this->product->event->afterDisplayContent; 

$comments = JPATH_ROOT . '/components/com_jcomments/jcomments.php';
    if (file_exists($comments)) {
        require_once($comments);
        echo JComments::showComments($this->product->virtuemart_product_id, 'com_virtuemart', $this->product->product_name);
    }
?>

однако для новой версии ВМ это не работает. После вставки кода на странице возникает ошибка 1054 - Unknown column 'created_by' in 'field list' SQL=SELECT product_name

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

Посоветуйте пожалуйста, как исправить ошибку?
 
Для 3 VirtueMart надо отредактировать плагин /components/com_jcomments/plugins/com_virtuemart.plugin.php
Найти $db->setQuery('SELECT product_name, created_by FROM #__virtuemart_products_' . VMLANG . ' WHERE virtuemart_product_id =' . $id); и заменить на:
$db->setQuery('SELECT product_name FROM #__virtuemart_products_' . VMLANG . ' WHERE virtuemart_product_id =' . $id);
$row = $db->loadObject();

if (!Для просмотра ссылки Войди или Зарегистрируйся($row)) {
$db->setQuery('SELECT virtuemart_category_id FROM #__virtuemart_product_categories WHERE virtuemart_product_id =' . $id);
$categoryId = $db->loadResult();

$info->title = $row->product_name;
$info->userid = $row->created_by;
// $info->link = AllEventsHelperRoute::getEventRoute($id);
$info->Для просмотра ссылки Войди или Зарегистрируйся = JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $id . '&virtuemart_category_id=' . $categoryId);

Готовый файл во вложении..
 

Вложения

  • com_virtuemart.plugin.zip
    917 байт · Просмотры: 14
joomla 2.5.27 + VM 2.6.10 + JComments 3.0.5
Единственный минус - в админке в комментах не отображается, к какому товару принадлежит коммент... Возможно требуется правка в файлах, но руки пока не дошли)))

Решение не найдено?
 
Решение банальное - ставить версию JComments 3.0.0 и все отображается. Код для вставки остается без изменений. Пока удовольствовался этим)))
Предлогпете откатиться на JComments 3.0.0?
У меня сейчас JComments 3.0.5 [01/08/2014], Joomla! 2.5.28, VirtueMart 2.6.14 и вставлен код:
код написал(а):
<?php // onContentAfterDisplay event echo $this->product->event->afterDisplayContent; $comments = JPATH_ROOT . '/components/com_jcomments/jcomments.php'; if (file_exists($comments)) { require_once($comments); echo JComments::showComments($this->product->virtuemart_product_id, 'com_virtuemart', $this->product->product_name); } ?>
в комментах по продуктам отображается так:
вот: написал(а):
Состояние Тема Автор комментария Компонент Название материала Дата добавления ID
коммент sdf xx.xx.xx.xx com_virtuemart 2015-03-25 17:17:37 8
Нет названия материала
 
Предлогпете откатиться на JComments 3.0.0?
У меня сейчас JComments 3.0.5 [01/08/2014], Joomla! 2.5.28, VirtueMart 2.6.14 и вставлен код:

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

Нет названия материала
вот такая же фигня была у и меня. Невозможно было понять, какой именно товар комментируется (на версии 3.0.5). Плюнул, откатился на версию 3.0.0 и все заработало. Пока разобраться с версией 3.0.5 банально не хватает времени)))
 
Решение для JComments 3.0.5 найдено? Что-то четыре разных варианта испробовал и все мимо...
 
В файле components/com_jcomments/plugins/com_virtuemart.plugin.php
закоментируйте
31 строка// $db->setQuery('SELECT product_name, created_by FROM #__virtuemart_products_' . VMLANG . ' WHERE virtuemart_product_id =' . $id);
39 строка// $info->userid = $row->created_by;
40 строка// $info->link = AllEventsHelperRoute::getEventRoute($id);
 
там кстати уже 3 версия jcomment есть, норм работает
 
Назад
Сверху