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


Magento 获取当前分类名称

  • github_26672553
  • github_26672553
  • 2016年06月03日 08:48
  • 771

Magento获取指定分类下的产品和获取子分类及产品数量

Magento获取指定分类下的产品和获取子分类及产品数量 Magento首页及分类页面侧边栏经常需要调用某一个分类下的产品,例如首页的Featured Product等。这些分类一般保持不激...
  • liuxiaojun828
  • liuxiaojun828
  • 2014年09月05日 09:56
  • 1163

magento 根据分类ID或名称获取该分类下的子分类

  • github_26672553
  • github_26672553
  • 2016年08月26日 16:55
  • 807

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

magento 获取分类及其子分类 多种情况举例
  • m0sh1
  • m0sh1
  • 2015年03月20日 09:37
  • 810

Magento如何获取产品所在的所有分类?

在Magento中一个产品可以加入多个分类中,那么如何获取产品所在的所有分类呢?又要用到SQL了: 1 select c.sku 2  ...
  • danson_yang
  • danson_yang
  • 2014年04月08日 11:44
  • 1202

magento如何获取指定分类的所有上级父类(级联至顶级)

项目需求,要在每一个分类里把分类树在页面显示出来 百度、google后都没有很好的结果,都说如何获取子分类! 这对于我来说,都是没用! 我想要的是知道了指定分类,获取指定分类的上级直及至顶级的分类树信...
  • zhousmq
  • zhousmq
  • 2017年09月06日 12:14
  • 161

Magento二级三级分类URL去除父目录名

打开app/code/core/Mage/Catalog/Model/Url.php这个php文件,找到if (null === $parentPath) { ...
  • benben0503
  • benben0503
  • 2013年07月30日 15:10
  • 1742

Magento 如何去掉分类URL中的父目录

问题:        目前使用的是Magento1.4.2,现希望把Magento中所有产品分类的父类URL去掉。        如该分类名:http://www.abc.com/style/...
  • liangpei2008
  • liangpei2008
  • 2012年06月01日 13:39
  • 3008

Magento笔记--分类设置篇

一、创建页面导航栏分类 进入后台--Catelog--Manage Categories,选中左侧Default Category然后点击Add Subcategory按钮添加子分类。 1.Gen...
  • u014250420
  • u014250420
  • 2015年03月03日 17:37
  • 538

Magento通过分类id获取该分类下的产品(entity_id、type_id、sku、created_at、updated_at、status、visibility)

/*通过分类id获取该分类下的产品*/ $category_id = 49; $products = Mage::getModel('c...
  • github_26672553
  • github_26672553
  • 2015年07月14日 09:33
  • 486
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Magento跟获取分类遍历分类相关的代码段
举报原因:
原因补充:

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