Мой модуль category.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 в / products / (Просмотр)
<?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 } ?>
Однако это просто дает мне ошибку, говоря, что переменная неизвестна.
Я делаю что-то неправильно?
Первая проблема заключается в том, что вы редактируете неправильный файл контроллера, вы должны отредактировать контроллер / product / category.php, если вы хотите, чтобы ваши изменения отображались в этом конкретном представлении.
Изображения не будут отображаться, поскольку они не сохранены в виде полного URL-адреса в базе данных:
insted of => $category['image']
он должен быть => DIR_IMAGE.$result['image']
Надеюсь, это решает ваш ответ.
Ваш подход был хорош, но что-то не хватало – хорошо изменить размер изображения между отображением, чтобы пользователи загружали меньше (или меньше) ресурсов при просмотре вашего магазина.
Вместо
'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');
убедитесь, что вы добавили его до того, как изображение категории будет изменено.