Magento调用分类的方法和获取全部分类

如果希望直接调用Magento分类,可以参考下

1
/app/code/core/Mage/Catalog/Block/Navigation.php

这里有Magento相关的函数可以调用,

或者也可以通过自己写些代码获取Magento所有分类,示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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']."";
    print_tree($item['children'],$level);
    }
}
 
$tree = load_tree();
print_tree($tree['children'],0); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值