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

原创 2015年07月08日 11:32:05
<?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;
}


书籍:超实用的javascript代码段:下拉框二级联动效果(解析笔记)附带后台循环查询多级分类下的原理

之前做的一段每行解析,重要的是带来的思路原理 下拉聯動 省 市 var linkDatas = { provinces:[ ...

分词的相关编程以及代码段

  • 2010年06月08日 21:37
  • 1KB
  • 下载

ios 网络请求总结加强对中文的处理 问题:URL不允许写中文 在GET请求中,相关代码段打断点以验证。

开发还是需要多多练习的 ,下面是一些常用的步骤: 一、简单说明 创建Get 请求 //    1.设置请求路径     NSString *urlStr=[NSString strin...

与地图相关的代码段

一直未深入接触地图开发,目前也是简单的接触一点,将学习到的代码段分享出来,希望大家能喜欢,如有问题请留言,一起解决。...

magento修改分类描述

  • 2013年05月13日 17:14
  • 48KB
  • 下载

JQuery中遍历函数的分类整理

JQuery中包含了很多非常强大的遍历函数,用于进行集合操作。本片文章会列出常用的...

php递归无限级分类【先序遍历算】,获取任意节点下所有子孩子

magento 获取分类及其子分类 多种情况举例

magento 获取分类及其子分类 多种情况举例
  • m0sh1
  • m0sh1
  • 2015年03月20日 09:37
  • 737
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Magento跟获取分类遍历分类相关的代码段
举报原因:
原因补充:

(最多只允许输入30个字)