Трудно переоценить значение отзывов для интернет-магазина :) Однако по умолчанию в virtuemart встроена не самая удобная система отзывов о товаре, которая позволяет оставлять отзывы только зарегистрированным пользователям. Но что делать магазинам, в которых покупка совершается без регистрации? Можно хакнуть виртумарт, а можно интегрировать сторонний компонент и использовать его в качестве инструмента для отзывов о товаре.

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

СКАЧАТЬ JCOMMENTS

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

otklyucheniya otzyvov virtuemart 300x210

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

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

Чтобы форма комментариев появилась на страницах товаров добавим в самый конец файла /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);
    }
?>

 

Комментарии будут выводится в самом низу страницы. Чтобы комментарии водились перед похожими товарами нужно добавить приведенный код в файл /com_virtuemart/productdetails/default.php перед

 

<?php
    // Product Files
    // foreach ($this->product->images as $fkey => $file) {
    // Todo add downloadable files again

 

Подробно останавливаться на всех настройках jcomments не буду, тем более есть замечательная статья на эту тему :) Скажу только, что заменить все заголовки («Комментарии», «Добавить комментарий») можно в файле /language/ru-RU/ru-RU.com_jcomments.ini


Чтобы убрать копирайт jcomments находим в /components/com_jcomments/jcomments.class.php

 

$tmpl->addGlobalVar('support', base64_decode('PGEgaHJlZj0iaHR0cDovL3d3dy5qb29tbGF0dW5lLnJ1IiB0aXRsZT0iSkNvbW1lbnRzIiB0YXJnZXQ9Il9ibGFuayI+SkNvbW1lbnRzPC9hPg=='));

 

и заменяем на

 

$tmpl->addGlobalVar('support', base64_decode(''));

 

 

Вывод количества отзывов о товаре

Если вы хотите вывести, например рядом с названием товара, количество отзывов, то сделать это можно так.

В файле /com_virtuemart/productdetails/default.php сразу после

 

<div class="back-to-category">

 

вставляем

 

<span class="otzyv"><?php
            $comments = JPATH_SITE . '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    $options = array();
    $options['object_id'] = $this->product->virtuemart_product_id;
    $options['object_group'] = 'com_virtuemart';
    $options['published'] = 1;
    $count = JCommentsModel::getCommentsCount($options);
    echo $count ? ('<a href="#jc">Отзывов ('. $count . ')</a>') : '<a href="#jc">Напишите первый отзыв</a>';
  }
        ?></span>

 

Если у товара есть отзывы, то их количество будет выводится в скобках рядом с надписью «Отзывы». Если отзывов пока нет, то выведется надпись «Напишите первый отзыв». В обоих случаях при нажатии на ссылку посетителя будет перекидывать вниз к отзывам о товаре.

 

Вот что получилось у меня

otzyvy o tovare2 290x300

otzyvy o tovare1 300x188


Надеюсь, что статья поможет сделать ваши магазины еще удобнее для пользователей.