阅读:3025回复:0
Magento 列出全部分类
magento 获得全部的产品分类,这段代码的好处就是可以放在任意的phtml文件中,并且做了诸多的条件判断。我们可以参考灵活运用,供初学者参考。
require_once "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);}$cats = array();function print_tree($tree,&$current_cat) {foreach($tree as $item) {$current_cat[$item['category_id']] = array();$current_cat[$item['category_id']]['name'] = $item['name'];if (count($item['children']) > 0) {$current_cat[$item['category_id']]['children'] = array();print_tree($item['children'], &$current_cat[$item['category_id']]['children'] );}}return $current_cat;}$tree = load_tree();$mytree = print_tree($tree['children'],&$cats);print_r($cats); |
|