get a list of all categories about target store

piaoling  2011-07-21 13:23:50

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(’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’]."<br>";
print_tree($item[’children’],$level);

}
}

$tree = load_tree();
print_tree($tree[’children’],0);

类别 :  magento(258)  |  浏览(3733)  |  评论(0)
发表评论(评论将通过邮件发给作者):

Email: