"Звездный рейтинг" для Simpla 2.1+

Для начала забираем архив с файлами. Распаковываем его в корень нашего сайта. В нем содержится 3 файла:

  1. картинка "звездочки" design/default/images/rating.jpg
  2. файла для отработки AJAX-запроса выставления рейтинга ajax/rating.php
  3. скрипт на JQuery для выставления рейтинга товарам design/default/js/jquery.rater.js

Теперь добавим поля в нашу таблицу товаров s_products для хранения данных по рейтингу - выполним SQL-запрос

ALTER TABLE `s_products` ADD `rating` FLOAT( 3, 2 ) NOT NULL DEFAULT '0' AFTER `featured` ,
ADD `votes` INT NOT NULL DEFAULT '0' AFTER `rating` 

Добавляем эти 2 поля в выборку товаров. В файле api/Products.php в метод после 117 строки добавляем в методе get_products наши поля. Получится примерно следующее

p.featured,
p.rating,
p.votes,

Далее в этом же файле в методе get_product добавляем эти же поля (~236 строка) - результат

p.featured,
p.rating,
p.votes,

Следующим шагом добавляем данные по стилям для модуля рейтинга. Для этого в конец нашего файла стилей design/[ваш_шаблон]/css/style.css (возможно Ваш файл стилей будет иметь другой путь, но если Вы смогли уйти от стандартного шаблона, то Вы найдете куда поставить наш код :) )

.rating .rater-starsOff, .rating .rater-starsOn { width: 80px; display: inline-block; background:url(../images/rating.jpg) repeat-x 0 0px; height:16px; }
.rating .rater-starsOn { background-position: 0 -16px; }

Подключаем JS-скрипт рейтинга в файле design/[ваш_шаблон]/html/index.tpl в блок head после корзины - результат

<script src="design/{$settings->theme}/js/ajax_cart.js"></script>
<script src="design/{$settings->theme}/js/jquery.rater.js"></script>

Теперь формируем вывод рейтинга в списке товаров и карточке.

В файлах design/[ваш_шаблон]/html/main.tpl и design/[ваш_шаблон]/html/products.tpl сразу после вывода заголовка товара

<h3 class="{if $product->featured}featured{/if}"><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>

и файле design/[ваш_шаблон]/html/product.tpl после

<h1 data-product="{$product->id}">{$product->name|escape}</h1>

вставим код вывода рейтинга

    <div class="rating" rel="{$product->id}">
        <span class="rater-starsOff"><span style="width:{$product->rating*80/5|string_format:"%.0f"}px" class="rater-starsOn"></span></span> <span class="rater-rating">{$product->rating|string_format:"%.1f"}</span>&#160;(<span class="rater-rateCount">{$product->votes|string_format:"%.0f"}</span> {$product->votes|plural:'голос':'голосов':'голоса'})
    </div>

Вот в-принципе и все чудеса. Голосовать можно как в товаре, так и в списке, и даже в "просмотренных", если правильно вставить код :) Вы можете экспериментировать с рейтингом - поменяв 5 звед на 8 или 10. Или же измение размер звезд или форму :) . Вывод тоже можете менять как Вам угодно, главное чтобы сохранить конструкцию блока div.rating и в параметре rel передавать ID товара.

Мой результат

Рейтинг на главной в SimplaCMS Рейтинг в списке товаров в SimplaCMS Рейтинг в карточке товара в Simpla

Удачи в работе!

Комментарии
Матвей
а как заменить картинку на иконку <i class="fa fa-star"></i>? можете описать?

Добрый день, в статье "Звездный рейтинг" есть архив с файлами.
Картинка рейтинга находится в папке
\design\default\images  в файле rating.jpg
для того, чтобы заменить картинку, необходимо заменить файл. 

Артем
Спасибо! Все отлично работает!
Диана
Хорошо, подскажите пожалуйста, а на симпле 2.3.5 , этот рейтинг будет работать? И куда обратиться за помощью с оплатой?

Добрый день,

Конечно мы поможем в установке данного модуля,для это нам понадобяться доступы ftp к сайту.

Оплату можно произвести следующими способами:

+380635712856  Киви(Для оплаты 700р),

410011405334733 яд(Для оплаты 700р),

4149 4978 4949 2303 Гребенник Александр Алексеевич "Приват Банк"(Для оплаты 250грн).

Ждем Вашего рещения и с удовольствием поможем в решений.

Диана
Здравствуйте! Подскажите пожалуйста к какому специалисту можно обратиться, чтобы помогли разобраться с установкой рейтиногвых звездочек?
Делала вот верхней инструкции и по этой http://blog.rlstudio.com/2011/02/dorabotki-magazina-simpla-zvezdnyj-rejting/, но звездочки не работают. При наведении реагируют, нажимаются, но не сохраняют рейтинг.

Здравствуйте!

Чтобы воспользоваться доработкой выполните инструкции по нижеприведенной ссылке.

http://simplashop.com/article/zvezdnyj-rejting-dlya-simpla-21

Данная доработка является бесплатной, также мы можем предложить вам установку модуля нашими специалистами, стоимость установки составит 700 руб. или 250 грн.

С уважением, команда simplashop.com

Рома
Спасибо, запрос сделал. Ошибка запроса
#1064 - у Вас есть ошибка в вашем SQL синтаксиса; проверять вручную, что соответствует вашего MySQL-сервера Версия для права синтаксис для использования рядом с "s_products' добавить 'рейтинг' поплавок (3, 2) не NULL по умолчанию '0' после 'рекомендуемые' Добавить' в строке 1
Буду благодарен за помошь!

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''s_products' ADD 'rating' FLOAT (3, 2) NOT NULL DEFAULT '0' AFTER 'featured' ADD' at line 1
Рома
SQL-запрос выполнить не могу, выдает ошибку, я все писал так как в коде.
Рома
Спасибо! с запросом все понятно, я в api/Products.php по прежнему ничего не всавляется, может сначала нужно сделать SQL-запрос?

Для начала нужно вставить SQL-запрос в базу данных, а уже после вносить изменения в файлах.

Рома
Здравствуйте! Подскажите куда вставлять
ALTER TABLE `s_products` ADD `rating` FLOAT( 3, 2 ) NOT NULL DEFAULT '0' AFTER `featured` ,
ADD `votes` INT NOT NULL DEFAULT '0' AFTER `rating`
И ти два поля:
p.featured,
p.rating,
p.votes,
---------------------
p.featured,
p.rating,
p.votes,
когда вставляеш, то исчезают вообще все товары с сайта, звезочки есть, но не нажимаются.

Добрый день!

ALTER TABLE `s_products` ADD `rating` FLOAT( 3, 2 ) NOT NULL DEFAULT '0' AFTER `featured` ,
ADD `votes` INT NOT NULL DEFAULT '0' AFTER `rating`
вставляется в базу данных SQL-запросом.
В файле api/Products.php в методе get_products, добавляем поля:
p.featured,
p.rating,
p.votes
Далее в этом же файле в методе get_product добавляем эти же поля
p.featured,
p.rating,
p.votes,
Если выполнить все согласно инструкции, то проблем с рабой модуля не должно быть. Вы также можете обратиться к нашим специалистам и мы Вам его установим.
 С уважением, команда Simplashop.com

 
 
Владислав
на версии 2.3.6 не работает, звездочки показываются но рейтинг никак не ставился

Здравствуйте!

Доработка очень простая, от версий не зависит. Стоит на версии 2.3.6 http://rating.simplathemes.com/, нужно смотреть код. Присылайте доступы - глянем.

Дмитрий
Спасибо за доработку, всё отлично работает!
Возможно, есть какой-то способ встроить рейтинг в форму комментариев, как обычно сделано в интернет-магазинах, чтобы пользователи могли оставлять свою оценку вместе с комментарием о товаре?

У нас есть модуль отзывов с рейтингом(http://simplashop.com/products/review_plus), который позволяет оставлять отзывы как к товару или статье в блоге так и к магазину. В каждом отзыве пользователь может поставить оценку (товару, статье или сайту вцелом). так же для каждого отзыва у пользователей есть возможность поставить like/dislike