Skip to main content
format the code
Source Link
Manashvi Birla
  • 8.9k
  • 9
  • 28
  • 53

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 "as

";print_r($arr);
echo("console.log('PHP: ".$arr."');");
file_put_contents("cat_node.json", $arr);
}

<?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 ?>

} // End of Class ?>

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 "

";print_r($arr);
echo("console.log('PHP: ".$arr."');");
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 ?>

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
?>
Source Link

How should i get image url in my category tree?

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 "

";print_r($arr);
echo("console.log('PHP: ".$arr."');");
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 ?>