Если необходимо вывести на странице категории Opencart первого уровня сразу третий уровень, минуя второй - это для Вас.
Если Нужно оставить второй уровень.. например в виде заголовков, то можно сделать по аналогии с модулем "категории", там очень похоже. Здесь же вариант, при котором будет отображен только третий уровень без разбивки. При этом не потребуется вносить дополнительные изменения в шаблон, только контроллер: /catalog/controller/product/category.php
1. Находим:
$data['categories'] = array();
Вырезаем оттуда где нашли и вставляем после
$results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) {
2. Далее меняем (с изменениями из предыдущего примера):
$data['categories'][] = array( 'name' => $result['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'image' => $caimage, 'count' => ($this->config->get('config_product_count') ? $this->model_catalog_product->getTotalProducts($filter_data) : '') );
на
$cats = $results = $this->model_catalog_category->getCategories($result['category_id']); foreach ($cats as $cat) { if ($cat['image']) { $caimage = $this->model_tool_image->resize($cat['image'], 100, 100); } else { $caimage = $caimage = $this->model_tool_image->resize('no_image.png', 100, 100); } $data['categories'][] = array( 'name' => $cat['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $cat['category_id'] . $url), 'image' => $caimage, 'count' => ($this->config->get('config_product_count') ? $this->model_catalog_product->getTotalProducts($filter_data) : '') ); }
Здесь как видите, кроме прочего добавился и вывод изображений, уже в новом цикле, соответственно то что было выше - нужно убрать.