Интеграция JComments в VirtueMart 3

Интеграция JComments в VirtueMart 3

Для интеграции используем самый популярный и удобный компонент комментариев для Joomla! — JComments.

Но прежде отключим встроенные комментарии в VirtueMart. Заходим в Компоненты -> VirtueMart -> Настройки -> Внешний вид и отключим показ и систему отзывов.

Отключение отзывов в VirtueMart 3

Установка и настройка JComments

Скачать компонент можно как с нашего сайта нашего сайта, так и с официального сайта разработчиков.

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

Интеграция в VirtueMart 3

Чтобы форма комментариев появилась на страницах товаров VirtueMart 3 добавим в самый конец файла ваш_сайт/templates/ваш_шаблон/html/com_virtuemart/productdetails/default.php следующий код:

<?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);
}
?>

Далее необходимо заменить содержимое файла ваш_сайт/components/com_jcomments/plugins/com_virtuemart.plugin.php на следующее содержание:

<?php 
/** 
* JComments plugin for VirtueMart objects support 
* 
* @version 2.0 
* @package JComments 
* @author Sergey M. Litvinov (smart@joomlatune.ru) 
* @copyright (C) 2006-2013 by Sergey M. Litvinov (http://www.joomlatune.ru) 
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html 
*/ 
defined('_JEXEC') or die; 
class jc_com_virtuemart extends JCommentsPlugin { 
      function getObjectInfo($id, $language = null) { 
            jimport('joomla.filesystem.file'); 
            $info = new JCommentsObjectInfo(); 
            $configHelper = JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/config.php'; 
            if (JFile::exists($configHelper)) { 
                  if (!class_exists('VmConfig')) { 
                        require_once($configHelper); 
                  } 
                  VmConfig::loadConfig(); 
                  $db = JFactory::getDBO(); 
                  $db->setQuery('SELECT product_name FROM #__virtuemart_products_' . VMLANG . ' WHERE virtuemart_product_id =' . $id);
                  $row = $db->loadObject();
  
                  if (!empty($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 = JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $id . '&virtuemart_category_id=' . $categoryId);
                  }
            }
            return $info;
      }
}

На этом интеграция JComments в VirtueMart 3 закончена.
Если вы все сделали правильно, то раздел с комментариями будет выглядеть так:
Комментарии JComments в VirtueMart 3

Остались вопросы? Задавайте их в комментариях или на нашем форуме.

Комментариев: 3 на Интеграция JComments в VirtueMart 3

Комментировать