二次开发中经常遇到一种情况,就是判断一个分类是否属于某一个大的分类,而大的分类包括很多子分类成树状结构,基本的方法都是先获取大分类下的所有子分类的信息,然后再挨个比较看是否有ID和待定ID相等。一种用递归方法获取大分类所有的ID;第二种用队列等非递归的方法获取所有子分类ID,第二种明显性能要好一些。
本文在magento的模板文件里测试成功一个函数:输入一个分类的ID,将返回该分类下所有子分类(递归获取)的ID,组成一个数组返回。所用的方法为用队列实现的非递归方法:
| 代码如下 | 复制代码 |
|
/** |
|
PHP没有栈和队列的数据结构,可以用数组来模拟实现,数组的array_push和array_pop刚好就是这么两个方法,其中因为array_pop每次会改变数组的指针,所以可以在循环的末尾reset一下重置数组。
最后的测试,输入的是两个分类的ID,函数执行结束以后,返回的数组里面就是所有子分类的ID,如果我们要调用指定分类下的产品和获取子分类及产品数量 上面办法实现不完美
Magento首页及分类页面侧边栏经常需要调用某一个分类下的产品,例如首页的Featured Product等。这些分类一般保持不激活状态,我们可以添加店铺中比较畅销的产品到该分类中,并从前台调用。下面一段代码主要用处就是在Magento中获取指定分类下的产品。
| 代码如下 | 复制代码 |
|
$products = Mage::getModel('catalog/category')->load($category_id) |
|
将上面的$category_id修改为需要显示产品的分类id,该id可以在分类页面中看到。上述代码中还捎带了一些过滤,产品状态为激活,并处于可见状态。
很多Magento的项目中,客户需求将每个当前分类下的每个子分类以及该分类下的产品数量全部显示出来,类似于Category (108)的形式。如下所示
想实现这种效果,就必须要知道如何获取当前分类的子分类,并了解Product Collection类中的count()方法。该方法用于获取任意形式下对于Product Collection进行筛选后的产品数量。
| 代码如下 | 复制代码 |
|
|
|
原神祈愿模拟器最新版
原神祈愿模拟器手机版是一款完整汉化的趣味原神抽卡模拟小游戏,
宝宝森林美食完整版
宝宝森林美食游戏最新版是一款十分有趣的休闲益智游戏,帮助宝宝
g沙盒仇恨官方英文版(gorebox)
G沙盒仇恨英文原版是一款最近非常火热的沙盒模拟类游戏,在这里
迷你世界测试服最新版2024
迷你世界测试服2021最新版,即迷你世界的先遣服版本,用户能
闪耀暖暖最新版2024
闪耀暖暖手游这是非常好玩的换装手游,游戏内容丰富有趣,游戏环