Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Результат запроса метода 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. Но всеравно округляет, где еще посмотреть?

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

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

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

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

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

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

Надіслати
Поділитися на інших сайтах


  • 8 years later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.