Jump to content
Sign in to follow this  
kiselevwebmaster

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

Recommended Posts

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

$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 массива, первый будет содержать данные по подкатегориям определенной категории, второй товары этих подкатегорий? 

Share this post


Link to post
Share on other sites

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

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

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);
			}
...
Edited by afwollis
пропустил запятую в массиве

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

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

...
			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)
				);
			}
...
Edited by afwollis

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.