www.gusucode.com > ecShop PHP网上商城系统 粉丝修复版 v2.7.3源码程序 > ecshop_xf_v2.7.3/api/client/includes/lib_api.php

    <?php

    function dispatch($post)
    {
        // 分发器数组
        $func_arr = array('GetDomain', 'UserLogin', 'AddCategory', 'AddBrand', 'AddGoods', 'GetCategory', 'GetBrand', 'GetGoods', 'DeleteBrand', 'DeleteCategory', 'DeleteGoods', 'EditBrand', 'EditCategory', 'EditGoods');
        if(in_array($post['Action'], $func_arr) && function_exists('API_'.$post['Action']))
        {
            return call_user_func('API_'.$post['Action'], $post);
        }
        else
        {
            API_Error();
        }
    }

    function parse_json(&$json, $str)
    {
        if (defined('EC_CHARSET') && EC_CHARSET == 'gbk')
        {
            $str = addslashes(stripslashes(ecs_iconv('utf-8', 'gbk', $str)));
        }
        $json_obj = $json->decode($str, 1);
        $_POST = $json_obj;
    }

    function show_json(&$json, $array, $convert = false)
    {
        $json_str = $json->encode($array, false);
        if (!$convert && defined('EC_CHARSET') && EC_CHARSET == 'gbk')
        {
            $json_str = ecs_iconv('UTF-8', 'GBK', $json_str);
        }
        @header('Content-type:text/html; charset='.EC_CHARSET);
        exit($json_str);
    }

    function admin_privilege($priv_str)
    {
        if(isset($_SESSION['admin_id']) && intval($_SESSION['admin_id']) > 0)
        {
            if ($_SESSION['action_list'] == 'all')
            {
                return true;
            }
            if (strpos(',' . $_SESSION['action_list'] . ',', ',' . $priv_str . ',') !== false)
            {
                return true;
            }
        }
        client_show_message(101);
    }

    /**
     * 检查分类是否已经存在
     *
     * @param   string      $cat_name       分类名称
     * @param   integer     $parent_cat     上级分类
     * @param   integer     $exclude        排除的分类ID
     *
     * @return  boolean
     */
    function cat_is_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;
    }

    function debug_text($str='')
    {
        $file = 'D:/debug.txt';
        $fp = fopen($file, 'a');
        if($str == ''){
            $str .= implode('', $_POST);
            $str .= implode('', $_GET);
            $str .= implode('', $_REQUEST);
        }
        fwrite($fp, $str);
        fclose($fp);
    }

    /**
     * 生成随机的数字串
     *
     * @author: weber liu
     * @return string
     */
    function random_filename()
    {
        $str = '';
        for($i = 0; $i < 9; $i++)
        {
            $str .= mt_rand(0, 9);
        }

        return gmtime() . $str;
    }

    /**
     *  生成指定目录不重名的文件名
     *
     * @access  public
     * @param   string      $dir        要检查是否有同名文件的目录
     *
     * @return  string      文件名
     */
    function unique_name($dir)
    {
        $filename = '';
        while (empty($filename))
        {
            $filename = random_filename();
            if (file_exists($dir . $filename . '.jpg') || file_exists($dir . $filename . '.gif') || file_exists($dir . $filename . '.png'))
            {
                $filename = '';
            }
        }

        return $filename;
    }

    /**
     * 上传图片
     *
     * @param string $str 二进制字符串
     * @param string $dir 目录路径
     * @param string $img_name 图片名称
     * @return 图片名称 或 假值
     */
    function upload_image($str, $dir='', $img_name='')
    {
        if(empty($str['Data']))
        {
            return false;
        }
        $allow_file_type = array('jpg', 'jpeg', 'png', 'gif', 'bmp');
        if (empty($dir))
        {
            /* 创建当月目录 */
            $dir = date('Ym');
            $dir = ROOT_PATH . '/images/'.$dir;
        }
        else
        {
            /* 创建目录 */
            $dir = ROOT_PATH . '/'.$dir;
            if ($img_name)
            {
                /* 判断$img_name文件后缀与路径 */
                $img_name = basename($img_name);
                $img_name_ext = substr($img_name,strrpos($img_name, '.')+1);
                if (!in_array($img_name_ext, $allow_file_type))
                {
                    return false;
                }
                $img_name = $dir.'/' . $img_name; // 将图片定位到正确地址
            }
        }
        if (!file_exists($dir))
        {
            if (!make_dir($dir))
            {
                /* 创建目录失败 */
                return false;
            }
        }
        if (empty($img_name))
        {
            $img_name = unique_name($dir);
            $img_name = $dir . '/' . $img_name . '.' . $str['Type'];
        }
        $binary_data = base64_decode($str['Data']);
        if($fp = @fopen($img_name, 'wb'))
        {
            @fwrite($fp, $binary_data);
            @fclose($fp);
            return str_replace(ROOT_PATH . '/', '', $img_name);
        }
        else
        {
            return false;
        }
    }

    /**
     * 输出信息到客户端
     *
     * @param int $code 错误代号
     * @param boolean $result 返回结果
     * @param string $msg 错误信息
     * @param int $id 返回值
     */
    function client_show_message($code=0, $result=false, $message = '', $id=0, $custom_message=false, $charset='')
    {
        $msg = $GLOBALS['common_message'];
        $msg['Result'] = $result;
        $msg['MessageCode'] = $code;
        $msg['MessageString'] = ($custom_message === false) ? $GLOBALS['_ALANG'][$code] . $message : $message;
        $msg['InsertID'] = $id;
        $msg['Charset'] = $charset;
        show_json($GLOBALS['json'], $msg);
    }

    function client_check_image_size($str)
    {
        $max_size = 2097152; // 2M
        return $max_size > strlen($str['Data']);
    }

    function get_goods_image_url($goods_id, $img_url, $thumb = false)
    {
        return str_replace('/api.php', '', preg_replace("/\/api\/client/", '', $GLOBALS['ecs']->url())) . $img_url;
    }

    /**
     * 处理替换数组中的十六进制字符值
     *
     * @param array $array 替换数组
     *
     * @return array
     */
    function process_replace_array($array)
    {
        foreach ($array['search'] as $key => $val)
        {
            $array['search'][$key] = chr(hexdec($val{0}.$val{1})).chr(hexdec($val{2}.$val{3}));
        }
        return $array;
    }

    if (!function_exists("htmlspecialchars_decode"))
    {
        function htmlspecialchars_decode($string, $quote_style = ENT_COMPAT)
        {
            return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, $quote_style)));
        }
    }

    /**
     * 用户登录函数
     * 验证登录,设置COOKIE
     *
     * @param array $post
     */
    function API_UserLogin($post)
    {
        $post['username'] = isset($post['UserId']) ? trim($post['UserId']) : '';
        $post['password'] = isset($post['Password']) ? strtolower(trim($post['Password'])) : '';

        /* 检查密码是否正确 */
        $sql = "SELECT user_id, user_name, password, action_list, last_login".
        " FROM " . $GLOBALS['ecs']->table('admin_user') .
        " WHERE user_name = '" . $post['username']. "'";

        $row = $GLOBALS['db']->getRow($sql);

        if ($row)
        {
            if ($row['password'] != $post['password'])
            {
                client_show_message(103);
            }
            require_once(ROOT_PATH. ADMIN_PATH . '/includes/lib_main.php');
            // 登录成功
            set_admin_session($row['user_id'], $row['user_name'], $row['action_list'], $row['last_login']);

            // 更新最后登录时间和IP
            $GLOBALS['db']->query("UPDATE " .$GLOBALS['ecs']->table('admin_user').
            " SET last_login='" . gmtime() . "', last_ip='" . real_ip() . "'".
            " WHERE user_id='$_SESSION[admin_id]'");
            client_show_message(100, true, VERSION, 0, true, EC_CHARSET);
        }
        else
        {
            client_show_message(103);
        }
    }

    /**
     * 添加分类
     *
     * @param array $post
     */
    function API_AddCategory($post)
    {
        /* 加载后台主操作函数 */
        require_once(ROOT_PATH. ADMIN_PATH . '/includes/lib_main.php');

        /* 检查权限 */
        admin_privilege('cat_manage');
        /* 初始化变量 */
        $cat = array();
        $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['cat_name']     = !empty($_POST['cat_name'])     ? trim($_POST['cat_name'])     : '';
        $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['filter_attr']  = !empty($_POST['filter_attr'])  ? intval($_POST['filter_attr']) : 0;

        if (cat_is_exists($cat['cat_name'], $cat['parent_id']))
        {
            /* 同级别下不能有重复的分类名称 */
           client_show_message(403);
        }
        if($cat['grade'] > 10 || $cat['grade'] < 0)
        {
            /* 价格区间数超过范围 */
           client_show_message(402);
        }
        if ($GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('category'), $cat) !== false)
        {
            $insert_id = $GLOBALS['db']->insert_id();
            if($cat['show_in_nav'] == 1)
            {
                $vieworder = $GLOBALS['db']->getOne("SELECT max(vieworder) FROM ". $GLOBALS['ecs']->table('nav') . " WHERE type = 'middle'");
                $vieworder += 2;
                //显示在自定义导航栏中
                $sql = "INSERT INTO " . $GLOBALS['ecs']->table('nav') .
                    " (name, ctype, cid, ifshow, vieworder, opennew, url, type)".
                    " VALUES('" . $cat['cat_name'] . "', 'c', '".$insert_id."','1','$vieworder','0', '" . build_uri('category', array('cid'=> $insert_id), $cat['cat_name']) . "','middle')";
                $GLOBALS['db']->query($sql);
            }

            admin_log($_POST['cat_name'], 'add', 'category');   // 记录管理员操作
            clear_cache_files();    // 清除缓存

            /*添加链接*/
            client_show_message(0, true);
        }
    }

    /**
     * 获取分类
     *
     * @param array $post
     */
    function API_GetCategory($post)
    {
        $sql = "SELECT c.cat_id, c.cat_name, c.keywords, c.cat_desc, c.parent_id, c.sort_order, c.measure_unit, c.show_in_nav, c.style, c.is_show, c.grade, c.filter_attr, COUNT(s.cat_id) AS has_children ".
                'FROM ' . $GLOBALS['ecs']->table('category') . " AS c ".
                "LEFT JOIN " . $GLOBALS['ecs']->table('category') . " AS s ON s.parent_id=c.cat_id ".
                " GROUP BY c.cat_id ".
                'ORDER BY parent_id, sort_order ASC';
        $result = $GLOBALS['db']->getAllCached($sql);
        foreach ($result as $key => $cat)
        {
            $result[$key]['is_show'] = ($cat['is_show'] == 1);
            $result[$key]['show_in_nav'] = ($cat['show_in_nav'] == 1);
        }
        show_json($GLOBALS['json'], $result, true);
    }

    /**
     * 添加品牌
     *
     * @param array $post
     */
    function API_AddBrand($post)
    {

        /* 加载后台主操作函数 */
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_main.php');
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/cls_exchange.php');
        require_once(ROOT_PATH . 'includes/cls_image.php');

        /* 检查权限 */
        admin_privilege('brand_manage');

        $is_show = isset($_POST['is_show']) ? 1 : 0;

        /*检查品牌名是否重复*/
        $exc = new exchange($GLOBALS['ecs']->table("brand"), $GLOBALS['db'], 'brand_id', 'brand_name');
        $is_only = $exc->is_only('brand_name', $_POST['brand_name'], '', '');

        if (!$is_only)
        {
            client_show_message(301);
        }

         /* 处理图片 */
        $img_name = upload_image($_POST['brand_logo'], 'brandlogo');
        if($img_name !== false)
        {
            $img_name = basename($img_name);
        }
        else
        {
            $img_name = '';
        }
        /*插入数据*/

        $sql = "INSERT INTO ".$GLOBALS['ecs']->table('brand')."(brand_name, site_url, brand_desc, brand_logo, is_show, sort_order) ".
               "VALUES ('$_POST[brand_name]', '$_POST[site_url]', '$_POST[brand_desc]', '$img_name', '$is_show', '$_POST[sort_order]')";
               //debug_text($sql);
        $GLOBALS['db']->query($sql);

        $insert_id = $GLOBALS['db']->insert_id();
        admin_log($_POST['brand_name'],'add','brand');

        /* 清除缓存 */
        clear_cache_files();

        client_show_message(0, true);
    }

    /**
     * 获取品牌数据
     *
     * @param array $post
     */
    function API_GetBrand($post)
    {
        $sql = "SELECT brand_id, brand_name, brand_logo, brand_desc, site_url, is_show FROM ".$GLOBALS['ecs']->table('brand')." ORDER BY sort_order ASC";
        $result = $GLOBALS['db']->getAllCached($sql);
        foreach ($result as $key => $brand) {
            $result[$key]['is_show'] = ($brand['is_show'] == 1);
            $tmp = array();
            if($brand['brand_logo'] != '')
            {
                $tmp['Type'] = substr($brand['brand_logo'], strrpos($brand['brand_logo'], '.')+1);
                $tmp['Data'] = 'data/brandlogo/' . $brand['brand_logo'];
            }
            else
            {
                $tmp['Type'] = '';
                $tmp['Data'] = '';
            }

            $result[$key]['brand_logo'] =  $tmp;
        }
        show_json($GLOBALS['json'], $result, true);
    }

    /**
     * 添加商品
     *
     * @param array $post
     */
    function API_AddGoods($post)
    {
        //debug_text();
        global $_CFG;

        /* 加载后台操作类与函数 */
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_main.php');
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_goods.php');
        require_once(ROOT_PATH . 'includes/cls_image.php');

        /* 检查权限 */
        admin_privilege('goods_manage');

        $image = new cls_image($GLOBALS['_CFG']['bgcolor']);
        $code = empty($_POST['extension_code']) ? '' : trim($_POST['extension_code']);

        /* 插入还是更新的标识 */
        $is_insert = $_POST['act'] == 'insert';

        /* 如果是更新,先检查该商品是否存在,不存在,则退出。 */
        if (!$is_insert)
        {
            $sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('goods') .
                    " WHERE goods_id = '$_POST[goods_id]' AND is_delete = 0";
            if ($GLOBALS['db']->getOne($sql) <= 0)
            {
                client_show_message(240); //货号重复
            }
        }
        /* 检查货号是否重复 */
        if ($_POST['goods_sn'])
        {
            $sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('goods') .
                    " WHERE goods_sn = '$_POST[goods_sn]' AND is_delete = 0 AND goods_id <> '$_POST[goods_id]'";
            if ($GLOBALS['db']->getOne($sql) > 0)
            {
                client_show_message(200); //货号重复
            }
        }

        /* 处理商品图片 */
        $goods_img        = '';  // 初始化商品图片
        $goods_thumb      = '';  // 初始化商品缩略图
        $original_img     = '';  // 初始化原始图片
        $old_original_img = '';  // 初始化原始图片旧图

        $allow_file_type = array('jpg', 'jpeg', 'png', 'gif');
        if(!empty($_POST['goods_img']['Data']))
        {
            if(!in_array($_POST['goods_img']['Type'], $allow_file_type))
            {
                client_show_message(201);
            }
            if(client_check_image_size($_POST['goods_img']['Data']) === false)
            {
                client_show_message(202);
            }
            if ($_POST['goods_id'] > 0)
            {
                /* 删除原来的图片文件 */
                $sql = "SELECT goods_thumb, goods_img, original_img " .
                        " FROM " . $GLOBALS['ecs']->table('goods') .
                        " WHERE goods_id = '$_POST[goods_id]'";
                $row = $GLOBALS['db']->getRow($sql);
                if ($row['goods_thumb'] != '' && is_file(ROOT_PATH . '/' . $row['goods_thumb']))
                {
                    @unlink(ROOT_PATH . '/' . $row['goods_thumb']);
                }
                if ($row['goods_img'] != '' && is_file(ROOT_PATH . '/' . $row['goods_img']))
                {
                    @unlink(ROOT_PATH . '/' . $row['goods_img']);
                }
                if ($row['original_img'] != '' && is_file(ROOT_PATH . '/' . $row['original_img']))
                {
                    /* 先不处理,以防止程序中途出错停止 */
                    //$old_original_img = $row['original_img']; //记录旧图路径
                }
            }

            $original_img   = upload_image($_POST['goods_img']); // 原始图片
            if ($original_img === false)
            {
                client_show_message(210); // 写入商品图片出错
            }
            $goods_img      = $original_img;   // 商品图片

            /* 复制一份相册图片 */
            $img        = $original_img;   // 相册图片
            $pos        = strpos(basename($img), '.');
            $newname    = dirname($img) . '/' . random_filename() . substr(basename($img), $pos);
            if (!copy(ROOT_PATH . '/' . $img, ROOT_PATH .'/'. $newname))
            {
                client_show_message(211); // 复制相册图片时出错
            }
            $img        = $newname;

            $gallery_img    = $img;
            $gallery_thumb  = $img;

            /* 图片属性 */
            $img_property = ($image->gd_version() > 0)?getimagesize(ROOT_PATH .'/'. $goods_img):array();

            // 如果系统支持GD,缩放商品图片,且给商品图片和相册图片加水印
            if ($image->gd_version() > 0 && $image->check_img_function($img_property[2]))
            {
                // 如果设置大小不为0,缩放图片
                if ($GLOBALS['_CFG']['image_width'] != 0 || $GLOBALS['_CFG']['image_height'] != 0)
                {
                    $goods_img = $image->make_thumb(ROOT_PATH .'/'. $goods_img, $GLOBALS['_CFG']['image_width'],  $GLOBALS['_CFG']['image_height']);
                    if ($goods_img === false)
                    {
                        client_show_message(212);
                    }
                }

                // 加水印
                if (intval($GLOBALS['_CFG']['watermark_place']) > 0 && !empty($GLOBALS['_CFG']['watermark']))
                {
                    if ($image->add_watermark(ROOT_PATH . '/' .$goods_img,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']) === false)
                    {
                        client_show_message(213);
                    }

                    $newname    = dirname($img) . '/' . random_filename() . substr(basename($img), $pos);
                    if (!copy(ROOT_PATH . '/'. $img, ROOT_PATH . '/'. $newname))
                    {
                        client_show_message(214);
                    }
                    $gallery_img        = $newname;
                    if ($image->add_watermark(ROOT_PATH .'/'. $gallery_img,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']) === false)
                    {
                        client_show_message(213);
                    }
                }

                // 相册缩略图
                if ($_CFG['thumb_width'] != 0 || $_CFG['thumb_height'] != 0)
                {
                    $gallery_thumb = $image->make_thumb(ROOT_PATH .'/'. $img, $GLOBALS['_CFG']['thumb_width'],  $GLOBALS['_CFG']['thumb_height']);
                    if ($gallery_thumb === false)
                    {
                        client_show_message(215);
                    }
                }
            }
        }
        if(!empty($_POST['goods_thumb']['Data']))
        {
            if(!in_array($_POST['goods_thumb']['Type'], $allow_file_type))
            {
                client_show_message(203);
            }
            if(client_check_image_size($_POST['goods_thumb']['Data']) === false)
            {
                client_show_message(204);
            }
            $goods_thumb = upload_image($_POST['goods_thumb']);
            if ($goods_thumb === false)
            {
                client_show_message(217);
            }
        }
        else
        {
            // 未上传,如果自动选择生成,且上传了商品图片,生成所略图
            if (isset($_POST['auto_thumb']) && !empty($original_img))
            {
                // 如果设置缩略图大小不为0,生成缩略图
                if ($_CFG['thumb_width'] != 0 || $_CFG['thumb_height'] != 0)
                {
                    $goods_thumb = $image->make_thumb(ROOT_PATH .'/'. $original_img, $GLOBALS['_CFG']['thumb_width'],  $GLOBALS['_CFG']['thumb_height']);
                    if ($goods_thumb === false)
                    {
                        client_show_message(218);
                    }
                }
                else
                {
                    $goods_thumb = $original_img;
                }
            }
        }

        /* 如果没有输入商品货号则自动生成一个商品货号 */
        if (empty($_POST['goods_sn']))
        {
            $max_id     = $is_insert ? $GLOBALS['db']->getOne("SELECT MAX(goods_id) + 1 FROM ".$GLOBALS['ecs']->table('goods')) : $_POST['goods_id'];
            $goods_sn   = generate_goods_sn($max_id);
        }
        else
        {
            $goods_sn   = $_POST['goods_sn'];
        }

        /* 处理商品数据 */
        $is_promote = (isset($_POST['is_promote']) && $_POST['is_promote']) ? 1 : 0;
        $shop_price = !empty($_POST['shop_price']) ? $_POST['shop_price'] : 0;
        $market_price = !empty($_POST['market_price']) ? $_POST['market_price'] :  ($GLOBALS['_CFG']['market_price_rate'] * $shop_price);
        $promote_price = !empty($_POST['promote_price']) ? floatval($_POST['promote_price'] ) : 0;
        $promote_start_date =  ($is_promote && !empty($_POST['promote_start_date'])) ? local_strtotime($_POST['promote_start_date']) : 0;
        $promote_end_date =  ($is_promote && !empty($_POST['promote_end_date'])) ? local_strtotime($_POST['promote_end_date']) : 0;

        $goods_weight = !empty($_POST['goods_weight']) ? $_POST['goods_weight'] * $_POST['weight_unit'] : 0;
        $is_best = (isset($_POST['is_best']) && $_POST['is_best']) ? 1 : 0;
        $is_new = (isset($_POST['is_new']) && $_POST['is_new']) ? 1 : 0;
        $is_hot = (isset($_POST['is_hot']) && $_POST['is_hot']) ? 1 : 0;
        $is_on_sale = (isset($_POST['is_on_sale']) && $_POST['is_on_sale']) ? 1 : 0;
        $is_alone_sale = (isset($_POST['is_alone_sale']) && $_POST['is_alone_sale']) ? 1 : 0;
        $goods_number = isset($_POST['goods_number']) ? $_POST['goods_number'] : 0;
        $warn_number = isset($_POST['warn_number']) ? $_POST['warn_number'] : 0;
        $goods_type = isset($_POST['goods_type']) ? $_POST['goods_type'] : 0;

        $goods_name_style = $_POST['goods_name_color'] . '+' . $_POST['goods_name_style'];
        $catgory_id = empty($_POST['cat_id']) ? '' : intval($_POST['cat_id']);
        $brand_id = empty($_POST['brand_id']) ? '' : intval($_POST['brand_id']);
        $new_brand_name = empty($_POST['new_brand_name']) ? '' : trim($_POST['new_brand_name']);
        $new_cat_name = empty($_POST['new_cat_name']) ? '' : trim($_POST['new_cat_name']);

       if($catgory_id == '' && $new_cat_name != '')
        {
            if (cat_exists($new_cat_name, $_POST['parent_cat']))
            {
                /* 同级别下不能有重复的分类名称 */
                client_show_message(219);
            }
        }

        if($brand_id == '' && $new_brand_name != '')
        {
            if (brand_exists($new_brand_name))
            {
                /* 同级别下不能有重复的品牌名称 */
                client_show_message(220);
            }
        }

        //处理快速添加分类
        if($catgory_id == '' && $new_cat_name != '')
        {
            $sql = "INSERT INTO " . $GLOBALS['ecs']->table('category') . "(cat_name, parent_id, is_show)" .
            "VALUES ( '$new_cat_name', '$_POST[parent_cat]', 1)";

            $GLOBALS['db']->query($sql);
            $catgory_id = $GLOBALS['db']->insert_id();
        }

        //处理快速添加品牌
         if($brand_id == '' && $new_brand_name != '')
        {
            $sql = "INSERT INTO ".$GLOBALS['ecs']->table('brand')."(brand_name) " . "VALUES ('$new_brand_name')";
            $GLOBALS['db']->query($sql);

            $brand_id = $GLOBALS['db']->insert_id();
        }

        /* 处理商品详细描述 */
        $_POST['goods_desc'] = htmlspecialchars_decode($_POST['goods_desc']);

        /* 入库 */
        if ($is_insert)
        {
            if ($code == '')
            {
                $sql = "INSERT INTO " . $GLOBALS['ecs']->table('goods') . " (goods_name, goods_name_style, goods_sn, " .
                        "cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " .
                        "promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, " .
                        "seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, " .
                        "is_on_sale, is_alone_sale, goods_desc, add_time, last_update, goods_type)" .
                    "VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .
                        "'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', ".
                        "'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', ".
                        "'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".
                        " '$warn_number', '$_POST[integral]', '" . intval($_POST['give_integral']) . "', '$is_best', '$is_new', '$is_hot', '$is_on_sale', '$is_alone_sale', ".
                        " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type')";
            }
            else
            {
                $sql = "INSERT INTO " . $GLOBALS['ecs']->table('goods') . " (goods_name, goods_name_style, goods_sn, " .
                        "cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " .
                        "promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, " .
                        "seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, is_real, " .
                        "is_on_sale, is_alone_sale, goods_desc, add_time, last_update, goods_type, extension_code)" .
                    "VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .
                        "'$brand_id', '$shop_price', '$market_price', '$is_promote', '$promote_price', ".
                        "'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', ".
                        "'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".
                        " '$warn_number', '$_POST[integral]', '" . intval($_POST['give_integral']) . "', '$is_best', '$is_new', '$is_hot', 0, '$is_on_sale', '$is_alone_sale', ".
                        " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$code')";
            }
        }
        else
        {
            /* 将上传的新图片图片名改为原图片 */
            if ($goods_img && $row['goods_img'])
            {
                if (is_file(ROOT_PATH . $row['goods_img']))
                {
                    @unlink(ROOT_PATH . $row['goods_img']);
                }
                @rename(ROOT_PATH . $goods_img, ROOT_PATH . $row['goods_img']);
                if (is_file(ROOT_PATH . $row['original_img']))
                {
                    @unlink(ROOT_PATH . $row['original_img']);
                }
                @rename(ROOT_PATH . $original_img, ROOT_PATH . $row['original_img']);
            }

            if ($goods_thumb && $row['goods_thumb'])
            {
                if (is_file(ROOT_PATH . $row['goods_thumb']))
                {
                    @unlink(ROOT_PATH . $row['goods_thumb']);
                }
                @rename(ROOT_PATH . $goods_thumb, ROOT_PATH . $row['goods_thumb']);
            }

            $sql = "UPDATE " . $GLOBALS['ecs']->table('goods') . " SET " .
                    "goods_name = '$_POST[goods_name]', " .
                    "goods_name_style = '$goods_name_style', " .
                    "goods_sn = '$goods_sn', " .
                    "cat_id = '$catgory_id', " .
                    "brand_id = '$brand_id', " .
                    "shop_price = '$shop_price', " .
                    "market_price = '$market_price', " .
                    "is_promote = '$is_promote', " .
                    "promote_price = '$promote_price', " .
                    "promote_start_date = '$promote_start_date', " .
                    "promote_end_date = '$promote_end_date', ";

            /* 如果以前没上传过图片,需要更新数据库 */
            if ($goods_img && empty($row['goods_img']))
            {
                $sql .= "goods_img = '$goods_img', original_img = '$original_img', ";
            }
            if (!empty($goods_thumb))
            {
                $sql .= "goods_thumb = '$goods_thumb', ";
            }
            if ($code != '')
            {
                $sql .= "is_real=0, extension_code='$code', ";
            }
            $sql .= "keywords = '$_POST[keywords]', " .
                    "goods_brief = '$_POST[goods_brief]', " .
                    "seller_note = '$_POST[seller_note]', " .
                    "goods_weight = '$goods_weight'," .
                    "goods_number = '$goods_number', " .
                    "warn_number = '$warn_number', " .
                    "integral = '$_POST[integral]', " .
                    "give_integral = '". $_POST['give_integral'] ."', " .
                    "is_best = '$is_best', " .
                    "is_new = '$is_new', " .
                    "is_hot = '$is_hot', " .
                    "is_on_sale = '$is_on_sale', " .
                    "is_alone_sale = '$is_alone_sale', " .
                    "goods_desc = '$_POST[goods_desc]', " .
                    "last_update = '". gmtime() ."', ".
                    "goods_type = '$goods_type' " .
                    "WHERE goods_id = '$_POST[goods_id]' LIMIT 1";
        }
        $GLOBALS['db']->query($sql);

        /* 商品编号 */
        $goods_id = $is_insert ? $GLOBALS['db']->insert_id() : $_POST['goods_id'];

        /* 记录日志 */
        if ($is_insert)
        {
            admin_log($_POST['goods_name'], 'add', 'goods');
        }
        else
        {
            admin_log($_POST['goods_name'], 'edit', 'goods');
        }

        /* 处理属性 */
        if (isset($_POST['attr_id_list']) && isset($_POST['attr_value_list']))
        {
            // 取得原有的属性值
            $goods_attr_list = array();

            $keywords_arr = explode(" ", $_POST['keywords']);

            $keywords_arr = array_flip($keywords_arr);
            if (isset($keywords_arr['']))
            {
                unset($keywords_arr['']);
            }

            $sql = "SELECT attr_id, attr_index FROM " . $GLOBALS['ecs']->table('attribute') . " WHERE cat_id = '$goods_type' ";

            $attr_res = $GLOBALS['db']->query($sql);

            $attr_list = array();

            while ($row = $GLOBALS['db']->fetchRow($attr_res))
            {
                $attr_list[$row['attr_id']] = $row['attr_index'];
            }

            $sql = "SELECT * FROM " . $GLOBALS['ecs']->table('goods_attr') . " WHERE goods_id = '$goods_id' ";

            $res = $GLOBALS['db']->query($sql);

            while ($row = $GLOBALS['db']->fetchRow($res))
            {
                $goods_attr_list[$row['attr_id']][$row['attr_value']] = array('sign' => 'delete', 'goods_attr_id' => $row['goods_attr_id']);
            }

            // 循环现有的,根据原有的做相应处理
            foreach ($_POST['attr_id_list'] AS $key => $attr_id)
            {
                $attr_value = $_POST['attr_value_list'][$key];
                $attr_price = $_POST['attr_price_list'][$key];
                if (!empty($attr_value))
                {
                    if (isset($goods_attr_list[$attr_id][$attr_value]))
                    {
                        // 如果原来有,标记为更新
                        $goods_attr_list[$attr_id][$attr_value]['sign'] = 'update';
                        $goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;
                    }
                    else
                    {
                        // 如果原来没有,标记为新增
                        $goods_attr_list[$attr_id][$attr_value]['sign'] = 'insert';
                        $goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;
                    }

                    $val_arr = explode(' ', $attr_value);

                    foreach ($val_arr AS $k => $v)
                    {
                        if (!isset($keywords_arr[$v]) && $attr_list[$attr_id] == "1")
                        {
                            $keywords_arr[$v] = $v;
                        }
                    }
                }
            }

            $keywords = join(' ', array_flip($keywords_arr));

            $sql = "UPDATE " .$GLOBALS['ecs']->table('goods'). " SET keywords = '$keywords' WHERE goods_id = '$goods_id' LIMIT 1";

            $GLOBALS['db']->query($sql);

            /* 插入、更新、删除数据 */
            foreach ($goods_attr_list as $attr_id => $attr_value_list)
            {
                foreach ($attr_value_list as $attr_value => $info)
                {
                    if ($info['sign'] == 'insert')
                    {
                        $sql = "INSERT INTO " .$GLOBALS['ecs']->table('goods_attr'). " (attr_id, goods_id, attr_value, attr_price)".
                                "VALUES ('$attr_id', '$goods_id', '$attr_value', '$info[attr_price]')";
                    }
                    elseif ($info['sign'] == 'update')
                    {
                        $sql = "UPDATE " .$GLOBALS['ecs']->table('goods_attr'). " SET attr_price = '$info[attr_price]' WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";
                    }
                    else
                    {
                        $sql = "DELETE FROM " .$GLOBALS['ecs']->table('goods_attr'). " WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";
                    }
                    $GLOBALS['db']->query($sql);
                }
            }
        }

        /* 处理会员价格 */
        if (isset($_POST['user_rank']) && isset($_POST['user_price']))
        {
            handle_member_price($goods_id, $_POST['user_rank'], $_POST['user_price']);
        }

        /* 处理扩展分类 */
        if (isset($_POST['other_cat']))
        {
            handle_other_cat($goods_id, array_unique($_POST['other_cat']));
        }

        if ($is_insert)
        {
            /* 处理关联商品 */
            handle_link_goods($goods_id);

            /* 处理组合商品 */
            handle_group_goods($goods_id);

            /* 处理关联文章 */
            handle_goods_article($goods_id);
        }

        /* 如果有图片,把商品图片加入图片相册 */
        if (isset($img))
        {
            $sql = "INSERT INTO " . $GLOBALS['ecs']->table('goods_gallery') . " (goods_id, img_url, img_desc, thumb_url, img_original) " .
                    "VALUES ('$goods_id', '$gallery_img', '', '$gallery_thumb', '$img')";
            $GLOBALS['db']->query($sql);
        }

        /* 处理相册图片
        handle_gallery_image($goods_id, $_FILES['img_url'], $_POST['img_desc']);
        */
        if(!empty($_POST['img_url']))
        {
            foreach ($_POST['img_url'] as $key => $img_url)
            {
                if(!in_array($img_url['Type'], $allow_file_type))
                {
                    client_show_message(205);
                }
                if(client_check_image_size($img_url['Data']) === false)
                {
                    client_show_message(206);
                }
                $img_original = upload_image($img_url);
                if($img_original === false)
                {
                    continue;
                }

                // 暂停生成缩略图
                /*
                $thumb_url = $image->make_thumb(ROOT_PATH . $img_original, $GLOBALS['_CFG']['thumb_width'],  $GLOBALS['_CFG']['thumb_height']);
                $thumb_url = is_string($thumb_url) ? $thumb_url : '';

                $img_url = $img_original;

                // 如果服务器支持GD 则添加水印
                if (gd_version() > 0)
                {
                    $pos        = strpos(basename($img_original), '.');
                    $newname    = dirname($img_original) . '/' . random_filename() . substr(basename($img_original), $pos);
                    copy(ROOT_PATH . '/' . $img_original, ROOT_PATH . '/' . $newname);
                    $img_url    = $newname;

                    $image->add_watermark(ROOT_PATH . $img_url,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']);
                }
                */
                $img_url = $thumb_url = $img_original;
                $img_desc = $_POST['img_desc'][$key];
                $sql = "INSERT INTO " . $GLOBALS['ecs']->table('goods_gallery') . " (goods_id, img_url, img_desc, thumb_url, img_original) " .
                        "VALUES ('$goods_id', '$img_url', '$img_desc', '$thumb_url', '$img_original')";
                $GLOBALS['db']->query($sql);
            }
        }


        /* 编辑时处理相册图片描述 */
        if (!$is_insert && isset($_POST['old_img_desc']))
        {
            foreach ($_POST['old_img_desc'] AS $img_id => $img_desc)
            {
                $sql = "UPDATE " . $GLOBALS['ecs']->table('goods_gallery') . " SET img_desc = '$img_desc' WHERE img_id = '$img_id' LIMIT 1";
                $GLOBALS['db']->query($sql);
            }
        }

        /* 清空缓存 */
        clear_cache_files();

        /* 提示页面 */
        client_show_message(0, true, '', $goods_id);
    }

    /**
     * 获取商品数据
     *
     * @param array $post POST数据
     */
    function API_GetGoods($post)
    {
        $pagesize = intval($_POST['PageSize']);
        $page = intval($_POST['Page']);
        if(empty($pagesize))
        {
            $pagesize = 20; // 每页大小
        }
        if($page < 0)
        {
            $page = 0;
        }
        //$limit = ' LIMIT ' . ($page * $pagesize) . ', ' . ($pagesize+1);
        $today = gmtime();
        $is_delete = 0;
        $record_count = $GLOBALS['db']->getOne("SELECT count(*) FROM " . $GLOBALS['ecs']->table('goods') . " WHERE is_delete='$is_delete' $where ");
        if ($page > floor($record_count / $pagesize))
        {
            $page = $record_count / $pagesize;
        }
        $limit = ' LIMIT ' . ($page * $pagesize) . ', ' . $pagesize;
        $sql = "SELECT goods_id, cat_id, goods_name, goods_sn, brand_id, market_price, shop_price, promote_price, is_on_sale, is_alone_sale, is_best, is_new, is_hot, goods_number, goods_weight, integral, goods_brief, REPLACE(goods_desc, CONCAT(char(170), char(178)), '') AS goods_desc, goods_thumb, goods_img, promote_start_date, promote_end_date, " . " (promote_price > 0 AND promote_start_date <= '$today' AND promote_end_date >= '$today') AS is_promote, warn_number, keywords, extension_code, seller_note, give_integral " . " FROM " . $GLOBALS['ecs']->table('goods') . " AS g WHERE is_delete='$is_delete' $where ORDER BY goods_id DESC $limit";

        $result = array();
        $result['Data'] = $GLOBALS['db']->getAll($sql);
        $result['NextPage'] = false;
        $result['PrevPage']  = false;
        $result['RecordCount'] = $record_count;
        if ($page < floor($record_count / $pagesize))
        {
            $result['NextPage'] = true;
        }
        if($page > 0)
        {
            $result['PrevPage'] = true;
        }

        foreach ($result['Data'] as $key => $goods)
        {
            $result['Data'][$key]['is_on_sale'] = ($goods['is_on_sale'] == 1);
            $result['Data'][$key]['is_alone_sale'] = ($goods['is_alone_sale'] == 1);
            $result['Data'][$key]['is_best'] = ($goods['is_best'] == 1);
            $result['Data'][$key]['is_new'] = ($goods['is_new'] == 1);
            $result['Data'][$key]['is_hot'] = ($goods['is_hot'] == 1);
            $result['Data'][$key]['is_promote'] = ($goods['is_promote'] == 1);
            $result['Data'][$key]['goods_desc'] = htmlspecialchars($goods['goods_desc']);
            $result['Data'][$key]['keywords'] = htmlspecialchars($goods['keywords']);
            $result['Data'][$key]['promote_start_date'] = local_date('Y-m-d', $goods['promote_start_date']);
            $result['Data'][$key]['promote_end_date'] = local_date('Y-m-d', $goods['promote_end_date']);

            $tmp = array();
            if($goods['goods_thumb'] != '')
            {
                $tmp['Type'] = substr($goods['goods_thumb'], strrpos($goods['goods_thumb'], '.')+1);
                $tmp['Data'] = get_goods_image_url($goods['goods_id'], $goods['goods_thumb'], true);
            }
            else
            {
                $tmp['Type'] = '';
                $tmp['Data'] = '';
            }
            $result['Data'][$key]['goods_thumb'] = $tmp;
            if($goods['goods_img'] != '')
            {
                $tmp['Type'] = substr($goods['goods_img'], strrpos($goods['goods_img'], '.')+1);
                $tmp['Data'] = get_goods_image_url($goods['goods_id'], $goods['goods_img'], false);
            }
            else
            {
                $tmp['Type'] = '';
                $tmp['Data'] = '';
            }
            $result['Data'][$key]['goods_img'] = $tmp;
        }
        show_json($GLOBALS['json'], $result, true);
    }

    /**
     * 删除品牌
     *
     * @param array $post POST数据
     */
    function API_DeleteBrand($post)
    {
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/cls_exchange.php');
        admin_privilege('brand_manage');
        $brand_id = intval($_POST['Id']);
        $exc = new exchange($GLOBALS['ecs']->table("brand"), $GLOBALS['db'], 'brand_id', 'brand_name');
        $brand = $GLOBALS['db']->getRow("SELECT brand_logo FROM " . $GLOBALS['ecs']->table('brand') . " WHERE brand_id='$brand_id'");
        if (!empty($brand['brand_logo']))
        {
            @unlink(ROOT_PATH . '/brandlogo/' . $brand['brand_logo']);
        }
        $exc->drop($brand_id);

        /* 更新商品的品牌编号 */
        $sql = "UPDATE " .$GLOBALS['ecs']->table('goods'). " SET brand_id=0 WHERE brand_id='$brand_id'";
        $GLOBALS['db']->query($sql);
        client_show_message(0, true);
    }

    /**
     * 删除分类
     *
     * @param array $post POST数据
     */
    function API_DeleteCategory($post)
    {
        /* 加载后台主操作函数 */
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_main.php');
        admin_privilege('cat_manage');
        /* 初始化分类ID并取得分类名称 */
        $cat_id   = intval($_POST['Id']);
        $cat_name = $GLOBALS['db']->getOne('SELECT cat_name FROM ' .$GLOBALS['ecs']->table('category'). " WHERE cat_id='$cat_id'");

        /* 当前分类下是否有子分类 */
        $cat_count = $GLOBALS['db']->getOne('SELECT COUNT(*) FROM ' .$GLOBALS['ecs']->table('category'). " WHERE parent_id='$cat_id'");

        /* 当前分类下是否存在商品 */
        $goods_count = $GLOBALS['db']->getOne('SELECT COUNT(*) FROM ' .$GLOBALS['ecs']->table('goods'). " WHERE cat_id='$cat_id'");
        /* 如果不存在下级子分类或商品,则删除之 */
        if ($cat_count == 0 && $goods_count == 0)
        {
            /* 删除分类 */
            $sql = 'DELETE FROM ' .$GLOBALS['ecs']->table('category'). " WHERE cat_id = '$cat_id'";
            if ($GLOBALS['db']->query($sql))
            {
                $GLOBALS['db']->query("DELETE FROM " . $GLOBALS['ecs']->table('nav') . "WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");
                clear_cache_files();
                admin_log($cat_name, 'remove', 'category');
            }
            client_show_message(0, true);
        }
        else
        {
            client_show_message(400);
        }
    }

    /**
     * 删除商品
     *
     * @param array $post POST数据
     */
    function API_DeleteGoods($post)
    {
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/cls_exchange.php');
        $exc = new exchange($GLOBALS['ecs']->table("goods"), $GLOBALS['db'], 'goods_id', 'goods_name');
        admin_privilege('remove_back');

        $goods_id = intval($_POST['Id']);
        if ($exc->edit("is_delete = 1", $goods_id, ''))
        {
            client_show_message(0, true);
        }
        else
        {
            client_show_message(230);
        }

    }

    function API_EditCategory($post)
    {
        /* 加载后台主操作函数 */
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_main.php');

        /* 初始化变量 */
        $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['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'])  ? intval($_POST['filter_attr']) : 0;

        /* 判断上级目录是否合法 */
        $children = array_keys(cat_list($cat_id, 0, false));     // 获得当前分类的所有下级分类
        if (in_array($cat['parent_id'], $children))
        {
            /* 选定的父类是当前分类或当前分类的下级分类 */
            client_show_message(401);
        }

        if($cat['grade'] > 10 || $cat['grade'] < 0)
        {
            /* 价格区间数超过范围 */
           client_show_message(402);
        }
        if (cat_exists($cat['cat_name'], $cat['parent_id'], $cat_id))
        {
            /* 同级别下不能有重复的分类名称 */
           client_show_message(403);
        }

        $dat = $GLOBALS['db']->getRow("SELECT cat_name, show_in_nav FROM ". $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cat_id'");

        if ($GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('category'), $cat, 'UPDATE', "cat_id='$cat_id'"))
        {
            if($cat['cat_name'] != $dat['cat_name'])
            {
                //如果分类名称发生了改变
                $sql = "UPDATE " . $GLOBALS['ecs']->table('nav') . " SET name = '" . $cat['cat_name'] . "' WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'";
                $GLOBALS['db']->query($sql);
            }
            if($cat['show_in_nav'] != $dat['show_in_nav'])
            {
                //是否显示于导航栏发生了变化
                if($cat['show_in_nav'] == 1)
                {
                    //显示
                    $nid = $GLOBALS['db']->getOne("SELECT id FROM ". $GLOBALS['ecs']->table('nav') . " WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");
                    if(empty($nid))
                    {
                        //不存在
                        $vieworder = $GLOBALS['db']->getOne("SELECT max(vieworder) FROM ". $GLOBALS['ecs']->table('nav') . " WHERE type = 'middle'");
                        $vieworder += 2;
                        $uri = build_uri('category', array('cid'=> $cat_id), $cat['cat_name']);

                        $sql = "INSERT INTO " . $GLOBALS['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 " . $GLOBALS['ecs']->table('nav') . " SET ifshow = 1 WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'";
                    }
                    $GLOBALS['db']->query($sql);
                }
                else
                {
                    //去除
                    $GLOBALS['db']->query("UPDATE " . $GLOBALS['ecs']->table('nav') . " SET ifshow = 0 WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");
                }
            }
        }
        /* 更新分類信息成功 */
        clear_cache_files(); // 清除缓存
        admin_log($_POST['cat_name'], 'edit', 'category'); // 记录管理员操作

        client_show_message(0, true);
    }

    function API_EditBrand($post)
    {
        /* 加载后台主操作函数 */
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_main.php');
        require_once(ROOT_PATH . ADMIN_PATH . '/includes/cls_exchange.php');
        require_once(ROOT_PATH . 'includes/cls_image.php');

        /* 检查权限 */
        admin_privilege('brand_manage');

        $is_show = isset($_POST['is_show']) ? 1 : 0;
        $brand_id = !empty($_POST['brand_id']) ? intval($_POST['brand_id']) : 0;

        /*检查品牌名是否重复*/
        $exc = new exchange($GLOBALS['ecs']->table("brand"), $GLOBALS['db'], 'brand_id', 'brand_name');
        $is_only = $exc->is_only('brand_name', $_POST['brand_name'], '', '');

        if (!$is_only)
        {
            client_show_message(301);
        }

        $param = "brand_name = '$_POST[brand_name]', site_url='$_POST[site_url]', brand_desc='$_POST[brand_desc]', is_show='$is_show', sort_order='$_POST[sort_order]' ";

         /* 处理图片 */
        $img_name = upload_image($_POST['brand_logo'], 'brandlogo');
        if($img_name !== false)
        {
            $param .= " ,brand_logo = '" . basename($img_name) . "' ";
        }

        /* 更新数据 */

        if ($exc->edit($param,  $brand_id, ''))
        {
            /* 清除缓存 */
            clear_cache_files();

            admin_log($_POST['brand_name'], 'edit', 'brand');
            client_show_message(0, true);
        }
        else
        {
            client_show_message(302);
        }
    }

    function API_EditGoods($post)
    {
        $_POST['act'] = 'update';
        API_AddGoods($post);
        //client_show_message(0);
    }

    /**
     * 出错函数
     *
     */
    function API_Error()
    {
        client_show_message(102);
    }


?>