共计有21个函数 已经列出了12个
zen_has_category_subcategories($category_id)
根据分类ID—-检查该分类是否有子分类,实现过程是统计 parent_id=$category_id的数量,如果数量大于1,表示有子分类,返回bool类型
zen_get_categories_parent_name($categories_id)
根据分类ID—-获取父分类的名字 categories_name
zen_get_parent_categories($categories, 37)
根据分类的ID—-向上查找父分类的ID,比如子分类:37 cPath=33_35_37,那么$categories最终是一个数组,[35,37],如果没有父分类就返回true,表示该分类是一个顶级分类。自身迭代函数,一直向上查找,直到parent_id为0为止,里面有个非常重要的判断 如果查找出来的当前分类的ID 不等于当前分类的ID 继续调用自身 直到查询到顶级分类。
zen_get_subcategories(&$subcategories_array, $parent_id = 0)
同理获取子分类的ID,并不是仅仅获取一级子分类,包括子分类的子分类,都一次性获取
比如:zen_get_subcategories($categories_sub,33);得到的结果是下面 有11个子分类
zen_get_product_path($products_id)
根据产品ID—-获得产品的cPath,比如产品ID:90,调用函数得到,获取48_45
实现过程:先根据产品的ID,查找出master_categories_id—》继续查找master_categories_id所有的父分类,得到数组后反转数组,最后拼接上当前分类的ID 返回48_45。
zen_get_path($current_category_id = ”)【还要继续研究】
zen_get_path函数中有个非常关键的 $cPath_array 暂时还不知道它的用法
zen_count_products_in_category($category_id, $include_inactive = false)
统计分类下的产品,产品ID,$include_inactive表示是否包含隐藏产品,如果产品隐藏了,我们统计的时候是否选择呢?
此函数默认会统计该分类下的所有子分类的产品,会累加在一起
zen_get_generated_category_path_rev(39)
用来生成当前分类的路径,包含当前分类“33_35_39”,函数实现过程是:根据参数查找到所有的父分类,然后反转函数,用连字符连接起来,最后拼接上当前分类ID,最后返回
zen_parse_category_path(’33_35_39′)
解析cPath变量并去掉重复的分类ID 比如 33_35_39,返回一个int类型数组。
以上学习了9个函数了
zen_get_product_types_to_category($lookup)
根据分类的ID,查找分类类型的ID,在TABLE_PRODUCT_TYPES_TO_CATEGORY表的product_type_id字段,一个产品分类可以有多个产品类别。
zen_get_categories_products_list(15)
zen_get_categories_products_list($categories_id, $include_deactivated = false, $include_child = true, $parent_category = ‘0’, $display_limit = ”)
获得一个分类下面所有的产品的ID【包括它的子分类】 得到一个数组 数组结构是 产品–分类ID
$include_deactivated:表示是否包含隐藏的产品
$include_child:是否包含子分类
$parent_category
$display_limit:表示限制条件
zen_product_in_category(1, 4)
检查分类ID和产品ID是否有对应的关系,在表TABLE_PRODUCTS_TO_CATEGORIES中,根据$product_id–检索categories_id,如果检索出来的categories_id和我们传入的分类ID相同,表示存在对应关系。如果不存在就继续检查父分类ID。
zen_product_in_parent_category($product_id, $cat_id, $parent_cat_id)
此函数就是继续检查父分类ID函数