Getting and Using Categories and Sub Categories

Magento ver:
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.

      /* Get the categories that are active for the store */

      /* Get the current category the user is in */
      /* Get the current category path */
      $_categorypath = $this->getCurrentCategoryPath();
      if ($_main_categories):
          /* This bit cycles through the categories - setting the next one to current */
          foreach ($_main_categories as $_main_category):
                 $layer = Mage::getSingleton('catalog/layer');
      /* Write the main categories */
      <li><a href="<?php echo $this->getCurrentCategory()->getUrl()?>"><?php echo $this->getCurrentCategory()->getName();?></a></li>
      /* Check the category variable loop against the current category path if it is - print sub categories */
      if (in_array($this->getCurrentCategory()->getId(), $_categorypath)): ?>
      <?php $_maincategorylisting=$this->getCurrentCategory()?>
      <?php $_categories=$this->getCurrentChildCategories()?>
      <?php if($_categories->count()):?>
      <? foreach ($_categories as $_category):?>
         <? if($_category->getIsActive()):
                 $layer = Mage::getSingleton('catalog/layer');
      <li><a href="<?php echo $this->getCategoryUrl($_category)?>"> <?php echo $_category->getName()?></a></li>
          <? endif;?>
      <?php /* This resets the category back to the original pages category
      ****     If this is not done, subsequent calls on the same page will use the last category
      ****    in the foreach loop
      */   ?>
      <?php $layer->setCurrentCategory($_current_category);  ?>
      <p>$_main_categories array was empty.</p>
      <p>This might be because you are referencing this phtml file with a wrong type attribute. You should use <block type="catalog/navigation" ... /> !</p>
      <?php endif; ?>