Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


olorin
 Поделиться

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

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

Screenshot_10.png

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


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

 

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

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


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');

 

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

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


  • 1 год спустя...
В 16.06.2017 в 22:37, olorin сказал:

<?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); } }

На врсии 3.0.2.0. не работает данный код

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


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

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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