as
<?php
class Ahybemeir_CategoryObserver_Model_Observer{
public function updateTopMenuJson(Varien_Event_Observer $observer){
$_helper = Mage::helper('catalog/category');
$_categories = $_helper->getStoreCategories();
$recursionLevel = 3; // Add recursion level
$storeId = 1; // Add your Store ID for which you want to get category tree
$node = '';
$categoryTreeData = $this->getCategoryTree($recursionLevel, $storeId);
$arr = json_encode($this->getCategoryTree(3));
echo "<pre>";print_r($arr);
echo("<script>console.log('PHP: ".$arr."');</script>");
file_put_contents("cat_node.json", $arr);
}
protected function getCategoryTree($recursionLevel, $storeId = 1)
{
$parent = Mage::app()->getStore($storeId)->getRootCategoryId();
$tree = Mage::getResourceModel('catalog/category_tree');
/* @var $tree Mage_Catalog_Model_Resource_Category_Tree */
$nodes = $tree->loadNode($parent)
->loadChildren($recursionLevel)
->getChildren();
$collection = $tree->getCollection()
->addAttributeToSelect('description');
$tree->addCollectionData($collection, false, $parent);
$categoryTreeData = array();
foreach ($nodes as $node) {
if ($node->getIsActive()) {
$categoryTreeData[$node->getData('entity_id')] = $this->getNodeChildrenData($node);
}
}
return $categoryTreeData;
}
protected function getNodeChildrenData(Varien_Data_Tree_Node $node)
{
$categoryData = array(
'title' => $node->getData('name'),
'url' => $node->getData('url_key'),
'id' => $node->getId(),
'description' => $node->getData('description'),
'img' => $node->getImageUrl(),
// 'mega_menu1'=> $node->getData('mega_menu')
'mega_menu'=> 'false'
);
foreach ($node->getChildren() as $childNode) {
if (!array_key_exists('children', $categoryData)) {
$categoryData['mega_menu'] = 'true';
$categoryData['children'] = array();
}
$categoryData['children'][$childNode->getData('entity_id')] = $this->getNodeChildrenData($childNode);
}
return $categoryData;
}
} // End of Class
?>