Интеграция JComments в VirtueMart 2 с выводом количества отзывов о товаре
Трудно переоценить значение отзывов для интернет-магазина Однако по умолчанию в virtuemart встроена не самая удобная система отзывов о товаре, которая позволяет оставлять отзывы только зарегистрированным пользователям. Но что делать магазинам, в которых покупка совершается без регистрации? Можно хакнуть виртумарт, а можно интегрировать сторонний компонент и использовать его в качестве инструмента для отзывов о товаре.
Для интеграции используем самый популярный и удобный компонент комментариев для joomla — Jcomments.
СКАЧАТЬ JCOMMENTS
Но прежде отключим встроенные комментарии виртумарта. Заходим в Компоненты->Virtuemart->Настройки->Внешний вид и отключим показ и систему отзывов.
Установка и настройка 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>
Если у товара есть отзывы, то их количество будет выводится в скобках рядом с надписью «Отзывы». Если отзывов пока нет, то выведется надпись «Напишите первый отзыв». В обоих случаях при нажатии на ссылку посетителя будет перекидывать вниз к отзывам о товаре.
Надеюсь, что статья поможет сделать ваши магазины еще удобнее для пользователей.