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

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

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

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


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

Тут убрали? upload\catalog\model\catalog\product.php

'rating'		   => round($query->row['rating']),

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


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

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

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

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


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

да, кэш очищен. Значения новые показываются, но округленные.

Версия osStore 1.5.4.1

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


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

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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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