-
- rrroulio

-
Total Posts: 82
Joined: 2008-03-26
france moselle
|
if you just want, like me , get all categories with hierarchy + id in order to use in datasheet
create a file “myfile.php” on the root magento folder and put the code below.
All level are marked by *. Use it as separator in excel.
<?php require_once $_SERVER['DOCUMENT_ROOT']."/app/Mage.php"; Mage::app('1');
function nodeToArray(Varien_Data_Tree_Node $node) { $result = array(); $result['category_id'] = $node->getId(); $result['parent_id'] = $node->getParentId(); $result['name'] = $node->getName(); $result['is_active'] = $node->getIsActive(); $result['position'] = $node->getPosition(); $result['level'] = $node->getLevel(); $result['children'] = array();
foreach ($node->getChildren() as $child) { $result['children'][] = nodeToArray($child); }
return $result; }
function load_tree() {
$tree = Mage::getResourceSingleton('catalog/category_tree') ->load();
$store = 1; $parentId = 1;
$tree = Mage::getResourceSingleton('catalog/category_tree') ->load();
$root = $tree->getNodeById($parentId);
if($root && $root->getId() == 1) { $root->setName(Mage::helper('catalog')->__('Root')); }
$collection = Mage::getModel('catalog/category')->getCollection() ->setStoreId($store) ->addAttributeToSelect('name') //->addAttributeToSelect('id') ->addAttributeToSelect('is_active');
$tree->addCollectionData($collection, true);
return nodeToArray($root);
}
function print_tree($tree,$level) { $level ++; foreach($tree as $item) { echo str_repeat("*", $level).$item['name'].'*'.$item['category_id']."<br>"; print_tree($item['children'],$level);
} }
$tree = load_tree(); print_tree($tree['children'],0);
|