Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

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 year later...
В 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.