Как отобразить изображения категорий в OpenCart
Мои категории.php модуль в контроллере:
$this->data['categories'][] = array(
'category_id' => $category['category_id'],
'name' => $category['name'],
'image' => $category['image'],
'children' => $children_data,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
Мои категории.tpl in / продукты/ (просмотр)
<?php foreach ($categories as $category) { ?>
<li><a href="<?php echo $category['href']; ?>"><img src="<?php echo $category['image']; ?>" alt="<?php echo $category['name']; ?>"></a></li>
<?php } ?>
Однако это просто дает мне ошибку, говоря, что переменная неизвестна.
Я делаю что-то не так?
Ответы - Как отобразить изображения категорий в OpenCart / How to display Category images in OpenCart

21.05.2014 11:26:48
Первая проблема заключается в том, что вы редактируете неправильный файл контроллера, вы должны отредактировать контроллер/продукт/категорию.php, если вы хотите, чтобы ваши изменения отображались в этом конкретном представлении.
Изображения не будут отображаться как есть, так как они не сохраняются в базе данных в виде полного url-адреса:
вместо =>
$category['image']
оно должно быть =>
DIR_IMAGE.$category['image']
Надеюсь, это решит ваш ответ.




21.05.2014 11:28:56
Ваш подход был хорош, но чего - то не хватает-хорошо изменить размер изображения между показами, чтобы пользователи могли загружать меньше (или меньше) ресурсов при просмотре вашего магазина.
Вместо
'image' => $category['image'],
использовать это
'image' => $this->model_tool_image->resize($category['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')),
Это обеспечит изменение размера изображений до размеров, определенных в администрировании, и добавит DIR_IMAGE
перед путем изображения.
Если эта строка отсутствует в исходном коде:
$this->load->model('tool/image');
убедитесь, что вы добавили его до того, как изображение категории будет изменено.