@mts2050

Как сделать вывод картинки в меню opencart?

Подскажите как вывести картинку категории в меню opencart.

В папке templete/common/ файл header.tpl добавил в нужное место:

<?php if ($category['image']) { ?>
<img src="<?php echo $category['image']; ?>"/> 
<?php } else { ?>
<?php } ?>


Подскажите что нужно добавить в controller/common/header.php
Участок кода который отвечает за вывод меню:
$this->load->model('catalog/category');
		$this->load->model('catalog/product');
		$data['categories'] = array();
		$categories = $this->model_catalog_category->getCategories(0);
		foreach ($categories as $category) {
			if ($category['top']) {
				// Уровень 2
				$children_data = array();
				$children = $this->model_catalog_category->getCategories($category['category_id']);
				foreach ($children as $child) {
					$filter_data = array(
						'filter_category_id'  => $child['category_id'],
						'filter_sub_category' => true
					);
					$children_data[] = array(
						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
					);
				}
				// Уровень 1
				$data['categories'][] = array(
					'name'     => $category['name'],
					'children' => $children_data,
					'column'   => $category['column'] ? $category['column'] : 1,
					'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
				);
			}
		}		
		$data['language'] = $this->load->controller('common/language');
		$data['currency'] = $this->load->controller('common/currency');
		$data['search'] = $this->load->controller('common/search');
		$data['cart'] = $this->load->controller('common/cart');
  • Вопрос задан
  • 5998 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mts2050 Автор вопроса
Картинки выводятся в категории, там это реализовано так:

..../category.tpl

<div class="well red-links">
        <?php if ($thumb) { ?>
        <div class="pull-left"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" title="<?php echo $heading_title; ?>" class="img-thumbnail" style="margin: 0 10px 5px 0" /></div>
        <?php } ?>
        <?php if ($description) { ?>
        <?php echo $description; ?>
        <?php } ?>
				<div class="clearfix"></div>
      </div>


..../category.php

....
$this->load->model('tool/image');
....
			if ($category_info['image']) {
				$data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
			} else {
				$data['thumb'] = '';
			}
...
			foreach ($results as $result) {
				if ($result['image']) {
					$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				} else {
					$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				}
...
$data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $result['rating'],
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
				);

Пробовал так вот еще:
..../catalog/controller/common/header.php
После:
$this->load->model('catalog/product');
Добавил:
$this->load->model('tool/image');
После:
foreach ($categories as $category) {
Добавил:
if ($category['image']) {
$image = $this->model_tool_image->resize($category['image'], 100, 50);
} else {
$image = false;					
}

После:
'href'     => $this->url->link('product/category', 'path=' . $category['category_id']),

Добавил:
'thumb' => $image
В файле .../common/header.tpl
Выводил так:
<img src="<?php echo $category['thumb']; ?>" border="0">
Ответ написан
@fromstyle
Если вкратце то вам надо перед

$data['categories'][] = array(
добавить
if ($category['image']) {
					$image = $this->model_tool_image->resize($category['image'], 50, 50);
				} else {
					$image = $this->model_tool_image->resize('no-image.png', 50, 50);
				}

$data['categories'][] = array(
          'name'     => $category['name'],

после добавить строку
'image' => $image,

Аналогично этому так же для подкатегорий

Не забыть подключить $this->load->model('tool/image');если это не сделано выше по коду
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы