You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

781 lines
27 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**
* shop 商品分类管理程序
* ============================================================================
* * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。
* 网站地址: http://www.shop.com
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
* 使用;不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* $Author: wayne $
* $Id: category.php 17217 2011-01-19 06:29:08Z wayne $
*/
define('IN_ASC', true);
require(dirname(__FILE__) . '/includes/init.php');
include_once (ROOT_PATH . 'includes/cls_image.php');
$image = new cls_image($_CFG['bgcolor']);
$exc = new exchange($ecs->table("category"), $db, 'cat_id', 'cat_name');
/* act操作项的初始化 */
if (empty($_REQUEST['act']))
{
$_REQUEST['act'] = 'list';
}
else
{
$_REQUEST['act'] = trim($_REQUEST['act']);
}
/*------------------------------------------------------ */
//-- 商品分类列表
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'list')
{
/* 获取分类列表 */
$cat_list = cat_list(0, 0, false);
/* 模板赋值 */
$smarty->assign('ur_here', $_LANG['03_category_list']);
$smarty->assign('action_link', array('href' => 'category.php?act=add', 'text' => $_LANG['04_category_add']));
$smarty->assign('full_page', 1);
$smarty->assign('cat_info', $cat_list);
/* 列表页面 */
assign_query_info();
$smarty->display('category_list.htm');
}
/*------------------------------------------------------ */
//-- 排序、分页、查询
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'query')
{
$cat_list = cat_list(0, 0, false);
$smarty->assign('cat_info', $cat_list);
make_json_result($smarty->fetch('category_list.htm'));
}
/*------------------------------------------------------ */
//-- 添加商品分类
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'add')
{
/* 权限检查 */
admin_priv('cat_manage');
/* 模板赋值 */
$smarty->assign('ur_here', $_LANG['04_category_add']);
$smarty->assign('action_link', array('href' => 'category.php?act=list', 'text' => $_LANG['03_category_list']));
$smarty->assign('goods_type_list', goods_type_list(0)); // 取得商品类型
$smarty->assign('attr_list', get_attr_list()); // 取得商品属性
$smarty->assign('cat_select', cat_list(0, 0, true));
$smarty->assign('form_act', 'insert');
$smarty->assign('cat_info', array('is_show' => 1));
/* 显示页面 */
assign_query_info();
$smarty->display('category_info.htm');
}
/*------------------------------------------------------ */
//-- 商品分类添加时的处理
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'insert')
{
/* 权限检查 */
admin_priv('cat_manage');
/* 初始化变量 */
$cat['cat_id'] = !empty($_POST['cat_id']) ? intval($_POST['cat_id']) : 0;
$cat['parent_id'] = !empty($_POST['parent_id']) ? intval($_POST['parent_id']) : 0;
$cat['sort_order'] = !empty($_POST['sort_order']) ? intval($_POST['sort_order']) : 0;
$cat['keywords'] = !empty($_POST['keywords']) ? trim($_POST['keywords']) : '';
$cat['cat_desc'] = !empty($_POST['cat_desc']) ? $_POST['cat_desc'] : '';
$cat['measure_unit'] = !empty($_POST['measure_unit']) ? trim($_POST['measure_unit']) : '';
$cat['show_in_nav'] = !empty($_POST['show_in_nav']) ? intval($_POST['show_in_nav']): 0;
$cat['style'] = !empty($_POST['style']) ? trim($_POST['style']) : '';
$cat['is_show'] = !empty($_POST['is_show']) ? intval($_POST['is_show']) : 0;
$cat['grade'] = !empty($_POST['grade']) ? intval($_POST['grade']) : 0;
$cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array();$cat['filter_attr'] = !empty($_POST['filter_attr']) ? implode(',', array_unique(array_diff($_POST['filter_attr'],array(0)))) : 0;
$cat['cat_name'] = !empty($_POST['cat_name']) ? trim($_POST['cat_name']) : '';
$arrCatName1 = str_replace(' ', '', $cat['cat_name']);
$arrCatName2 = nl2br($arrCatName1);
$arrCatName = explode("<br />" ,$arrCatName2);
foreach($arrCatName as $arrCatNameValue)
{
$cat['cat_name']=str_replace(PHP_EOL, '', $arrCatNameValue);
if (cat_exists($cat['cat_name'], $cat['parent_id']))
{
/* 同级别下不能有重复的分类名称 */
$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
sys_msg($_LANG['catname_exist'], 0, $link);
}
if($cat['grade'] > 10 || $cat['grade'] < 0)
{
/* 价格区间数超过范围 */
$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
sys_msg($_LANG['grade_error'], 0, $link);
}
/* 入库的操作 */
if ($db->autoExecute($ecs->table('category'), $cat) !== false)
{
$cat_id = $db->insert_id();
if($cat['show_in_nav'] == 1)
{
$vieworder = $db->getOne("SELECT max(vieworder) FROM ". $ecs->table('nav') . " WHERE type = 'middle'");
$vieworder += 2;
//显示在自定义导航栏中
$sql = "INSERT INTO " . $ecs->table('nav') .
" (name,ctype,cid,ifshow,vieworder,opennew,url,type)".
" VALUES('" . $cat['cat_name'] . "', 'c', '".$db->insert_id()."','1','$vieworder','0', '" . build_uri('category', array('cid'=> $cat_id), $cat['cat_name']) . "','middle')";
$db->query($sql);
}
insert_cat_recommend($cat['cat_recommend'], $cat_id);
}
}
admin_log($_POST['cat_name'], 'add', 'category'); // 记录管理员操作
clear_cache_files(); // 清除缓存
/*添加链接*/
$link[0]['text'] = $_LANG['continue_add'];
$link[0]['href'] = 'category.php?act=add';
$link[1]['text'] = $_LANG['back_list'];
$link[1]['href'] = 'category.php?act=list';
sys_msg($_LANG['catadd_succed'], 0, $link);
}
/*------------------------------------------------------ */
//-- 编辑商品分类信息
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'edit')
{
admin_priv('cat_manage'); // 权限检查
$cat_id = intval($_REQUEST['cat_id']);
$cat_info = get_cat_info($cat_id); // 查询分类信息数据
$attr_list = get_attr_list();
$filter_attr_list = array();
if ($cat_info['filter_attr'])
{
$filter_attr = explode(",", $cat_info['filter_attr']); //把多个筛选属性放到数组中
foreach ($filter_attr AS $k => $v)
{
$attr_cat_id = $db->getOne("SELECT cat_id FROM " . $ecs->table('attribute') . " WHERE attr_id = '" . intval($v) . "'");
$filter_attr_list[$k]['goods_type_list'] = goods_type_list($attr_cat_id); //取得每个属性的商品类型
$filter_attr_list[$k]['filter_attr'] = $v;
$attr_option = array();
foreach ($attr_list[$attr_cat_id] as $val)
{
$attr_option[key($val)] = current ($val);
}
$filter_attr_list[$k]['option'] = $attr_option;
}
$smarty->assign('filter_attr_list', $filter_attr_list);
}
else
{
$attr_cat_id = 0;
}
/* 模板赋值 */
$smarty->assign('attr_list', $attr_list); // 取得商品属性
$smarty->assign('attr_cat_id', $attr_cat_id);
$smarty->assign('ur_here', $_LANG['category_edit']);
$smarty->assign('action_link', array('text' => $_LANG['03_category_list'], 'href' => 'category.php?act=list'));
//分类是否存在首页推荐
$res = $db->getAll("SELECT recommend_type FROM " . $ecs->table("cat_recommend") . " WHERE cat_id=" . $cat_id);
if (!empty($res))
{
$cat_recommend = array();
foreach($res as $data)
{
$cat_recommend[$data['recommend_type']] = 1;
}
$smarty->assign('cat_recommend', $cat_recommend);
}
$smarty->assign('cat_info', $cat_info);
$smarty->assign('form_act', 'update');
$smarty->assign('cat_select', cat_list(0, $cat_info['parent_id'], true));
$smarty->assign('goods_type_list', goods_type_list(0)); // 取得商品类型
/* 显示页面 */
assign_query_info();
$smarty->display('category_info.htm');
}
elseif($_REQUEST['act'] == 'add_category')
{
$parent_id = empty($_REQUEST['parent_id']) ? 0 : intval($_REQUEST['parent_id']);
$category = empty($_REQUEST['cat']) ? '' : json_str_iconv(trim($_REQUEST['cat']));
if(cat_exists($category, $parent_id))
{
make_json_error($_LANG['catname_exist']);
}
else
{
$sql = "INSERT INTO " . $ecs->table('category') . "(cat_name, parent_id, is_show)" .
"VALUES ( '$category', '$parent_id', 1)";
$db->query($sql);
$category_id = $db->insert_id();
$arr = array("parent_id"=>$parent_id, "id"=>$category_id, "cat"=>$category);
clear_cache_files(); // 清除缓存
make_json_result($arr);
}
}
/*------------------------------------------------------ */
//-- 编辑商品分类信息
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'update')
{
/* 权限检查 */
admin_priv('cat_manage');
/* 初始化变量 */
$cat_id = !empty($_POST['cat_id']) ? intval($_POST['cat_id']) : 0;
$old_cat_name = $_POST['old_cat_name'];
$cat['parent_id'] = !empty($_POST['parent_id']) ? intval($_POST['parent_id']) : 0;
$cat['sort_order'] = !empty($_POST['sort_order']) ? intval($_POST['sort_order']) : 0;
$cat['keywords'] = !empty($_POST['keywords']) ? trim($_POST['keywords']) : '';
$cat['cat_desc'] = !empty($_POST['cat_desc']) ? $_POST['cat_desc'] : '';
$cat['measure_unit'] = !empty($_POST['measure_unit']) ? trim($_POST['measure_unit']) : '';
$cat['cat_name'] = !empty($_POST['cat_name']) ? trim($_POST['cat_name']) : '';
$cat['is_show'] = !empty($_POST['is_show']) ? intval($_POST['is_show']) : 0;
$cat['show_in_nav'] = !empty($_POST['show_in_nav']) ? intval($_POST['show_in_nav']): 0;
$cat['style'] = !empty($_POST['style']) ? trim($_POST['style']) : '';
$cat['grade'] = !empty($_POST['grade']) ? intval($_POST['grade']) : 0;
$cat['filter_attr'] = !empty($_POST['filter_attr']) ? implode(',', array_unique(array_diff($_POST['filter_attr'],array(0)))) : 0;
$cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array();
/* 判断分类名是否重复 */
if ($cat['cat_name'] != $old_cat_name)
{
if (cat_exists($cat['cat_name'],$cat['parent_id'], $cat_id))
{
$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
sys_msg($_LANG['catname_exist'], 0, $link);
}
}
/* 判断上级目录是否合法 */
$children = array_keys(cat_list($cat_id, 0, false)); // 获得当前分类的所有下级分类
if (in_array($cat['parent_id'], $children))
{
/* 选定的父类是当前分类或当前分类的下级分类 */
$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
sys_msg($_LANG["is_leaf_error"], 0, $link);
}
if($cat['grade'] > 10 || $cat['grade'] < 0)
{
/* 价格区间数超过范围 */
$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
sys_msg($_LANG['grade_error'], 0, $link);
}
$dat = $db->getRow("SELECT cat_name, show_in_nav, cat_ico FROM ". $ecs->table('category') . " WHERE cat_id = '$cat_id'");
if (!empty($_FILES['cat_ico']['tmp_name']))
{
@unlink('../data/cat_ico/' .$dat['cat_ico']);
}
$img_name = basename($image->upload_image($_FILES['cat_ico'], 'cat_ico'));
if ($img_name){
$cat['cat_ico'] = $img_name;
}
if ($db->autoExecute($ecs->table('category'), $cat, 'UPDATE', "cat_id='$cat_id'"))
{
if($cat['cat_name'] != $dat['cat_name'])
{
//如果分类名称发生了改变
$sql = "UPDATE " . $ecs->table('nav') . " SET name = '" . $cat['cat_name'] . "' WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'";
$db->query($sql);
}
if($cat['show_in_nav'] != $dat['show_in_nav'])
{
//是否显示于导航栏发生了变化
if($cat['show_in_nav'] == 1)
{
//显示
$nid = $db->getOne("SELECT id FROM ". $ecs->table('nav') . " WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");
if(empty($nid))
{
//不存在
$vieworder = $db->getOne("SELECT max(vieworder) FROM ". $ecs->table('nav') . " WHERE type = 'middle'");
$vieworder += 2;
$uri = build_uri('category', array('cid'=> $cat_id), $cat['cat_name']);
$sql = "INSERT INTO " . $ecs->table('nav') . " (name,ctype,cid,ifshow,vieworder,opennew,url,type) VALUES('" . $cat['cat_name'] . "', 'c', '$cat_id','1','$vieworder','0', '" . $uri . "','middle')";
}
else
{
$sql = "UPDATE " . $ecs->table('nav') . " SET ifshow = 1 WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'";
}
$db->query($sql);
}
else
{
//去除
$db->query("UPDATE " . $ecs->table('nav') . " SET ifshow = 0 WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");
}
}
//更新首页推荐
insert_cat_recommend($cat['cat_recommend'], $cat_id);
/* 更新分类信息成功 */
clear_cache_files(); // 清除缓存
admin_log($_POST['cat_name'], 'edit', 'category'); // 记录管理员操作
/* 提示信息 */
$link[] = array('text' => $_LANG['back_list'], 'href' => 'category.php?act=list');
sys_msg($_LANG['catedit_succed'], 0, $link);
}
}
/*------------------------------------------------------ */
//-- 批量转移商品分类页面
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'move')
{
/* 权限检查 */
admin_priv('cat_drop');
$cat_id = !empty($_REQUEST['cat_id']) ? intval($_REQUEST['cat_id']) : 0;
/* 模板赋值 */
$smarty->assign('ur_here', $_LANG['move_goods']);
$smarty->assign('action_link', array('href' => 'category.php?act=list', 'text' => $_LANG['03_category_list']));
$smarty->assign('cat_select', cat_list(0, $cat_id, true));
$smarty->assign('form_act', 'move_cat');
/* 显示页面 */
assign_query_info();
$smarty->display('category_move.htm');
}
/*------------------------------------------------------ */
//-- 处理批量转移商品分类的处理程序
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'move_cat')
{
/* 权限检查 */
admin_priv('cat_drop');
$cat_id = !empty($_POST['cat_id']) ? intval($_POST['cat_id']) : 0;
$target_cat_id = !empty($_POST['target_cat_id']) ? intval($_POST['target_cat_id']) : 0;
/* 商品分类不允许为空 */
if ($cat_id == 0 || $target_cat_id == 0)
{
$link[] = array('text' => $_LANG['go_back'], 'href' => 'category.php?act=move');
sys_msg($_LANG['cat_move_empty'], 0, $link);
}
/* 更新商品分类 */
$sql = "UPDATE " .$ecs->table('goods'). " SET cat_id = '$target_cat_id' ".
"WHERE cat_id = '$cat_id'";
if ($db->query($sql))
{
/* 清除缓存 */
clear_cache_files();
/* 提示信息 */
$link[] = array('text' => $_LANG['go_back'], 'href' => 'category.php?act=list');
sys_msg($_LANG['move_cat_success'], 0, $link);
}
}
/*------------------------------------------------------ */
//-- 编辑排序序号
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'edit_sort_order')
{
check_authz_json('cat_manage');
$id = intval($_POST['id']);
$val = intval($_POST['val']);
if (cat_update($id, array('sort_order' => $val)))
{
clear_cache_files(); // 清除缓存
make_json_result($val);
}
else
{
make_json_error($db->error());
}
}
/*------------------------------------------------------ */
//-- 编辑数量单位
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'edit_measure_unit')
{
check_authz_json('cat_manage');
$id = intval($_POST['id']);
$val = json_str_iconv($_POST['val']);
if (cat_update($id, array('measure_unit' => $val)))
{
clear_cache_files(); // 清除缓存
make_json_result($val);
}
else
{
make_json_error($db->error());
}
}
/*------------------------------------------------------ */
//-- 编辑分类名称
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'edit_catname')
{
check_authz_json('cat_manage');
$id = intval($_POST['id']);
$val = json_str_iconv($_POST['val']);
if (cat_update($id, array('cat_name' => $val)))
{
clear_cache_files(); // 清除缓存
make_json_result($val);
}
else
{
make_json_error($db->error());
}
}
//-- 编辑排序序号
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'edit_grade')
{
check_authz_json('cat_manage');
$id = intval($_POST['id']);
$val = intval($_POST['val']);
if($val > 10 || $val < 0)
{
/* 价格区间数超过范围 */
make_json_error($_LANG['grade_error']);
}
if (cat_update($id, array('grade' => $val)))
{
clear_cache_files(); // 清除缓存
make_json_result($val);
}
else
{
make_json_error($db->error());
}
}
/*------------------------------------------------------ */
//-- 切换是否显示在导航栏
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'toggle_show_in_nav')
{
check_authz_json('cat_manage');
$id = intval($_POST['id']);
$val = intval($_POST['val']);
if (cat_update($id, array('show_in_nav' => $val)) != false)
{
if($val == 1)
{
//显示
$vieworder = $db->getOne("SELECT max(vieworder) FROM ". $ecs->table('nav') . " WHERE type = 'middle'");
$vieworder += 2;
$catname = $db->getOne("SELECT cat_name FROM ". $ecs->table('category') . " WHERE cat_id = '$id'");
//显示在自定义导航栏中
$_CFG['rewrite'] = 0;
$uri = build_uri('category', array('cid'=> $id), $catname);
$nid = $db->getOne("SELECT id FROM ". $ecs->table('nav') . " WHERE ctype = 'c' AND cid = '" . $id . "' AND type = 'middle'");
if(empty($nid))
{
//不存在
$sql = "INSERT INTO " . $ecs->table('nav') . " (name,ctype,cid,ifshow,vieworder,opennew,url,type) VALUES('" . $catname . "', 'c', '$id','1','$vieworder','0', '" . $uri . "','middle')";
}
else
{
$sql = "UPDATE " . $ecs->table('nav') . " SET ifshow = 1 WHERE ctype = 'c' AND cid = '" . $id . "' AND type = 'middle'";
}
$db->query($sql);
}
else
{
//去除
$db->query("UPDATE " . $ecs->table('nav') . "SET ifshow = 0 WHERE ctype = 'c' AND cid = '" . $id . "' AND type = 'middle'");
}
clear_cache_files();
make_json_result($val);
}
else
{
make_json_error($db->error());
}
}
/*------------------------------------------------------ */
//-- 切换是否显示
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'toggle_is_show')
{
check_authz_json('cat_manage');
$id = intval($_POST['id']);
$val = intval($_POST['val']);
if (cat_update($id, array('is_show' => $val)) != false)
{
clear_cache_files();
make_json_result($val);
}
else
{
make_json_error($db->error());
}
}
/*------------------------------------------------------ */
//-- 删除商品分类
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'remove')
{
check_authz_json('cat_manage');
/* 初始化分类ID并取得分类名称 */
$cat_id = intval($_GET['id']);
$cat_name = $db->getOne('SELECT cat_name FROM ' .$ecs->table('category'). " WHERE cat_id='$cat_id'");
/* 当前分类下是否有子分类 */
$cat_count = $db->getOne('SELECT COUNT(*) FROM ' .$ecs->table('category'). " WHERE parent_id='$cat_id'");
/* 当前分类下是否存在商品 */
$goods_count = $db->getOne('SELECT COUNT(*) FROM ' .$ecs->table('goods'). " WHERE cat_id='$cat_id'");
/* 如果不存在下级子分类和商品,则删除之 */
if ($cat_count == 0 && $goods_count == 0)
{
/* 删除分类 */
$sql = 'DELETE FROM ' .$ecs->table('category'). " WHERE cat_id = '$cat_id'";
if ($db->query($sql))
{
$db->query("DELETE FROM " . $ecs->table('nav') . "WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");
clear_cache_files();
admin_log($cat_name, 'remove', 'category');
}
}
else
{
make_json_error($cat_name .' '. $_LANG['cat_isleaf']);
}
$url = 'category.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);
ecs_header("Location: $url\n");
exit;
}
elseif ($_REQUEST['act'] == 'drop_cat_ico')
{
admin_priv('cat_manage');
$cat_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$sql = "SELECT cat_ico FROM " . $ecs->table('category') . " WHERE cat_id = '$cat_id'";
$thumb_name = $db->getOne($sql);
if (!empty($thumb_name)) {
@unlink(ROOT_PATH . DATA_DIR . '/cat_ico/' . $thumb_name);
$sql = "UPDATE " . $ecs->table('category') . " SET cat_ico = '' WHERE cat_id = '$cat_id'";
$db->query($sql);
}
$link = array(
array(
'text' => '编辑商品分类',
'href' => 'category.php?act=edit&cat_id=' . $cat_id
) ,
array(
'text' => '商品分类列表',
'href' => 'category.php?act=list'
)
);
sys_msg('删除商品分类小图成功', 0, $link);
}
/*------------------------------------------------------ */
//-- PRIVATE FUNCTIONS
/*------------------------------------------------------ */
//
///**
// * 检查分类是否已经存在
// *
// * @param string $cat_name 分类名称
// * @param integer $parent_cat 上级分类
// * @param integer $exclude 排除的分类ID
// *
// * @return boolean
// */
//function cat_exists($cat_name, $parent_cat, $exclude = 0)
//{
// $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('category').
// " WHERE parent_id = '$parent_cat' AND cat_name = '$cat_name' AND cat_id<>'$exclude'";
// return ($GLOBALS['db']->getOne($sql) > 0) ? true : false;
//}
/**
* 获得商品分类的所有信息
*
* @param integer $cat_id 指定的分类ID
*
* @return mix
*/
function get_cat_info($cat_id)
{
$sql = "SELECT * FROM " .$GLOBALS['ecs']->table('category'). " WHERE cat_id='$cat_id' LIMIT 1";
return $GLOBALS['db']->getRow($sql);
}
/**
* 添加商品分类
*
* @param integer $cat_id
* @param array $args
*
* @return mix
*/
function cat_update($cat_id, $args)
{
if (empty($args) || empty($cat_id))
{
return false;
}
return $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('category'), $args, 'update', "cat_id='$cat_id'");
}
/**
* 获取属性列表
*
* @access public
* @param
*
* @return void
*/
function get_attr_list()
{
$sql = "SELECT a.attr_id, a.cat_id, a.attr_name ".
" FROM " . $GLOBALS['ecs']->table('attribute'). " AS a, ".
$GLOBALS['ecs']->table('goods_type') . " AS c ".
" WHERE a.cat_id = c.cat_id AND c.enabled = 1 ".
" ORDER BY a.cat_id , a.sort_order";
$arr = $GLOBALS['db']->getAll($sql);
$list = array();
foreach ($arr as $val)
{
$list[$val['cat_id']][] = array($val['attr_id']=>$val['attr_name']);
}
return $list;
}
/**
* 插入首页推荐扩展分类
*
* @access public
* @param array $recommend_type 推荐类型
* @param integer $cat_id 分类ID
*
* @return void
*/
function insert_cat_recommend($recommend_type, $cat_id)
{
//检查分类是否为首页推荐
if (!empty($recommend_type))
{
//取得之前的分类
$recommend_res = $GLOBALS['db']->getAll("SELECT recommend_type FROM " . $GLOBALS['ecs']->table("cat_recommend") . " WHERE cat_id=" . $cat_id);
if (empty($recommend_res))
{
foreach($recommend_type as $data)
{
$data = intval($data);
$GLOBALS['db']->query("INSERT INTO " . $GLOBALS['ecs']->table("cat_recommend") . "(cat_id, recommend_type) VALUES ('$cat_id', '$data')");
}
}
else
{
$old_data = array();
foreach($recommend_res as $data)
{
$old_data[] = $data['recommend_type'];
}
$delete_array = array_diff($old_data, $recommend_type);
if (!empty($delete_array))
{
$GLOBALS['db']->query("DELETE FROM " . $GLOBALS['ecs']->table("cat_recommend") . " WHERE cat_id=$cat_id AND recommend_type " . db_create_in($delete_array));
}
$insert_array = array_diff($recommend_type, $old_data);
if (!empty($insert_array))
{
foreach($insert_array as $data)
{
$data = intval($data);
$GLOBALS['db']->query("INSERT INTO " . $GLOBALS['ecs']->table("cat_recommend") . "(cat_id, recommend_type) VALUES ('$cat_id', '$data')");
}
}
}
}
else
{
$GLOBALS['db']->query("DELETE FROM ". $GLOBALS['ecs']->table("cat_recommend") . " WHERE cat_id=" . $cat_id);
}
}
?>