Перейти к содержанию
olorin

Как отобразить изображение категории товаров в списке категорий?

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

Доброго времени суток. Есть категории товаров(по стандарту это список в левой колонке). В админке при создании категорий товаров можно присвоить изображение категории, которое будет отображаться на странице категорий. И теперь вопрос - что нужно сделать чтобы изображение категории отображались именно в списке категорий? Пример на скрине. Заранее благодарен

Screenshot_10.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем понял вопрос, но подозреваю, что вам надо это

 

или ищите "стена категорий" "витрина категорий"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, тут, наверное, о другом речь. Это похоже на мегаменю, типа как в Shop-Store.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, Shureg сказал:

Не совсем понял вопрос, но подозреваю, что вам надо это

 

или ищите "стена категорий" "витрина категорий"

Да примерно такое, только без вывода подкатегорий при ховере. По сути мне нужна только картинка каждой из категорий. Попробовал взять код с карточки товара
а именно этот:

 

<?php if ($thumb) { ?>
        <div class="col-sm-2"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" title="<?php echo $heading_title; ?>" class="img-thumbnail" /></div>
<?php } ?>

Но я не знаю как именно настроить контроллер правильно. Когда вставил вот такая вот ошибка:
Notice: Undefined variable: thumb in /home/blesktru/fof.com.ua/avto/catalog/view/theme/default/template/extension/module/category.tpl on line 17.

Я попробовал взять код из category.php в папке product и вставить в category.php в папке module. но, либо что то не то вставил, либо это вообще не таким образом делается.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, SiteMix сказал:

Нет, тут, наверное, о другом речь. Это похоже на мегаменю, типа как в Shop-Store.

Нет, это примерно то же что мне нужно) По сути это тот же обычный список категорий только с картинкой и строкой а не списком идет(display: flex)

Изменено пользователем olorin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

контроллер модуля  категорий

            $data['categories'][] = array(
// добавляем изображение
                'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),
                'category_id' => $category['category_id'],
                'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
                'children' => $children_data,
                'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
            );

в шаблоне выводим

<img src="<?php echo $category['image'];?>">

 

Изменено пользователем fanatic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
52 минуты назад, fanatic сказал:

контроллер модуля  категорий


            $data['categories'][] = array(
// добавляем изображение
                'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),
                'category_id' => $category['category_id'],
                'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
                'children' => $children_data,
                'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
            );

в шаблоне выводим


<img src="<?php echo $category['image'];?>">

 

спасибо большое!) но выдало такую ошибку. Я вроде бы всё правилно сделал:

Notice: Undefined property: Action::$model_tool_image in /home/blesktru/fof.com.ua/avto/catalog/controller/extension/module/category.php on line 73
Fatal error: Call to a member function resize() on a non-object in /home/blesktru/fof.com.ua/avto/catalog/controller/extension/module/category.php on line 73

Изменено пользователем olorin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
55 минут назад, fanatic сказал:

контроллер модуля  категорий


            $data['categories'][] = array(
// добавляем изображение
                'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),
                'category_id' => $category['category_id'],
                'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
                'children' => $children_data,
                'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
            );

в шаблоне выводим


<img src="<?php echo $category['image'];?>">

 

Может дело в версии? у меня ocStore 2.3.0.2.2

Изменено пользователем olorin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

забыл, добавьте в контроллер после

$this->load->model('catalog/product');
$this->load->model('tool/image');

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, fanatic сказал:

забыл, добавьте в контроллер после


$this->load->model('catalog/product');

$this->load->model('tool/image');

 

Добавил, и такая вот беда те же ошибки:

Notice: Undefined property: Action::$model_tool_image in /home/blesktru/fof.com.ua/avto/catalog/controller/extension/module/category.php on line 73
Fatal error: Call to a member function resize() on a non-object in /home/blesktru/fof.com.ua/avto/catalog/controller/extension/module/category.php on line 73

Изменено пользователем olorin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

покажите контроллер полностью

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
45 минут назад, fanatic сказал:

покажите контроллер полностью

<?php
class ControllerExtensionModuleCategory extends Controller {
	public function index() {
		$this->load->language('extension/module/category');

		$data['heading_title'] = $this->language->get('heading_title');

		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		if (isset($parts[0])) {
			$data['category_id'] = $parts[0];
		} else {
			$data['category_id'] = 0;
		}

		if (isset($parts[1])) {
			$data['child_id'] = $parts[1];
		} else {
			$data['child_id'] = 0;
		}

		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

		$data['categories'] = array();

		$categories = $this->model_catalog_category->getCategories(0);

		foreach ($categories as $category) {
			$children_data = array();

			if ($category['category_id'] == $data['category_id']) {
				$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(
						'category_id' => $child['category_id'],
						'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'])
					);
				}
			}

			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

			$data['categories'][] = array(
				'category_id' => $category['category_id'],
				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);
		}

		return $this->load->view('extension/module/category', $data);
	}
}

//картинки в категориях 

// 	$this->load->model('catalog/product');

// 	$this->load->model('tool/image');
// 	 $data['categories'][] = array(

//                 'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),
//                 'category_id' => $category['category_id'],
//                 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
//                 'children' => $children_data,
//                 'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
//             );





 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, тяжелый случай.

<?php
class ControllerExtensionModuleCategory extends Controller {
	public function index() {
		$this->load->language('extension/module/category');

		$data['heading_title'] = $this->language->get('heading_title');

		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		if (isset($parts[0])) {
			$data['category_id'] = $parts[0];
		} else {
			$data['category_id'] = 0;
		}

		if (isset($parts[1])) {
			$data['child_id'] = $parts[1];
		} else {
			$data['child_id'] = 0;
		}

		$this->load->model('catalog/category');

		$this->load->model('catalog/product');
                $this->load->model('tool/image');

		$data['categories'] = array();

		$categories = $this->model_catalog_category->getCategories(0);

		foreach ($categories as $category) {
			$children_data = array();

			if ($category['category_id'] == $data['category_id']) {
				$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(
						'category_id' => $child['category_id'],
						'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'])
					);
				}
			}

			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

			$data['categories'][] = array(
                                'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),
				'category_id' => $category['category_id'],
				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);
		}

		return $this->load->view('extension/module/category', $data);
	}
}

найдите отличия

Изменено пользователем fanatic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
59 минут назад, fanatic сказал:

да, тяжелый случай.


<?php
class ControllerExtensionModuleCategory extends Controller {
	public function index() {
		$this->load->language('extension/module/category');

		$data['heading_title'] = $this->language->get('heading_title');

		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		if (isset($parts[0])) {
			$data['category_id'] = $parts[0];
		} else {
			$data['category_id'] = 0;
		}

		if (isset($parts[1])) {
			$data['child_id'] = $parts[1];
		} else {
			$data['child_id'] = 0;
		}

		$this->load->model('catalog/category');

		$this->load->model('catalog/product');
                $this->load->model('tool/image');

		$data['categories'] = array();

		$categories = $this->model_catalog_category->getCategories(0);

		foreach ($categories as $category) {
			$children_data = array();

			if ($category['category_id'] == $data['category_id']) {
				$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(
						'category_id' => $child['category_id'],
						'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'])
					);
				}
			}

			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

			$data['categories'][] = array(
                                'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),
				'category_id' => $category['category_id'],
				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);
		}

		return $this->load->view('extension/module/category', $data);
	}
}

найдите отличия

Нашел, вот ваш вариант:

 

$data['categories'][] = array(
                                'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),
				'category_id' => $category['category_id'],
				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);

а вот мой:

 

$data['categories'][] = array(
				'category_id' => $category['category_id'],
				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);
		}

по сути у меня отсутствует 'image'. Попробовал вставить теперь ошибки на 71й строке а не на 73й:

Notice: Undefined property: Action::$load in /home/blesktru/fof.com.ua/avto/catalog/controller/extension/module/category.php on line 71
Fatal error: Call to a member function model() on a non-object in /home/blesktru/fof.com.ua/avto/catalog/controller/extension/module/category.php on line 71


вот что на 71й:
$this->load->model('catalog/product');

Изменено пользователем olorin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не морочьте голову.   

в последнем моем сообщении уже готовый файл с изменениями.

не нужно лепить в свой контроллер это 

1 час назад, olorin сказал:

// $this->load->model('catalog/product'); // $this->load->model('tool/image'); // $data['categories'][] = array( // 'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')), // 'category_id' => $category['category_id'], // 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), // 'children' => $children_data, // 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) // );

нужно просто добавить после

$data['categories'][] = array(

следующее

 'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),

а после

$this->load->model('catalog/product');

это

$this->load->model('tool/image');

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, fanatic сказал:

не морочьте голову.   

в последнем моем сообщении уже готовый файл с изменениями.

не нужно лепить в свой контроллер это 

нужно просто добавить после


$data['categories'][] = array(

следующее


 'image' => $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')),

а после


$this->load->model('catalog/product');

это


$this->load->model('tool/image');

 

Спасибо огромное!!! помогло!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.