Вывод изображений подкатегории OpenCart 2
- 18 октября, 2022
- 1:40 пп
- Нет комментариев
В стандартном opencart категории выводятся только списком, в то время как в админке к каждой категории можно присвоить изображение, которое будет показываться в описании категории товаров. Намного красивее можно вывести категории товаров в виде плитки с картинками. Начнём изменять наш шаблон, открываем: /catalog/view/theme/default/template/product/category.tpl
Находим следующий код:
И меняем его на:
Здесь мы, во-первых вывели изображения подкатегорий opencart, во-вторых — вместо обычного маркированного списка задействовали вывод в виде красивой плитки. Теперь чтобы стали доступны картинки в шаблоне, открываем контроллер: /catalog/controller/product/category.php
Находим в районе 162 строки код:
$data['categories'][] = array(
'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
);
Меняем его на:
$data['categories'][] = array(
'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
'thumb'=>$this->model_tool_image->resize($result['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
);
Для указания размеров изображения мы использовали стандартную опцию, редактируемую из админки: «Размер изображения в списке категорий».
Чтобы список категорий выглядел красивее, добавим немного стилей:
.catlist {
border: 1px solid #DDD;
margin-bottom: 20px;
}
.catimg {
text-align:center;
}
.catname {
padding:0px 10px;
height:40px;
overflow:auto;
}
В результате получится следующее:
Сразу предупреждаю о возможных проблемах:
1. Если Вы в админке установите изображение больше чем размер контейнера col-md-2, то картинки выйдут за границы элемента.
2. Если Вы используете длинные имена в категориях, то часть имени может обрезаться снизу.
Оба случая устраняются с помощью стилей, высота контейнера под заголовок категории находится в стиле .catname, и ширина блока задаётся через bootstrap контейнеры col-md-2, col-md-3 и т.д.
В завершении нужно перенести описание категории под список товаров, это очень часто требуют seo специалисты, в шаблоне категорий /catalog/view/theme/default/template/product/category.tpl находим код:
Вырезаем его и переносим в самый конец файла под следующие строки:
Теперь описание категорий находится под списком товаров.