В стандартной реализации Opencart не предусмотрен вывод производителя товара в категории, но в некоторых ситуациях он просто необходим. Например, интернет магазин продает шины или другие товары, которые многие отличают по бренду. И согласитесь, визуальное восприятие логотипа производителя в списке товаров помогает потенциальному покупателю найти то, что он искал.

Переключатель список — сетка в категории Opencart

Вывод товара в стандартном (default) шаблоне category.tpl построен как списком, так и сеткой. Переключаются эти режимы ссылкой в начале страницы, после переключения данные заносятся в куки (cookie) и при следующем посещении магазина или перехода в другие категории выбор запоминается до их очистки или переключения режима.

В таком случае вывод товаров происходит естественным путем на страницу и после этого javascript перестраивает элементы согласно выбору пользователя. Для добавления дополнительного поля (производителя, артикул, mpn и др.) надо внести изменения как в разметку, так и в javascript код внизу страницы.

Для добавления данных о производителе и его логотип в массив товаров открываем контроллер по адресу catalog/controller/product/category.php и и после строки в начале файла:

$this->load->model('catalog/category'); 

добавляем загрузку модели производителя строкой:

$this->load->model('catalog/manufacturer'); 

Далее ищем код формирования массива

$this->data['products'][] = array( 

и перед ним вставляем

$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($result['manufacturer_id']); if ($result['image']) { $logo_image = $this->model_tool_image->resize($manufacturer_info['image'], 100, 60); } else { $logo_image = false; } 

Обратите внимание на числа 100 и 60 – это параметры изображения, где 100 – длина, 60 – высота, их можно менять на любой другой размер.  Далее чуть ниже находим

'name' => $result['name'],

После нее вставлям

'logo_title' => $manufacturer_info['name'], 'logo_image' => $logo_image, 

Теперь наш массив, передаваемый на шаблон, включает имя производителя и его логотип.

Для вывода логотипа производителя в список и сетку вывода товаров в категории открываем файл шаблона catalog/view/theme/default/template/product/category.tpl и находим блок (div) с классом product-list в котором выводятся данные о товарах, а потом с этого блока «парсятся» для перестройки список-сетка. Далее в нужном месте для вывода логотипа бренда вставляем

После этого «естественный» вывод в шаблон у нас уже готов. Для добавления в сетку или список нам нужно отредактировать javascript функцию, которая формирует верстку для заданного вида. Для этого внизу страницы находим строку

function display(view) {

и в нужном месте до строки }else{ вставляем отображение логотипа

var logo = $(element).find('.logo').html(); if (logo != null) { html += ''; } 

можно например вставить после строки:

html += '
' + $(element).find('.name').html() + '
';

Вывод логотипа в сетке товаров в категории Opencart

Далее что бы логотип отображался в сетке надо эти же строки добавить уже после }else{ в нужное место, например, можно после строки

html += '
' + $(element).find('.name').html() + '
';

После такой доработки у нас в категории будут выводится логотипы производителя товара как в сетке так и в списке. Обратите внимание еще и на то, что при наведении на логотип у нас появляется всплывающее название бренда.


31.05.2015 6419
Новости из этой категории
11.09.2019 5031
В Opencart при копировании товара удаляет
Во втором Opencart замечен странный баг который вместо копирования товара в списке его удаляет. Что бы исправить необходимо открыть файлadmin/view/template/catalog/produc..
15.11.2018 17382
Как вывести любую информацию в любом месте в карточке товара
Приветствую тебя юный разработчик! Очень часто в заданиях или целых проектах у меня бывают похожие пункты. Очень популярный это вывод информационного блока в карточке тов..
29.09.2018 8176
Исправляем баг Opencart редирект с page=1 на страницу категории
В пагинации Opencart зарыто очень много багов. Например при перелистывании категории кнопками 1.2.3... у нас создаются дубли страниц, которые можно решить с помощью внедр..
11.02.2018 7964
Как задать разный порядок сортировки товара для каждой из категорий к которому он привязан
Приветствую! Недавно мне написал заказчик который попросил меня сделать достаточно интересную доработку. Суть ее в том что надо сделать порядок сортировки товара который ..
23.01.2018 9896
Пропадают заказы в Opencart - как вылечить?
Очень часто ко мне обращаются мои клиенты с просьбой разобраться почему у них пропадают заказы. То есть клиенты звонят и говорят что заказ сделали но никто не перезванива..
Вся информация, представленная на сайте, является демонстрационной и оставляя информацию о своих персональных данных, вы добровольно делаете их общедоступными.
Рекомендуем использовать обезличенные данные. Мы используем файлы cookie для вашего удобства пользования сайтом и повышения качества рекомендаций. Подробнее