关闭

Magento跟获取分类遍历分类相关的代码段

298人阅读 评论(0) 收藏 举报
分类:
<?php
/*
 * @date 2015年1月5日
 * 获取分类的父分类和子分类
 **/
$currentCat = Mage::registry('current_category');
//echo $currentCat->getName();
//如果是根目录则显示当前目录
if ($currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId()) {
    //当前目录名
    $parentCate = $this->getCurrentCategory()->getName();
} else {
    //当前目录的父分类名
    $parentCate = $this->getCurrentCategory()->getParentCategory()->getName();
}
//显示的子分类可以根据当前的父分类的基础上
if ($currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId()) {
    //当前分类是顶级分类
    $loadCategory = $currentCat;
} else {
    //当前分类是顶级分类的的一个子分类,载入当前分类的父分类
    $loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId());
}
$subCategories = explode(',', $loadCategory->getChildren());
/*foreach ( $subCategories as $subCategoryId ) {
    $cat = Mage::getModel('catalog/category')->load($subCategoryId);
    if($cat->getIsActive()) {
        echo '<a href="<?php echo $this->getCategoryUrl($cat) ?>">'.$cat->getName().'</a>';
    }
}*/
?>

<?php
/*获取所有分类的数据*/
$storeId = Mage::app()->getStore()->getStoreId();// Gets the current store's id
$category_collection = Mage::getModel('catalog/category')->getCollection()
    ->setStoreId($storeId)
    ->addAttributeToSelect('name')
    ->addAttributeToSelect('is_active');
$arr = array();
foreach ($category_collection as $key => $category) {
    if ($category->getLevel() <= 1) {
        continue;
    }
    $arr[$key]['level'] = $category->getLevel();
    $arr[$key]['parent_id'] = $category->getParentId();
    $arr[$key]['name'] = $category->getName();
    $arr[$key]['id'] = $category->getId();
    $arr[$key]['url'] = $category->getUrl();
    $arr[$key]['is_active'] = $category->getIsActive();
    $arr[$key]['position'] = $category->getPosition();
}
$arr2 = array();
foreach ($arr as $value) {
    if ($value['level'] == 3) {
        $arr2[] = $value;
    }
}
foreach ($arr as $key => $value) {
    foreach ($arr2 as $val) {
        if ($value['id'] == $val['parent_id']) {
            $arr[$key]['children'][] = $val;
        }
    }
}
foreach ($arr as $k => $v) {
    if ($v['parent_id'] != 2) {
        unset($arr[$k]);
    }
    //从全部的分类中,去除当前选中的分类项
    /* if($v['name'] == $parentCate){
         unset($arr[$k]);
     }*/
}
$arr = multi_array_sort($arr, 'position');
?>
/**
 * 对二维数组按某个索引值排序
 *
 * @param $multi_array 二维数组
 * @param $sort_key    索引值
 * @param int $sort
 * @return array|bool
 */
function multi_array_sort($multi_array, $sort_key, $sort = SORT_ASC)
{
    if (is_array($multi_array)) {
        foreach ($multi_array as $row_array) {
            if (is_array($row_array)) {
                $key_array[] = $row_array[$sort_key];
            } else {
                return false;
            }
        }
    } else {
        return false;
    }
    array_multisort($key_array, $sort, $multi_array);
    return $multi_array;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1305327次
    • 积分:23665
    • 等级:
    • 排名:第302名
    • 原创:1234篇
    • 转载:156篇
    • 译文:0篇
    • 评论:125条
    最新评论