Делаем дальнейшую модернизацию старых идей – перепишем доработку выставления рейтинга товарам.

Для начала забираем архив с файлами. Распаковываем его в корень нашего сайта. В нем содержится 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 товара.

ratingrating_mainrating_product

 

 

Скачать

[sociallocker id=1274]

Rating Simpla

Значок
Размер: 4.06 KB
Скачано (раз): 509
Версия: 2.1+
ФайлДействие
rating.zipСкачать 
[/sociallocker]

Источник: клик

Голосов  (1)
Плагин рейтинга создан автором этого блога. Буду очень признателен, если вы сможете его поддержать (ссылка)
Об авторе

Веб-разработчик. Работа с проектами простой и средней сложности. Верстка, программирование. Simpla, Drupal, Wordpress.

Смотреть посты