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

[Решено] Вывод товаров отдельной категории и подкатегорий на главной (макет внутри)

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

Приветствую!

 

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

 

Как такое можно реализовать?

post-692294-0-39507300-1423042115_thumb.png

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


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

Так сделайте модуль, не вижу проблемы. 

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


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

Так сделайте модуль, не вижу проблемы. 

опенкарт только начинаю осваивать, может подскажите внятный мануал по созданию модулей? пока из того что нашел сам нет примера, который бы решал мою задачу

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


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

окей, как создать свой модуль я разобрался. Теперь стоит вопрос как сделать сортировку товаров нужной категории?

 

в контролере модуля подключил:

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

$this->data['products'] = array();
		
$data = array(
	'sort'  => 'p.date_added',
	'order' => 'DESC',
	'start' => 0,
	'limit' => 10
	);
$this->data['products'] = $this->model_catalog_product->getProducts($data);

Подскажите как сгенерировать 2 массива, первый будет содержать данные по подкатегориям определенной категории, второй товары этих подкатегорий? 

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


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

всё ж под рукой.

посмотреть - тут:

catalog/controller/product/category.php

...
$this->data['categories'] = array();
$results = $this->model_catalog_category->getCategories($category_id);
...
сделать - например так

			$this->data['categories'] = array();
			$this->data['products'] = array();
			
			$results = $this->model_catalog_category->getCategories($category_id);
			foreach ($results as $result) {
				$this->data['categories'][] = array(
					'name'  => $result['name'],
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
				);
				
				
				$data = array(
					'filter_category_id'  => $result['category_id'],
					'filter_sub_category' => true,
					'sort'               => $sort,
					'order'              => $order,
					'start'              => ($page - 1) * $limit,
					'limit'              => $limit
				);
				//$product_total = $this->model_catalog_product->getTotalProducts($data);
				$this->data['products'][$result['category_id']] = $this->model_catalog_product->getProducts($data);
			}
...
Изменено пользователем afwollis
пропустил запятую в массиве

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


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

сори за дилетантский вопрос, но как создать двумерный массив? чтоб в нем сразу была информацию по категории и товарам

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


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

сори за дилетантский вопрос, но как создать двумерный массив? чтоб в нем сразу была информацию по категории и товарам

 

Выше уже ответили.

$this->data['products'][$result['category_id']] = $this->model_catalog_product->getProducts($data);

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


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

упростить себе жизнь

...
			foreach ($results as $result) {
				$data = array(
					'filter_category_id'  => $result['category_id'],
					'filter_sub_category' => true, // это для вывода товаров из под-под... не обязательно
					'sort'               => $sort,
					'order'              => $order,
					'start'              => ($page - 1) * $limit,
					'limit'              => $limit
				);
				
				$this->data['categories'][] = array(
					'name'  => $result['name'],
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
					'products'  => $this->model_catalog_product->getProducts($data)
				);
			}
...
Изменено пользователем afwollis

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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