Ivseti
@Ivseti
Фронтенд HTML, CSS и немного JS с PHP

Как на Opencart 2.3 вывести 3-й уровень категорий в шаблоне?

Доброго дня ! Никак не могу понять, как вывести 3-й уровень в шапке шаблона ..

Сейчас моя конструкция выводит слева основную категорию, справа 2-й уровень и ссылку на основную категорию, а нужно под 2-м уровнем вывести 3 уровень категорий... Как?

<div class="catalog-box">
  <div class="table-container">
    <div class="row table-row">
      <div class="col-md-3 col-xs-12 catalog-menu no-float">
        <?php foreach ($categories as $key => $category) { ?>
        <a class="catalog-menu-item" data-id="<?=$key?>" href="<?=$category['href']?>"><?=$category['name']?></a>
        <?php } ?>
      </div>
      <div class="col-md-9 catalog-items no-float hidden-xs">
        <div class="catalog-grid-box">
            <?php foreach ($categories as $key => $category) { ?>
              <?php if ($category['children']) { ?>
              <div class="catalog-item-box" data-id="<?=$key?>" id="main-menu-grid">
                <?php foreach ($category['children'] as $children) { ?>
                <div><a href="<?=$children['href']?>" class="catalog-item"><?=$children['name']?></a></div>
                <?php } ?>
                <div class="all">
                  <a class="catalog-item" href="<?=$category['href']?>">Посмотреть все категории<i class="fa fa-angle-right"></i></a>
                </div>
              </div>
              <?php } ?>
            <?php } ?>
        

      </div>
    </div>
  </div>
</div>
</div>
<div class="catalog-overlay"></div>
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@Asokr
Из коробки Opencart выводит только два уровня категорий.
spoiler
$data['categories'] = array();

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

		foreach ($categories as $category) {
			if ($category['top']) {
				// Level 2
				$children_data = array();

				$children = $this->model_catalog_category->getCategories($category['category_id']);

				foreach ($children as $child) {
					$filter_data = array(
						'filter_category_id'  => $child['category_id'],
						'filter_sub_category' => true
					);

					$children_data[] = array(
						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
					);
				}

				// Level 1
				$data['categories'][] = array(
					'name'     => $category['name'],
					'children' => $children_data,
					'column'   => $category['column'] ? $category['column'] : 1,
					'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
				);
			}
		}


Поищите код, который поможет вывести третий уровень, или допишите сами.
https://opencartforum.com/topic/84245-kategorii-3-....
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы