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

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


Recommended Posts

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

 

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

 

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

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

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

Important Information

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