您的位置:首页 > 其它

magento 获取所有分类并打印

2017-03-09 16:13 176 查看
代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$path = __DIR__;
require_once $path.'/../app/Mage.php';   // 根据实际修改
umask(0);
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

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 = 0;
$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) {
if ($level > 2) {
echo '    <span style="color:#CCC">|</span>';
}
echo str_repeat("  ", $level) . '<span style="color:#CCC">|------</span>' . $item['name'] . '[<span style="color:#00F">' . $item['category_id'] . "</span>]<br>";
print_tree($item['children'], $level);
}
}

$tree = load_tree();
print_tree($tree['children'], 0);


注: 部分代码参考自网络
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  magento