ECSHOP商品分类显示三级商品分类菜单方法
2016-06-13 13:05 来源:www.chinab4c.com 作者:ecshop专家
ecshop商品分类页面获得当前分类的子分类和三级分类教程:第一步:修改/include/lib_goods.php,在第24行加入以下代码:/*** 获得指定分类下的子分类** @access public* @param integer $cat_id 分类编号* @return array *www.ecshop119.com */function get_children_tree($cat_id){ if ($cat_id >0 ) { $sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('category') . " WHERE parent_id = '$cat_id'"; //$cot = $GLOBALS['db']->getOne($sql); if ($GLOBALS['db']->getOne($sql)) { // 获取当前分类名及其子类 $sql = 'SELECT a.cat_id, a.cat_name, a.sort_order AS parent_order, a.cat_id, ' . 'b.cat_id AS child_id, b.cat_name AS child_name, b.sort_order AS child_order ' . 'FROM ' . $GLOBALS['ecs']->table('category') . ' AS a ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS b ON b.parent_id = a.cat_id ' . "WHERE a.cat_id = '$cat_id' ORDER BY parent_order ASC, a.cat_id ASC, child_order ASC"; } else { $sql = 'SELECT parent_id FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cat_id'"; $parent_id = $GLOBALS['db']->getOne($sql); if ($parent_id > 0) { //获取当前分类、兄弟及其父类 $sql = 'SELECT a.cat_id, a.cat_name, b.cat_id AS child_id, b.cat_name AS child_name, b.sort_order ' . 'FROM ' . $GLOBALS['ecs']->table('category') . ' AS a ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS b ON b.parent_id = a.cat_id ' . "WHERE b.parent_id = '$parent_id' ORDER BY sort_order ASC"; } else { //获取当前分类 $sql = 'SELECT a.cat_id, a.cat_name FROM ' . $GLOBALS['ecs']->table('category') . ' AS a ' . "WHERE a.cat_id = '$cat_id'"; } } $res = $GLOBALS['db']->getAll($sql); $cat_arr = array(); foreach ($res AS $row) { $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 ($row['child_id'] !NULLbr /> { $cat_arr[$row['cat_id']]['children'][$row['child_id']]['id'] = $row['child_id']; $cat_arr[$row['cat_id']]['children'][$row['child_id']]['name'] = $row['child_name']; $cat_arr[$row['cat_id']]['children'][$row['child_id']]['url'] = build_uri('category', array('cid' => $row['child_id']), $row['child_name']); } } return $cat_arr; } }这其实就是一个get_children_tree函数,更具$cat_id来得到当前分类所有的分类第二步,修改/category.php,找到122行,原先的代码是: $smarty->assign('categories', get_categories_tree($cat_id)); // 分类树这其实是模板技术,如果你想彻底抛弃原来的分类样式,那么把get_categories_tree($cat_id)换成刚才我们自定义的函数get_children_tree($cat_id)如果你想保留原先的分类功能,再新增自定义的分类功能,那么在122行下面再新增一行:$smarty->assign('categories2', get_children_tree($cat_id));如果想用不同的颜色表示出当前点击的分类和其他分类,那么还要保留当前点击的分类id。再加一行:$smarty->assign('current_cat_id', $cat_id); //当前的id最后一步修改category.dwt。你要根据第二部定义的模板变量来写:到底是categories还是categories2,更具你实际情况来定。我这里是categories2: {$cat.name|escape:html} · {$child.name|escape:html} · 没有分类了!
最近更新
常用插件
- ecshop注册推荐送现金插件
ecshop中的促销售功能还不是很完善,随着电子商务系统的发展和进步,...
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
- ecshop二次开发商品购买备
ecshop销售统计 插件介绍:ecshop二次开发订单销售统计和商品购买备注服...
- ecshop2.7.2退换货申请插件
ecshop2.7.2退换货申请插件,主要是在 ecshop 现在的基础上,对ecshop的订单处...
- ecshop会员中心订单excel倒出
ecshop会员中心订单excel倒出...