Перейти к содержанию
View in the app

A better way to browse. Learn more.

Русскоязычное сообщество Opencart

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

В связи с блокировкой банка QIWI оплата через сайт не возможна.
Для оплаты и получения дополнений просьба писать в личные сообщения 
Admin*у
или в Телеграмм https://t.me/pascha_opencart
После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Вывод логотипа производителя товара в категории

Рекомендуемые сообщения

Опубликовано

В стандартной реализации 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 в котором выводятся данные о товарах, а потом с этого блока «парсятся» для перестройки список-сетка. Далее в нужном месте для вывода логотипа бренда вставляем

<div class="logo"><img src="<?php echo $product['logo_image']; ?>" alt="<?php echo $product['logo_title']; ?>" title="<?php echo $product['logo_title']; ?>"></div>

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

function display(view) {

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

var logo = $(element).find('.logo').html();
if (logo != null) {
    html += '<div class="logo">' + logo + '</div>';
}

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

html += '<div class="name">' + $(element).find('.name').html() + '</div>';

 

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.