Magento获得全部分类

Magento获得全部分类
Magento获得全部分类

magento获得全部的菜单分类,这段代码的好处就是可以放在任意的phtml文件中,并且做了诸多的条件判断。我们可以参考灵活运用,供初学者参考。

此代码来自互联网:http://www.magentocommerce.com/boards/viewthread/24947/P15/

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);

转载表明出处:www.hellokeykey.com

《Magento获得全部分类》有4个想法

  1. 请问大哥商品导航菜单是在那些PHTML里面。
    catalognavigationtop.phtml

    这句就是取…吧!我想问大哥
    写是在那些文件里面。您可以把这个菜单相关的一些文件给我讲一下是那几个吗。好难找啊。

  2. 请问钥匙哥,这是调用了全部产品的分类,但分类对应的链接是怎么获取的呢?

评论已关闭。