Magento Navigation, how to customize very helpful information?

Featured Image

This post describes how Magento navigation works. I hope it will help you.
The begining of all is in template file: “category/navigation/top.phtml”

<ul id="nav">
        < ?php 
        foreach ($this->getStoreCategories() as $_category): ?>
            < ?php
            echo $this->drawItem($_category);
        < ?php endforeach ?>

There we call the method from class Mage_Catalog_Block_Navigation $this->getStoreCategories(). This method returns the array $_nodes from object Varien_Data_Tree_Node_Collection.

This array contains objects of Varien_Data_Tree_Node.
Every node is object of Varien_Data_Tree_Node and it is extension from Varien_Object.

Example 1:

If we wish to see how much categories we have, we can do it with method showed below:

< ?php
echo $this->getStoreCategories()->count();

We will get only number of categories from the first level.

Example 2: (only level 1):

< ?php
foreach ($this->getStoreCategories() as $categories)
// $categories is object Varien_Data_Tree_Node extendec Varien_Object
echo $categories->getData('entity_id')."\n";
echo $categories->getData('parent_id')."\n";
echo $categories->getData('level')."\n";
echo $categories->getData('children_count')."\n";

Every Varien_Data_Tree_Node contains varible $_childNodes

     * Child nodes
     * @var Varien_Data_Tree_Node_Collection
    protected $_childNodes;

and $_childNodes is instance of Varien_Data_Tree_Node_Collection.

Varien_Data_Tree_Node_Collection contains variable $_nodes which is array with Varian_Data_Tree_Node.

All this “revolves” through recursion …

About Domagoj Potkoc

Backend Developer

Domagoj is Magento Certified Developer who enjoys playing tennis after long hours in front of computer screen.

Read more posts by Domagoj / Visit Domagoj's profile


  1. @Ben: it means something like “blue acorn” so I guess it’s what you’ve aimed for 🙂

  2. Welcome to the party! Inchoo is like the Plava boja Žir of Croatia, so you should be happy… 😉

    (I have no idea if that’s right. I hope I didn’t just insult 4.5M people.)

  3. BTW. This is the first post of our new employee Domagoj Potkoc, so you guys might wish him a worm welcome here 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.