Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Округление рейтинга (звездочек) для товаров до 0,1


 Поделиться

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

Результат запроса метода getProducts() в catalog/model/product/catalog/product.php выдает следующие значения rating: 4.5000, 4.0000, 4.0000, 3.0000, 3.0000, 2.6667, 2.0000, 1.0000

Но рейтинг округляется до целых чисел.

Модели product и filterpro в методах getProduct и getProducts выдают параметр рейтинга для товара в сыром формате.

В контроллерах category, product, filterpro удалено приведение в int параметра рейтинга в строках

$rating = (int)$product['rating'];

Всеравно в контроллер приходят значения округленные.

Подскажите, пожалуйста, где еще происходит округление?

Напишите в ЛС, если решение задачи - платное.

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


Правильный файл, но неправильная строка, как мне кажется

$this->data['rating'] = (int)$product_info['rating'];

Думаю это то, что Вы искали. В моделе ModelCatalogProduct метод getProduct имеет подзапрос

SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id

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

А ещё есть модель ModelCatalogReview catalog\model\catalog\review.php и там есть метод

public function getAverageRating($product_id) {
 $query = $this->db->query("SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review WHERE status = '1' AND product_id = '" . (int)$product_id . "' GROUP BY product_id");

 if (isset($query->row['total'])) {
  return (int)$query->row['total']; // вот ещё одно приведение к целому числу
 } else {
  return 0;
 }
}

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

Спасибо, cmd.

Поиском по всем файлам папки catalog возле переменной касающейся rating, в контроллерах и моделях убрано приведение к int. Но всеравно округляет, где еще посмотреть?

П.С. Если можете помочь платно - напишите пожалуйста!

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


простите, а кэш вы очищали? :ph34r:

да и версия движка не указана... :|

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

  • 2 недели спустя...

господа вопрос по теме.. движок 1.5.4

как вместо звездочек рейтинга поставить число округленное до 0,1

например рейтинг товара "4,5 на базе 10 отзывов"

где то ж оно переводит цифры в звездочки ))

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


  • 8 лет спустя...

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

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

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

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