Hi,
I have been modifying the blank theme to setting it up according to my theme that I am building.
Now I need the category navigation to work like this:
my problem is that if there is no sub-categories in a particular category, it will not open the page with the products like a sub-category does.
is there a way to set the navigation as, if there are sub-categories, on click will show the sub categories menu, if there are no sub-categories, it will open the products page?
this is the code that I have right now:
<?php $categories = $this->getStoreCategories(true,false,true); $categoryHelper = $this->getCategoryHelper(); ?> <div class="bb-products" id='products'> <div class="bb-title"> Product Categories </div> <?php $col=1; ?> <div class="categoryList"> <ul> <?php foreach($categories as $category): if (!$category->getIsActive()) { continue; } $categoryName = preg_replace('#[ -]+#', '-', $category->getName()); ?> <li onclick="showSubCategory('<?php echo $categoryName; ?>')" id="<?php echo $categoryName; ?>" class="bb-category categoryColor<?php echo $col ?>"><?php echo $category->getName(); ?></li> <?php if($childrenCategories = $this->getChildCategories($category)): ?> <div id='parent_<?php echo $categoryName ?>' class='parent'> <?php foreach($childrenCategories as $childrenCategory){ ?> <div class="categoriesTable chidle" id='sub_<?php echo $categoryName ?>'> <?php break; } ?> <?php foreach($childrenCategories as $childrenCategory): if (!$childrenCategory->getIsActive()) { continue; } if ( $this->hasChildren($childrenCategory->getId())==0){ ?> <a href="<?php echo $categoryHelper->getCategoryUrl($childrenCategory) ?>"> <div class="categoriesElement productBox<?php echo $col; ?>"> <?php } else{ $subCategoryName = preg_replace('#[ -]+#', '-', $childrenCategory->getName()); ?> <div class="categoriesElement productBox<?php echo $col; ?>" onclick="showSubSubCategories('<?php echo $subCategoryName ?>', '<?php echo $categoryName ?>');" > <?php } ?> <div class="categoriesElementPicture"> <?php if ( $this->hasChildren($childrenCategory->getId())>0){ ?> <div class="plus">[+]</div> <?php } $catId = $childrenCategory->getId(); $categoryAgain = $this->getCategoryView()->load($catId); $_outputhelper = $this->helper('Magento\Catalog\Helper\Output'); $_imgHtml = ''; if ($_imgUrl = $categoryAgain->getImageUrl()) { $_imgHtml = '<img src="' . $_imgUrl . '" />'; $_imgHtml = $_outputhelper->categoryAttribute($categoryAgain, $_imgHtml, 'image'); /* @escapeNotVerified */ echo $_imgHtml; } ?> </div> <div class="categoriesElementName"> <?php echo $childrenCategory->getName(); ?> </div> </div> <?php if ( $this->hasChildren($childrenCategory->getId())==0){ ?> </a> <?php } endforeach; foreach($childrenCategories as $childrenCategory){ ?> </div> <?php break; } endif; if($childrenCategories = $this->getChildCategories($category)): foreach($childrenCategories as $childrenCategory): if (!$childrenCategory->getIsActive()) { continue; } if($childrenSubCategories = $this->getChildCategories($childrenCategory)): $subCategoryName = preg_replace('#[ -]+#', '-', $childrenCategory->getName()); ?> <div class="subChild" id="sub_sub_<?php echo $subCategoryName; ?>"> <?php foreach ($childrenSubCategories as $childrenSubCategory): ?> <a href="<?php echo $categoryHelper->getCategoryUrl($childrenSubCategory) ?>"> <div class="categoriesElement productBox<?php echo $col; ?>"> <div class="categoriesElementPicture"> <?php $catId = $childrenSubCategory->getId(); $categoryAgain = $this->getCategoryView()->load($catId); $_outputhelper = $this->helper('Magento\Catalog\Helper\Output'); $_imgHtml = ''; if ($_imgUrl = $categoryAgain->getImageUrl()) { $_imgHtml = '<img src="' . $_imgUrl . '" />'; $_imgHtml = $_outputhelper->categoryAttribute($categoryAgain, $_imgHtml, 'image'); /* @escapeNotVerified */ echo $_imgHtml; } ?> </div> <div class="categoriesElementName"> <?php echo $childrenSubCategory->getName(); ?> </div> </div> </a> <?php endforeach; ?> </div> <?php endif; endforeach; endif; ?> </div> <?php $col++; if ($col>6) { $col=1; } endforeach; ?> </ul> </div> </div>