Jump to content
Sign in to follow this  
euph0ria

Округление рейтинга (звездочек) для товаров до 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'];

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

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

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

Share this post


Link to post
Share on other sites

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

$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;
 }
}

Share this post


Link to post
Share on other sites

Спасибо, cmd.

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Версия osStore 1.5.4.1

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.