Автор Тема: Вывод рейтинга товара в категории товара.  (Прочитано 6519 раз)

22 Апрель 2014, 12:09:36
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Тебе пишут как в стандарном, а для  advanced_review нужно проверять отличия в выводе рейтинга на этих страницах.
22 Апрель 2014, 12:34:07
Ответ #16
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если звезды показывает, то хук работает. Цвета регулируются стилями.

У меня по другому,
вот темплейт модуля
{section name=i loop=5}
{if $smarty.section.i.iteration <= $product_avg}
<img src="{$base_dir}modules/advanced_review/icon/star.png" />
{else}
<img src="{$base_dir}modules/advanced_review/icon/star_d.png" />
{/if}
{/section}

Тут именно 2 вида звезд первый желтый второй серый, и открывал в отдельности, один желтый другой серый.

В product-list.tpl хук работает но модуль не имеет связи с базой или чем-то еще, поэтому не в курсе о рейтинге товара.
Я так понимаю что ему нужно скормить данные
возможно эти
$reviews = Db::getInstance()->ExecuteS('SELECT r.*'.$order_rate.'
FROM '._DB_PREFIX_.'invertus_reviews AS r
WHERE r.`active` = "1" AND r.`product_id` = "'.intval($this->product->id).'"
ORDER BY '.$order.' DESC
LIMIT '.$limitation);
22 Апрель 2014, 14:28:28
Ответ #17
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тебе пишут как в стандарном, а для  advanced_review нужно проверять отличия в выводе рейтинга на этих страницах.

Можете подсказать в каких файлах нужно искать отличия? Могу их выложить.
22 Апрель 2014, 14:38:34
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Запрвос к бд работает, ошибки не выдает?
Выведите полученный результат (у товара у которого есть рейтинг).
{$product_avg|var_dump}
22 Апрель 2014, 14:49:33
Ответ #19
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Запрвос к бд работает, ошибки не выдает?
Выведите полученный результат (у товара у которого есть рейтинг).
{$product_avg|var_dump}
добавив в product-list.tpl   пишет  - NULL, хотя товар имеет рейтинг
для того же товара но уже в карточке товара product.tpl  пишет - string(6) "3.5000" 

22 Апрель 2014, 14:53:41
Ответ #20
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
ID товара не определяется
$id_product = (isset($_GET['id_product'])) ? $_GET['id_product'] : 0;
22 Апрель 2014, 15:02:17
Ответ #21
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
ID товара не определяется
$id_product = (isset($_GET['id_product'])) ? $_GET['id_product'] : 0;
Это влепить в product-list.tpl?
22 Апрель 2014, 16:34:19
Ответ #22
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Это влепить в product-list.tpl?
Нет, это код не работает.
На странице товара хук вызывается 1 раз, ид товара определено, поэтому работает.
На странице категорий вызыв хука рейтинга должен происходить для каждого товара.
Смотрите мой пост про вывод рейтинга для prestashop 1.5. Там ид товара передается в параметрах вызываемого метода.
$id_product = $params['idproduct'];
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
22 Апрель 2014, 19:33:26
Ответ #23
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это влепить в product-list.tpl?
Нет, это код не работает.
На странице товара хук вызывается 1 раз, ид товара определено, поэтому работает.
На странице категорий вызыв хука рейтинга должен происходить для каждого товара.
Смотрите мой пост про вывод рейтинга для prestashop 1.5. Там ид товара передается в параметрах вызываемого метода.
$id_product = $params['idproduct'];
Мне интересно, подойдет ли описанный вами метод для престы 1,4 и модуля "advanced_review"?
22 Апрель 2014, 21:22:50
Ответ #24
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Для prestashop 1.4 также можно передавать параметры в хук.
Prestashop 1.4: Как создать новый Hook
Cоздание интернет сайтов Webstudio UwK
22 Апрель 2014, 21:56:52
Ответ #25
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Запрвос к бд работает, ошибки не выдает?
Выведите полученный результат (у товара у которого есть рейтинг).
{$product_avg|var_dump}
{$product_avg|var_dump} дал результат NULL,
Как сделать чтоб он работал в  product-list.tpl?
23 Апрель 2014, 11:05:44
Ответ #26
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
{$product_avg|var_dump} всегда выдаст NULL. Так как в prestashop 1.4 переменную не передать в хук.  С ним такой способ не подойдет. Нужно в контроллере CategoryController.php добавить функцию вызова модуля рейтинга с передачей ид товара и там же в функции process() привязать показ блока рейтинга к переменной смарти. В общем, гемор еще тот. Лучше другой модуль поискать или переписать вывод рейтинга на ajax, тогда можно ид товара подгружать при показе товаров.

Или же делать подсчет рейтинга в классе Category, а не в модуле. Тогда модуль не нужен вообще.
23 Апрель 2014, 11:56:46
Ответ #27
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{$product_avg|var_dump} всегда выдаст NULL. Так как в prestashop 1.4 переменную не передать в хук.  С ним такой способ не подойдет. Нужно в контроллере CategoryController.php добавить функцию вызова модуля рейтинга с передачей ид товара и там же в функции process() привязать показ блока рейтинга к переменной смарти. В общем, гемор еще тот. Лучше другой модуль поискать или переписать вывод рейтинга на ajax, тогда можно ид товара подгружать при показе товаров.

Или же делать подсчет рейтинга в классе Category, а не в модуле. Тогда модуль не нужен вообще.


{$product_avg|var_dump} работает но только на странице товара, в созданном мною хуке.

Вопрос в том, как добавить функцию вызова рейтинга с передачей ид товара?
23 Апрель 2014, 12:09:59
Ответ #28
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Написали же, в престе 1.4 нельзя передать ид в хук.

Как сделать вывод tigran посоветывал. В классе Category добавляешь функцию которая будет подсчитывать рейтинг у товаров product_avg (как в модуле) и присваивать эту переменную для использования в шаблоне, потом в шаблоне делаешь вывод звезд (не хук, а код из своего хука вставь).
23 Апрель 2014, 12:22:03
Ответ #29
  • Новичок
  • *
  • Сообщений: 26
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Написали же, в престе 1.4 нельзя передать ид в хук.

Как сделать вывод tigran посоветывал. В классе Category добавляешь функцию которая будет подсчитывать рейтинг у товаров product_avg (как в модуле) и присваивать эту переменную для использования в шаблоне, потом в шаблоне делаешь вывод звезд (не хук, а код их своего хука вставь).
файл "CategoryController.php" не могу найти, искал в  /override/classes и /classes
в /classes есть подозреваемый имя ему - "Category.php"

Как В классе Category добавить функцию  подсчитывания  рейтинга у товаров product_avg?