Call-back icon  Sales: Call 800.374.8146 (N America)|757.278.0920 (International)

Magento

Open Source eCommerce Evolved

Getting and Using Categories and SubCategories . .

Last modified by MuschPusch on Sun, June 22, 2008 18:02
Source|Old Revisions  

I can’t believe I’m the first to document this on the wiki, but here it goes . .

The code below does a couple of things . . . First it will get all the store’s categories - it then checks to see if they are active before continuing.

Also - it might be helpful to have the sub categories displayed, right? Well, in my case, I only wanted the subcategory for the current category displayed - so I put a check in to do so.

  1. <?PHP
  2. /* Get the categories that are active for the store */
  3. $_main_categories=$this->getStoreCategories();
  4.  
  5. /* Get the current category the user is in */
  6. $_current_category=$this->getCurrentCategory();
  7.  
  8. ?>
  9. <ul>
  10. <?php
  11.     /* This bit cycles through the categories - setting the next one to current */
  12.     foreach ($_main_categories as $_main_category):
  13.       if($_main_category->getIsActive()):                             
  14.            $cur_category=Mage::getModel('catalog/category')->load($_main_category->getId());
  15.            $layer = Mage::getSingleton('catalog/layer');
  16.            $layer->setCurrentCategory($cur_category);     
  17.  
  18. /* Write the main categories */           
  19. ?>               
  20. <li><a href="<?php echo $this->getCurrentCategory()->getUrl()?>"><?php echo $this->getCurrentCategory()->getName();?></a></li>   
  21.  
  22.  
  23. <?php
  24.  
  25. /* Check the category variable loop against the current category path if it is - print sub categories */
  26. if (in_array($this->getCurrentCategory()->getId(), $_categorypath)): ?>
  27. <?php $_maincategorylisting=$this->getCurrentCategory()?>                       
  28. <?php $_categories=$this->getCurrentChildCategories()?>
  29. <?php if($_categories->count()):?>
  30.  
  31. <ul>
  32. <? foreach ($_categories as $_category):?>                   
  33.    <? if($_category->getIsActive()):                   
  34.            $cur_subcategory=Mage::getModel('catalog/category')->load($_category->getId());
  35.            $layer = Mage::getSingleton('catalog/layer');
  36.            $layer->setCurrentCategory($cur_subcategory)
  37.          
  38. ?>                         
  39. <li><a href="<?php echo $this->getCategoryUrl($_category)?>"> <?php echo $_category->getName()?></a></li>
  40.     <? endif;?>
  41. <?endforeach?>
  42. </ul>           
  43. <?php /* This resets the category back to the original pages category
  44. ****     If this is not done, subsequent calls on the same page will use the last category
  45. ****    in the foreach loop
  46. */   ?>
  47. <?php $layer->setCurrentCategory($_maincategorylisting)?>
  48. <?endif;?>   
  49.  
  50. <?endif;?>                                   
  51.                                                              
  52. <?php         
  53. endif;
  54. endforeach; ?>



 

Popular Wiki Tags  |  View all

 observer   model   clienti magazin   pdf   video   image   upload   CRM   vtiger   diagram   schema   pages   password   magento connect   registration 

Professional Services from the Magento Team

Professional Installation from the Magento Team

Magento Job Board - Some sort of tag line goes here

Latest Posts| View all Jobs
Sales: Call 800.374.8146 (North America) 757.278.0920 (International)
© Copyright 2008 Varien. Magento is a trademark of Irubin Consulting Inc. DBA Varien
Privacy Policy|Terms of Service
Magento Community Count
33268 users|342 users currently online|73918 forum posts