Автор Тема: Блок производителей (с выводом количества товаров) на главной  (Прочитано 662 раз)

05 Февраль 2015, 01:00:15
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый вечер.
Нужно отобразить производителей (отображение плиткой) на главной в displayHome.
При клике на производителя осуществлялся бы переход на товары этого производителя.
Если привязанных товаров у производителя нет - то лого не активное.
Подходит стандартное отображение manufacturer-list.tpl
И если на странице производителей это работает http://v-fasad.pavlin-art.kiev.ua/index.php?controller=manufacturer
то на главной уже пишет что производителей нет.
Установлена версия 1.6
В шаблоне явно не срабатывают на главной переменные {if $nbManufacturers > 0} и {if $manufacturer.nb_products > 0}
Все контроллеры и классы стандартные (только хук добавил displayHome)
Не могу понять, почему на главной не работает, а на странице работает?

Объясните пожалуйста эту логику. Может на главной как-то магазин не подключён?
Заранее благодарен за ответ.
05 Февраль 2015, 11:47:04
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86459
  • Репутация: +25418/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$nbManufacturers
$manufacturer.nb_products
Где у вас определены эти переменные?
05 Февраль 2015, 13:16:44
Ответ #2
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере ManufacturerController.php есть такие переменные.
Я только начинаю разбираться в ООП хорошо понимаю только процедурку.
Да и престу вижу пока только первый раз. И не понимаю что откуда берётся.
Хоть и прочитал документацию http://doc.prestashop.com/display/PS16/Controllers+within+PrestaShop , а вот идею видимо не уловил.

nbManufacturers есть здесь
/* Assign template vars if displaying the manufacturer list */
   protected function assignAll()   {}
а nb_products есть здесь
/* Assign template vars if displaying one manufacturer */
   protected function assignOne()   {}
05 Февраль 2015, 13:28:38
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105586
  • Репутация: +39548/-0
    • Просмотр профиля
    • Webstudio UwK
И если на странице производителей это работает http://v-fasad.pavlin-art.kiev.ua/index.php?controller=manufacturer
то на главной уже пишет что производителей нет.

Ответ вы дали сами
Цитировать
В контроллере ManufacturerController.php есть такие переменные.
а в FrontController.php их нет.
Контроллер страницы производителей - ManufacturerController.php
Контроллер главной страницы  - FrontController.php.

Решение этой проблемы, это добавить эти переменные в ваш модуль (основной файл или контроллер модуля).
Cоздание интернет сайтов Webstudio UwK
05 Февраль 2015, 13:33:33
Ответ #4
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо большое )

Решение и правда было чтобы добавить в хук эти свойства
         $nbProducts = count($manufacturers);
ну и к выводу в смарти
         'nbManufacturers' => $nbProducts,