ecshop2.7.0商品分类显示数量
1,修改includes/lib_goods.php,改写下两个函数。
- function get_categories_tree($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 = '$parent_id' AND is_show = 1 ";
- if ($GLOBALS['db']->getOne($sql) || $parent_id == 0)
- {
-
- $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);
- $sql = "SELECT cat_id, COUNT(*) AS goods_num " .
- " FROM " . $GLOBALS['ecs']->table('goods') . " AS g " .
- " GROUP BY cat_id";
- $res2 = $GLOBALS['db']->getAll($sql);
- $newres = array();
- foreach($res2 AS $row)
- {
- $newres[$row['cat_id']] = $row['goods_num'];
- }
- foreach ($res AS $row)
- {
- if ($row['is_show'])
- {
- $cat_arr[$row['cat_id']]['id'] = $row['cat_id'];
- $cat_arr[$row['cat_id']]['num'] = !emptyempty($newres[$row['cat_id']]) ? $newres[$row['cat_id']] : 0;
- $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($row['cat_id']) != NULL)
- {
- $cat_arr[$row['cat_id']]['cat_id'] = get_child_tree($row['cat_id']);
- }
- }
- }
- }
- if(isset($cat_arr))
- {
- return $cat_arr;
- }
- }
- function get_child_tree($tree_id = 0)
- {
- $three_arr = array();
- $sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('category') . " WHERE parent_id = '$tree_id' AND is_show = 1 ";
- if ($GLOBALS['db']->getOne($sql) || $tree_id == 0)
- {
- $child_sql = 'SELECT cat_id, cat_name, parent_id, is_show ' .
- 'FROM ' . $GLOBALS['ecs']->table('category') .
- "WHERE parent_id = '$tree_id' AND is_show = 1 ORDER BY sort_order ASC, cat_id ASC";
- $res = $GLOBALS['db']->getAll($child_sql);
-
- $sql = "SELECT cat_id, COUNT(*) AS goods_num " .
- " FROM " . $GLOBALS['ecs']->table('goods') . " AS g " .
- " GROUP BY cat_id";
- $res2 = $GLOBALS['db']->getAll($sql);
- $newres = array();
- foreach($res2 AS $row)
- {
- $newres[$row['cat_id']] = $row['goods_num'];
- }
- foreach ($res AS $row)
- {
- if ($row['is_show'])
- $three_arr[$row['cat_id']]['num'] = !emptyempty($newres[$row['cat_id']]) ? $newres[$row['cat_id']] : 0;
- $three_arr[$row['cat_id']]['id'] = $row['cat_id'];
- $three_arr[$row['cat_id']]['name'] = $row['cat_name'];
- $three_arr[$row['cat_id']]['url'] = build_uri('category', array('cid' => $row['cat_id']), $row['cat_name']);
- if (isset($row['cat_id']) != NULL)
- {
- $three_arr[$row['cat_id']]['cat_id'] = get_child_tree($row['cat_id']);
- }
- }
- }
- return $three_arr;
- }
2.修改category_tree.lib库,写入num变量。
- < div class="box">
- < div class="box_1">
- < div id="category_tree">
- < !--{foreach from=$categories item=cat}-->
- < dl>
- < dt>{$cat.name|escape:html}({$cat.num})
- < !--{foreach from=$cat.cat_id item=child}-->
- < dd>{$child.name|escape:html}({$child.num})
- < !--{foreach from=$child.cat_id item=childer}-->
- < dd> {$childer.name|escape:html}({$childer.num})
- < !--{/foreach}-->
- < !--{/foreach}-->
-
- < !--{/foreach}-->
- < /div>
- < /div>