i have added third child category in menu but I am having a problem because some of the 3rd level categories are being repeated automatically . you can take a look at
http://www.gems-mart.com/
I am using OpenCart version 2.1.0.2
you can also see the .tpl file
Hi,
I answered such a question sometime ago in stackoverflow, I hope it will help you:
https://stackoverflow.com/questions/413 ... 1#41408171
I answered such a question sometime ago in stackoverflow, I hope it will help you:
https://stackoverflow.com/questions/413 ... 1#41408171
You can Add 3rd level of categories like this: controller file:
view file:Code: Select all
$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) { // Level 3 $grandchildren_data = array(); $grandchildren = $this->model_catalog_category->getCategories($child['category_id']); foreach ($grandchildren as $grandchild) { $grandchild_filter_data = array( 'filter_category_id' => $grandchild['category_id'], 'filter_sub_category' => true ); $grandchildren_data[] = array( 'name' => $grandchild['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($grandchild_filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $grandchild['category_id']) ); } $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']), 'children' => $grandchildren_data, ); } // 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']) ); } }
I've tested my work on opencart 2.3.0.2 with default themeCode: Select all
<ul class="nav navbar-nav"> <?php foreach ($categories as $category) { ?> <?php if ($category['children']) { ?> <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a> <div class="dropdown-menu"> <div class="dropdown-inner"> <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?> <ul class="list-unstyled"> <?php foreach ($children as $child) { ?> <li> <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a> <?php if($child['children']){ ?> <ul> <?php foreach ($child['children'] as $child) { ?> <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </li> <?php } ?> </ul> <?php } ?> </div> <a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div> </li> <?php } else { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> <?php } ?> </ul>
You're welcome.owaisamania wrote: ↑Thu Sep 21, 2017 5:12 pmThank you soo much. There were some minor mistakes but it helped a lot. Appreciated
Who is online
Users browsing this forum: No registered users and 83 guests