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

by Web全栈工程师 on 2011 年 05 月 29 日

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

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

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

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


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

{ 1 comment }

cooltext 十二月 2, 2014 10:04

分类的url又怎么获取呢?

Comments on this entry are closed.

Previous post:

Next post: