Задача: Интегрировать JComments в VirtueMart 1.1.х и добавить систему рейтинга товаров!
Как интегрировать JComments в VirtueMart 1.1.х есть хорошая статья на
сайте разработчика JComments и на
нашем форумеРейтинг мы будем реализовывать испоьзуя плагин Extravote.
Итак:
ЧАСТЬ ПЕРВАЯ
Extravote 1.4 Идея взята отсюда
отсюда1.1. устанавливаем Extravote, включаем его, отключаем стандартный плагин рейтинга.
1.2. В настройках VirtueMart разрешаем использовать мамботов / плагинов( “Компоненты->virtuemart“, “Настройки“, “Общие настройки“, ставим галочку “Разрешить использование мамботов / плагинов в описании товара и категории?”).
1.3. Открываем файл plugins/content/
extravote.php Найдите функцию “onPrepareContent” и после её открытием вставьте код:
if(!isset($article->id))
{
$regex = "#{extravote\s*([0-9]+)}#s";
$article->id = preg_replace_callback( $regex, array($this,'plgGetProductId'), $article->text );
}
вконце файла добавте еще одну функцию
function plgGetProductId(&$matches)
{
$id = (int)$matches[1];
return $id;
}
1.4. Откройте файл administrator/components/com_virtuemart/html/
shop.browse.phpнаходим строку
$product_rating = ps_reviews::allvotes( $db_browse->f('product_id') );
и заменяем ее на
$product_rating = JHTML::_('content.prepare', '{extravote '.$db_browse->f("product_id").'}');
готовый extravote.php во вложении.
1.5 В шаблоне товара
Flypage* втавляем код на место, где вы хотите сделать вывод рейтинга:
<?php
$product_rating = JHTML::_('content.prepare', '{extravote '.$product_id.'}');
echo $product_rating;
?>
ЧАСТЬ ВТОРАЯ
VirtueMart 1.1.х JComments2.1 Откройте файл /administrator/components/com_virtuemart/html/
shop.product_details.phpНайдите строки:
/*** Show all reviews available ***/
$product_reviews = ps_reviews::product_reviews( $product_id );
/*** Show a form for writing a review ***/
$product_reviewform = ps_reviews::reviewform( $product_id );
и замените их на:
$comments = $mosConfig_absolute_path . '/components/com_jcomments/jcomments.php';
if (file_exists($comments)) {
require_once($comments);
$product_reviews = JComments::showComments($product_id, 'com_virtuemart', $product_name);
$product_reviewform = "";
}
2.2 Откройте файл /administrator/components/com_virtuemart/html/
shop.browse.phpНайдите и удалите или закомментируйте следующую строку:
$product_rating = $VM_LANG->_PHPSHOP_CUSTOMER_RATING .": <br />";
[вложение удалено Администратором]