Автор Тема: manufacturer name в субкатегориях  (Прочитано 3612 раз)

12 Март 2013, 21:30:28
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Может кто-то подскажет как в субкатегории вывести имя производителя?
13 Март 2013, 14:15:25
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Производитель связан с товаром.
На странице категорий можно вывести только производителей товаров входящих в эту категорию.
$product->id_manufacturer
...
Если нужно вывести всех производителей, то необходим модуль.
13 Март 2013, 14:30:48
Ответ #2
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не были присвоены производители к товару, так как имя категории было именем производителя то прописал
{$category->name|escape:'htmlall':'UTF-8'} И ВСЁ ЗАРАБОТАЛО
05 Ноябрь 2014, 11:47:35
Ответ #3
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Добрый день,

Борюсь над добавлением имени производителя на страницу категории товаров.
Имя производителя лежит в переменной $manufacturer.name, это я выяснил из шаблона manufacturer-list.tpl. Просмотрев содержимое массива $product выяснил,что в нем находится только id_manufacturer, а названия производителя нет.
Подскажите пожалуйста, как можно вывести название производителя на странице категории товаров,чтобы производитель был связан с товаром,т.е. определенному товару соответствовало определенное имя производителя?
05 Ноябрь 2014, 12:11:24
Ответ #4
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
1. Получить список всех производителей в контроллере
$manufacturers = Manufacturer::getManufacturers();
2. Определить эту переменную для шаблона страницы товара
$this->context->smarty->assign(array(
......
        'manufacturers' => $manufacturers,

3. Добавить вывод в шаблон
<a href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)|escape:'html'}" title="{$manufacturer.name|escape:'html':'UTF-8'}">{$manufacturer.name|escape:'html':'UTF-8'}</a>
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Ноябрь 2014, 12:18:18
Ответ #5
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
1. mAgency, подскажите как определить в каком контроллере  нужно подключать список всех производителей?      AdminProductsController.php?
2. В каком файле нужно определять переменную для шаблона страницы товара?
05 Ноябрь 2014, 12:35:01
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
1. Переопределять нужно контроллер страницы, на которой вы хотите показывать производителей.
Для страницы категорий /controllers/front/CategoryController.php
Для админки /controllers/admin/...
2. В том-же контроллере, где вы получаете всех производителей. См. п.1
05 Ноябрь 2014, 12:48:49
Ответ #7
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Хорошо, т.е. для того  чтобы переопределить контроллер страницы, на которой необходимо показывать название производителей, нужно в CategoryController.php писать отдельную функцию getManufacturers() ? В шаблоне CategoryController.php я не нашел этой функции.
05 Ноябрь 2014, 12:58:45
Ответ #8
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Задавая вопрос, указывайте версию prestashop. Это поможет получить более точный ответ и избежать ненужной работы.

Решение для prestashop 1.6.
В шаблоне /themes/default-bootstrap/product-list.tpl добавьте вывод названия бренда / производителя:
{$product.manufacturer_name|escape:'html':'UTF-8'}
Cоздание интернет сайтов Webstudio UwK
05 Ноябрь 2014, 14:07:50
Ответ #9
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Спасибо за совет. Работаю с prestashop 1.6.0.8. У меня по сравнению с дефолтной темой массив называется $products (вместо $product). Решил проверить,какие значения содержит массив $products и [manufacturer_name] я там не нашел. Вопрос,т.к. я не до конца понимаю, откуда возьмется значение $product.manufacturer_name, если я сделаю вывод  названия бренда в шаблоне product-list.tpl?
05 Ноябрь 2014, 14:40:43
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Вы просто добавьте показ бренда как написал Виталий. Можно прям под названием товара в product-list.tpl
<h5 itemprop="name">
{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}
<a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url" >
{$product.name|truncate:45:'...'|escape:'html':'UTF-8'}
</a>
</h5>
<!-- вывод названия производителя-->
<h6>{$product.manufacturer_name}</h6>

05 Ноябрь 2014, 14:47:41
Ответ #11
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Добавил, но вывода нет.
05 Ноябрь 2014, 14:49:11
Ответ #12
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня по сравнению с дефолтной темой массив называется $products (вместо $product).
Это переменная содержит всех производителей. В файле product-list.tpl есть такой код (в вашей теме, в стандарной и во всех других)
{foreach from=$products item=product name=products}$products - массив, которой содержит массивы, т.е это все товары.
$product  - отдельнй массив, т.е. это отдельный товар
05 Ноябрь 2014, 14:53:41
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавил, но вывода нет.
1. Очистите папки кеша и компиляции шаблонов
2. Включите показ ошибок
3. Проверьте правильность кода.

Этот метод работает. Проверено в стандарной теме и во многих других темах.
Сделайте вывод переменной product и увидите, какие данные она содержит.
{$product|var_dump}
05 Ноябрь 2014, 14:55:31
Ответ #14
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Буду разбираться. Спасибо огромное.