ECSHOP商品分类调用当前分类或下级商品分类函数

2016-06-13 13:05 来源:www.chinab4c.com 作者:ecshop专家

很多时候我们在修改ECSHOP模版的时候可能需要在商品分类页或商品详细页里面只显示当前分类及其子分类,如果没有子分类就显示当前分类和上级分类,尤其在商品分类很多的情况下,可以添加以下函数   function get_categories_tree_xaphp($cat_id = 0) { if ($cat_id > 0) { $sql = ’SELECT parent_id FROM ’ . $GLOBALS['ecs']->table(‘category’) . “ WHERE cat_id = ’$cat_id’”; $parent_id = $GLOBALS['db']->getOne($sql); } else { $parent_id = 0; } /* 判断当前分类中全是是否是底级分类, 如果是取出底级分类上级分类, 如果不是取当前分类及其下的子分类 */ $sql = ’SELECT count(*) FROM ’ . $GLOBALS['ecs']->table(‘category’) . “ WHERE parent_id = ’$cat_id’ AND is_show = 1 ”; if ($parent_id == 0||$GLOBALS['db']->getOne($sql)) { /* 获取当前分类及其子分类 */ $sql = ’SELECT cat_id,cat_name ,parent_id,is_show ’ . ‘FROM ’ . $GLOBALS['ecs']->table(‘category’) . “WHERE parent_id = ’$cat_id’ AND is_show = 1 ORDER BY sort_order ASC, cat_id ASC”; $res = $GLOBALS['db']->getAll($sql); foreach ($res AS $row) { if ($row['is_show']) { $cat_arr[$row['cat_id']]['id']   = $row['cat_id']; $cat_arr[$row['cat_id']]['name'] = $row['cat_name']; $cat_arr[$row['cat_id']]['url']  = build_uri(‘category’, array(‘cid’ => $row['cat_id']), $row['cat_name']); } } } else { /* 获取当前分类及其子分类 */ $sql = ’SELECT cat_id,cat_name ,parent_id,is_show ’ . ‘FROM ’ . $GLOBALS['ecs']->table(‘category’) . “WHERE parent_id = ’$parent_id’ AND is_show = 1 ORDER BY sort_order ASC, cat_id ASC”; $res = $GLOBALS['db']->getAll($sql); foreach ($res AS $row) { if ($row['is_show']) { $cat_arr[$row['cat_id']]['id']   = $row['cat_id']; $cat_arr[$row['cat_id']]['name'] = $row['cat_name']; $cat_arr[$row['cat_id']]['url']  = build_uri(‘category’, array(‘cid’ => $row['cat_id']), $row['cat_name']); } } } if(isset($cat_arr)) { return $cat_arr; } }