@Skofild2016
Изучаю Frontend

Как сделать на Opencart вывод товаров с категориями на главную страницу?

Добрый день как вывести товары и категорий на главную страницу кто сможет подсказать. В контролере home сделал вывод категорий на главную и сейчас в каждую категорию падают все товары из всех категорий не знаю как сделать чтобы товар толко из данной категорий находился в секции. Короче как сделать как на сайте dodo пицца. Категорий и товар.
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
@Skofild2016 Автор вопроса
Изучаю Frontend
вечер добрый циклы сделал в контролере но отображает только последнюю категорию с товаром почему так
сам код вот

<?php
class ControllerCommonHome extends Controller {
public function index() {
$this->load->language('product/category');

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

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

$this->load->model('tool/image');

$arr_category = $this->model_catalog_category->getCategories(0);

foreach($arr_category as $id){
$category_id = $id['category_id'];
$category_info = $this->model_catalog_category->getCategory($category_id);

print_r($category_info);

$this->document->setTitle($category_info['meta_title']);
$this->document->setDescription($category_info['meta_description']);
$this->document->setKeywords($category_info['meta_keyword']);

$data['categories'] = array();

$data['heading_title'] = $category_info['name'];

$data['products'] = array();

$filter_data = array(
'filter_category_id' => $category_id,
);

$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

$results = $this->model_catalog_product->getProducts($filter_data);

foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
} else {
$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
}

if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
} else {
$price = false;
}

$data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..',
'price' => $price,
'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1,
// 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
);
};

$data['continue'] = $this->url->link('common/home');

$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');

$this->response->setOutput($this->load->view('product/category', $data));
}
}
} ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SergeTkach
@SergeTkach
OpenCart Forever
2 цикла
1 - перебор категорий {
2 - перебор товаров данной категории {
можно подсмотреть, как формируются $filter_data на странице конкретной категории и вдохновиться этим
}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы