Перейти к содержанию
Официальный форум поддержки Simpla

Звёздный рейтинг


Перейти к решению Решено Noxter,

Рекомендуемые сообщения

http://www.simplashop.com/article/zvezdnyj-rejting-dlya-simpla-21 - переделал с нуля - голосовать можно везде.

Артём ты забыл в папку ajax положить файл  ;)

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 306
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Изображения в теме

Хм, видать что-то не дописал в инструкцию - сейчас пробегусь еще раз...

P.S. Нет, все верно работает. Немного перепутал последовательность шагов в инструкции :) (в это же время "спорил" с Корсом в соседней теме). Теперь все должно быть верно. Добавил еще 1 скрин для подтверждения правдивости моих слов...

Ссылка на сообщение
Поделиться на другие сайты

Последовательность выполняемых действий.

Если можете - напишите в скайп - решим. В списке товаров работает?

Ссылка на сообщение
Поделиться на другие сайты

Для правильного отображения (голос, голоса, голосов) добавляем

 

{$product->votes|plural:'голос':'голосов':'голоса'}
Здесь на форуме тоже можно поправить :)
Ссылка на сообщение
Поделиться на другие сайты

 

Для правильного отображения (голос, голоса, голосов) добавляем

 

{$product->votes|plural:'голос':'голосов':'голоса'}
Здесь на форуме тоже можно поправить :)

Добавил

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Ребят, а как защититься от накрутки голосов?
Как сделать, к примеру, чтобы головосвать могли только зарегенные юзеры? Или ещё как-то защититься - а то я столкнулся с тем, что у меня с разных браузеров по одному товару можно голосовать.

Ссылка на сообщение
Поделиться на другие сайты

У Вас что производители свой товар пиарят? :)

А если серьезно, то  надо помимо оценки товара (количество голосов и рейтинг) в отдельную таблицу вносить  еще и ИП проголосовавшего и ИД продукта - в метода начисления рейтинга.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

 

реализация сортировки по рейтингу:

 

в файле api/products.php находим код:

 

 

if(!empty($filter['sort']))
switch ($filter['sort'])
{
case 'position':
$order = 'p.position DESC';
break;
case 'name':
$order = 'p.name';
break;

 

Вставляем:

case 'rating':
$order = 'p.rating DESC';
break;

 

Затем в в products.tpl добавляем строку с рейтингом

 

<div class="sort">
    Сортировать по
    <a {if $sort=='position'} class="selected"{/if} href="{url sort=position page=null}">умолчанию</a>
    <a {if $sort=='price'} class="selected"{/if} href="{url sort=price page=null}">цене</a>
    <a {if $sort=='rating'} class="selected"{/if} href="{url sort=rating page=null}">рейтингу</a>
<a {if $sort=='name'} class="selected"{/if} href="{url sort=name page=null}">названию</a>
</div>
 

спасибо!

Ссылка на сообщение
Поделиться на другие сайты

Здрасьте, спасибо за слздание данного решения! Но не могли бы вы посказать в какую сторону копать, чтоб исправить пару ошибок в данном решении:

 

1)  Если зайти на страницу вывода товаров (категорию) http://sl555.ru/products?page=3 , то при наведении мыши на рейтинг любого товара на данной странице, количество звезд у всех товаров, на которые наводился курсор, становится таким же как у первого товара на этой странице. То есть если первый товар имел рейтинг 3, то при наведении(без клика) на все остальные они становятся то же 3.

2) Если проголосовать любой за товар в категории ( http://sl555.ru/products?page=3 ), то при наведении курсора(без клика) на другие товары рейтинг показывается такой же как. у последнего товара за который проголосовали. То есть нажал на товар поставил 3, навожу на другие товары, становится у всех 3, потом за какой нибудь другой проголосовал 4, наводишь на другие, становится у всех 4.

 

Ребята может кто сталкивался с данными ошибками, подскажите решение.

 

Я так понимаю в первом случае где то запоминается рейтинг первого товара, который как бы нужно обнулить. А во втором случае обнулить необходимо при голосовании. Скорее всего корни обоих ошибок одни и теже.

 

Спасибо за помощь!

Ссылка на сообщение
Поделиться на другие сайты

Рейтинг не запоминается, он просто отрабатывает по классу, и в значение попадает первый  элемент и присваивается ко всем остальным. До НГ постараюсь поправить JQuery-плагин, чтобы не совмещал данные.

Ссылка на сообщение
Поделиться на другие сайты

mart, спасибо, будем ждать. Вчера сам попробовал копать в JQ, но никак не разберусь с логикой, слабовато у меня)) с ней...

Ссылка на сообщение
Поделиться на другие сайты

Плагин трогать можно, но не нужно...

В принципе, сделать голосование из списка можно элементарно, присвоив конкретному товару уникальный класс или АйДи в зависимости от АйДи Товара

http://demo.simpla.pp.ua/catalog/mobilnye-telefony

Вот пример, работает с дефолтным файлом плагина.

Ссылка на сообщение
Поделиться на другие сайты

Плагин трогать можно, но не нужно...

В принципе, сделать голосование из списка можно элементарно, присвоив конкретному товару уникальный класс или АйДи в зависимости от АйДи Товара

http://demo.simpla.pp.ua/catalog/mobilnye-telefony

Вот пример, работает с дефолтным файлом плагина.

 

Kosjak76, Спасибо за наводку, сделал по вашей аналогии (обвернул в дивы с уникальным id и добавил в каждом товаре ф-цию передачи в rating.php:

 

<div id="rating_{$product->id}" class="testRater_{$product->id} clr">
    <div class="statVal">
        <span class="rater">             
            <div style="margin: 22px 12px 0px 0px;float:right;" 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>
            </div>                        
        </span>
    </div>
</div>
{literal}
<script type="text/javascript">
    $(function() { $('.testRater_{/literal}{$product->id}{literal}').rater({ postHref: '/ajax/rating.php' }); });
</script>
{/literal}

Теперь обе описанные ошибки не беспокоят, но при голосовании выводится сначала, как обычно "Спасибо! Ваш голос учтен.", а следом тут же сообщение плагина "Неверные параметры запроса!"

Что то, пока не могу разобраться что  туда передается не то. Если не затруднит помогите пожалуйста.

Ссылка на сообщение
Поделиться на другие сайты

Ну когда я года 3 назад задумывал этот модуль, планировалось как раз минимальными изменениями достичь. А вызывать многократно метод можно, но не эстетично - не в этом философия JQuery.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

По этой инструкции делали?

 

Звёздный рейтинг для Simpla CMS 2

автор Noxter

e-mail: simplacms@ukr.net

 

Изменяемые файлы:

- api/Products.php

- design/ваша тема/product.tpl

- design/ваша тема/style.css

 

1. Загрузите:

файл stars.gif в папку design/ваша тема/images,

файл project.js в папку design/ваша тема/js,

файл rating.php в папку ajax/

 

2. Откройте файл design/ваша тема/css/style.css и вставьте в самый низ файла следующий код:

 

/* Звёздный рейтинг товаров */

.testRater{margin-bottom:20px;margin-left:36%;}

.rater span {vertical-align:middle;font-size:16px;}

.rater-rating {margin-top:5px;}

.rater-starsOff, .rater-starsOn {display:inline-block; height:23px; background:url(../images/stars.gif) repeat-x 0 0px;}

.rater-starsOn {display:block; max-width:115px; top:0; background-position: 0 -22px;}

.rater-starsHover {background-position: 0 -44px!important;}

/* @end */

 

3. Откройте файл design/ваша тема/html/products.tpl и примерно после 25-й строки вставьте такой код:

 

Код......

 

4. Откройте файл api/Products.php и после p.body, (220 строка) пропишите:

 

p.rating,

p.votes,

 

5. Выполните такой SQL запрос в phpMyAdmin:

 

ALTER TABLE `s_products` ADD `rating` FLOAT(3,1) NOT NULL DEFAULT '0' AFTER `body`,

ADD `votes` INT NOT NULL DEFAULT '0' AFTER `rating`

 

В принцыпе все. Приятной работы с Simpla!

Не могли бы Вы выложить файлы для загрузки. спасибо

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

http://joxi.ru/SYGeUxjKTJBOH0RIyK4 такой глюк подскажите куда копать?

Там в CSS есть высота блока и смещение фона - скорректируйте под размеры Вашей картинки.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...