magento如何获取指定分类的所有上级父类(级联至顶级)
来源:互联网 发布:日本国立大学学费知乎 编辑:程序博客网 时间:2024/06/06 00:26
项目需求,要在每一个分类里把分类树在页面显示出来
百度、google后都没有很好的结果,都说如何获取子分类!
这对于我来说,都是没用!
我想要的是知道了指定分类,获取指定分类的上级直及至顶级的分类树信息
查询无结果,那就只有看magento的源代码了,有那么一个Mage::getResourceModel('catalog/category_tree')模块是处理分类树信息,里面的方法挺多,但也没有针对获取分类树信息,
取子类倒是有很多,然后还有一个很有意思的方法loadBreadcrumbsArray
这个方法就是给一个path参数后,会将相应的分类返回来,它就能达到我的要求,不用我再循环load分类获取分类信息了
那么怎么处理呢?
magento分类Mage::getModel('catalog/category')有一个很重要的分类树Path信息
getPath()返回的是当前分类的分类树信息结果是/1/2/126/320
注:取分类的父分类$category->getParentId()即可
那么就可以通过loadBreadcrumbsArray(category->getPath())拿到整个分类树
代码如下:
$categoty = Mage::getModel('catalog/category')->load($id);//id=当前分类id,分类页面$this->getId()好像能拿,在分类页面可以不用此句,直接$this->getPath()就能获取path信息$tree = Mage::getResourceModel('catalog/category_tree');//加载分类tree模块$category_tree = $tree->loadBreadcrumbsArray($categoty->getPath());//获取相应分类信息var_dump($category_tree)//就是所有分类的arr
loadBreadcrumbsArray方法很好用能满足我的需求,但却有个比较大的问题,magento1.9版本下loadBreadcrumbsArray都不兼容Use Flat Catalog Category,在用Use Flat Catalog Category优化magento时,无解,要么改magento核心,要么就只能用其它方面获取分类树,
一般情况下,建议别改核心代码,就算改核心代码也用重写来改核心的代码,不建议直接改Mage/code下面的代码
我本人最后也只能用循环load分类处理了
$path_id = explode('/',$categoty->getPath());//将当前分类的分类树转为数组$path_arr = array_slice($path_id,2);//去除前两个不必要的类,由于前两个urlpath为无效url路径:root-catalog、/default-category,$category_tree = array(); foreach ($path_arr as $key => $value) { $cata = Mage::getModel('catalog/category')->load($value); $category_tree[$key]['entity_id'] = $value; $category_tree[$key]['name'] = $cata->getName(); $category_tree[$key]['level'] = $cata->getLevel(); $category_tree[$key]['url'] = $cata->getUrlPath(); }var_dump($category_tree)//就是所有分类的arr
- magento如何获取指定分类的所有上级父类(级联至顶级)
- Magento如何获取产品所在的所有分类?
- magento 获取所有分类
- Magento获取指定分类下的产品
- wordpress 获取分类的顶级父类
- Magento里显示指定分类的所有子分类
- magento获取指定目录分类的子分类
- magento获取指定目录分类的子分类
- magento获取指定目录分类的子分类
- Magento获取所有分类列表
- 获取当前用户的所有上级【SQL-所有上级】
- Magento获取指定分类下的产品销量排行
- magento获取当前站点的所有产品分类列表
- magento -- 如何取得一个分类的所有产品
- magento 获取所有分类并打印
- Magento获取指定分类下的产品和获取子分类及产品数量
- magento -- 如何删除所有商品和分类
- 获取某个分类的顶级分类
- 简单监测iOS卡顿的
- MySQL将utf8字符集改为utf8mb4
- c++远航之多继承与多重继承
- 结合企业应用实战讲解线上Linux服务器优化经验
- 阿里云上的gitlab不能使用ssh
- magento如何获取指定分类的所有上级父类(级联至顶级)
- 使用mailto在网页中链接Email地址
- odoo10日历控件功能增强
- 反射使用
- 动态修改桌面应用图标
- 设计模式之简单单例设计模式
- Android开发:Android 按2次back键程序才退出
- 16:矩阵剪刀石头布(1.8编程基础之多维数组)
- Floyd算法优化