|
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);
|
本文介绍如何在Magento中直接调用产品分类,提供了从核心文件中获取分类信息的方法,并附带示例代码,演示了如何递归地加载和打印所有分类及其属性。
319

被折叠的 条评论
为什么被折叠?



