Перейти к содержанию
SVLogic

[Доработка] Делаем "правильный" рейтинг

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

Итак, собственно не устроил имеющийся вывод рейтинга. Т.е. если проголосовало 2 человека с оценками 4 и 5, то будет выставлено 4 звезды и отображаться оценка будет как 4, хотя на самом деле оценка 4.5

И так, чтобы во всплывающей подсказке отображалась верная оченка и стояло 4,5 звезды вместо 4 нужно выполнить несложные манипуляции...

Приступим.

Скопировать файл во вложении в директорию

catalog/view/theme/default/image/

открываем файл catalog/model/catalog/review.php

ищем строку 17

return (int)$query->row['total'];
меняем на

return $query->row['total'];

открываем файл catalog/controller/product/product.php

Добавляем после строки

$average = $this->model_catalog_review->getAverageRating($this->request->get['product_id']);
строку

$num_stars = $average * 16;
Ищем строку

$this->data['text_stars'] = sprintf($this->language->get('text_stars'), $average);
меняем на

$this->data['text_stars'] = sprintf($this->language->get('text_stars'), round($average, 1));
ищем строку

$this->data['average'] = $average;
ниже добавляем

$this->data['num_stars'] = $num_stars;

открываем файл catalog/view/theme/default/template/product/product.tpl

ищем строку

<img src="catalog/view/theme/default/image/stars_<?php echo $average . '.png'; ?>" alt="<?php echo $text_stars; ?>" style="margin-top: 2px;" />
меняем на

<div class="desc_rate">    <ul class="rating" title="<?php echo $text_stars; ?>">        <li class="current-rating" style="width:<?php echo $num_stars; ?>px;">    [/list]</div>

открываем файл catalog/view/theme/default/stylesheet/stylesheet.css

в любое место добавляем

.desc_rate { background: url(../image/stars.png) repeat-x; height:16px; width:80px; }.rating { margin:0; padding:0; }.rating li { list-style: none; }.current-rating  { background: url(../image/stars.png) repeat-x left bottom; height:16px; }

открываем catalog/view/theme/default/template/product/category.tpl

ищем

<?php if ($products[$j]['rating']) { ?>                                    <img src="catalog/view/theme/default/image/stars_<?php echo $products[$j]['rating'] . '.png'; ?>" alt="<?php echo $products[$j]['stars']; ?>" />                                <?php } else { ?>
меняем на

<?php if ($products[$j]['rating']) { ?><div class="desc_rate">                                      <ul class="rating" title="<?php echo $products[$j]['stars']; ?>"><li class="current-rating" style="width:<?php echo $products[$j]['num_stars']; ?>px;">[/list]                                  </div><?php } else { ?>
Открываем catalog/controller/product/category.php

ищем

'rating'  => $rating,
ниже добавляем

'num_stars' => $rating * 16,
ищем

'stars'   => sprintf($this->language->get('text_stars'), $rating),
меняем на

'stars'   => sprintf($this->language->get('text_stars'), round($rating, 1)),
Рейтинг для категорий и в подробном чтении информации о товаре поменяли. Мне этого достаточно, поэтому возможно не везде будет теперь работать рейтинг. Кому нужно еще где поменять, делать по аналогии, либо писать сюда, я помогу.

post-335-1293741785,095_thumb.png

  • +1 1

Поделиться сообщением


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

Дороботка хорошая. хорошо бы под последнюю версию адаптировать и в сборку вшить!

Поделиться сообщением


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

Подскажите, пожалуйста, как сделать для версии 1.5.3.1?

Поделиться сообщением


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

а есть ли модуль нормального рейтинга товара, чтобы нажал на звездочку и сразу твой голос подсчитало... как пример: http://www.klondayk.com.ua/ru/products/details/motovezdehod_Yamaha_YXR700FA_Rhino__/index.html

Поделиться сообщением


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

а есть ли модуль нормального рейтинга...

А что же тут нормального? Любой человек может от фонаря клацать рейтинг.

Как раз нормально, если он ещё обоснует своё мнение в отзыве.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.