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.

1418 lines
55 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
define('IN_ASC', true);
require(dirname(__FILE__) . '/includes/init.php');
require_once(ROOT_PATH . '/includes/lib_order.php');
/*------------------------------------------------------ */
//-- 框架
/*------------------------------------------------------ */
if ($_REQUEST['act'] == '')
{
// menu
$menus=get_menu();
$smarty->assign('menus', $menus);
$smarty->assign('action', 'menu');
$smarty->assign('shop_url', urlencode($ecs->url()));
$smarty->display('index.htm');
}
/*------------------------------------------------------ */
//-- 頂部框架的內容
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'top')
{
// 獲得管理員設置的菜單
$lst = array();
$nav = $db->GetOne('SELECT nav_list FROM ' . $ecs->table('admin_user') . " WHERE user_id = '" . $_SESSION['admin_id'] . "'");
if (!empty($nav))
{
$arr = explode(',', $nav);
foreach ($arr AS $val)
{
$tmp = explode('|', $val);
$lst[$tmp[1]] = $tmp[0];
}
}
// 獲得管理員設置的菜單
// 獲得管理員ID
$smarty->assign('send_mail_on',$_CFG['send_mail_on']);
$smarty->assign('nav_list', $lst);
$smarty->assign('admin_id', $_SESSION['admin_id']);
$smarty->assign('certi', $_CFG['certi']);
$sql = 'SELECT count(goods_id) FROM '.$GLOBALS['ecs']->table('goods').' WHERE is_delete = 0';
$goods_sum = $GLOBALS['db']->getOne($sql);
$smarty->assign('goods_sum', $goods_sum);
$sql = 'SELECT count(order_id) FROM '.$GLOBALS['ecs']->table('order_info');
$order_sum = $GLOBALS['db']->getOne($sql);
$smarty->assign('order_sum', $order_sum);
$sql = 'SELECT count(comment_id) FROM '.$GLOBALS['ecs']->table('comment');
$comment_sum = $GLOBALS['db']->getOne($sql);
$smarty->assign('comment_sum', $comment_sum);
$sql = 'SELECT count(ad_id) FROM '.$GLOBALS['ecs']->table('ad');
$ad_sum = $GLOBALS['db']->getOne($sql);
$smarty->assign('ad_sum', $ad_sum);
$smarty->display('top.htm');
}
/*------------------------------------------------------ */
//-- 計算器
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'calculator')
{
$smarty->display('calculator.htm');
}
/*------------------------------------------------------ */
//-- 左邊的框架
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'menu')
{
$menus=get_menu();
echo json_encode(['code'=>'200','data'=>$menus]);
exit;
// $smarty->assign('menus', $menus);
// $smarty->assign('no_help', $_LANG['no_help']);
// $smarty->assign('help_lang', $_CFG['lang']);
// $smarty->assign('charset', EC_CHARSET);
// $smarty->assign('admin_id', $_SESSION['admin_id']);
// $smarty->display('menu.htm');
}
/*------------------------------------------------------ */
//-- 清除緩存
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'clear_cache')
{
try{
clear_all_files();
}catch(Exception $e){
echo json_encode(['code'=>'500','message'=>'清理失敗,請重新執行']);
exit;
}
echo json_encode(['code'=>'200']);
exit;
}
/*------------------------------------------------------ */
//-- 主窗口,起始頁
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'main')
{
//開店嚮導第一步
if(isset($_SESSION['shop_guide']) && $_SESSION['shop_guide'] === true)
{
unset($_SESSION['shop_guide']);//銷燬session
ecs_header("Location: ./index.php?act=first\n");
exit();
}
$gd = gd_version();
/* 檢查文件目錄屬性 */
$warning = array();
if ($_CFG['shop_closed'])
{
$warning[] = $_LANG['shop_closed_tips'];
}
if (file_exists('../install'))
{
$warning[] = $_LANG['remove_install'];
}
if (file_exists('../upgrade'))
{
$warning[] = $_LANG['remove_upgrade'];
}
if (file_exists('../demo'))
{
$warning[] = $_LANG['remove_demo'];
}
$open_basedir = ini_get('open_basedir');
if (!empty($open_basedir))
{
/* 如果 open_basedir 不為空,則檢查是否包含了 upload_tmp_dir */
$open_basedir = str_replace(array("\\", "\\\\"), array("/", "/"), $open_basedir);
$upload_tmp_dir = ini_get('upload_tmp_dir');
if (empty($upload_tmp_dir))
{
if (stristr(PHP_OS, 'win'))
{
$upload_tmp_dir = getenv('TEMP') ? getenv('TEMP') : getenv('TMP');
$upload_tmp_dir = str_replace(array("\\", "\\\\"), array("/", "/"), $upload_tmp_dir);
}
else
{
$upload_tmp_dir = getenv('TMPDIR') === false ? '/tmp' : getenv('TMPDIR');
}
}
if (!stristr($open_basedir, $upload_tmp_dir))
{
$warning[] = sprintf($_LANG['temp_dir_cannt_read'], $upload_tmp_dir);
}
}
$result = file_mode_info('../' . DATA_DIR);
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], 'data', $_LANG['data_cannt_write']);
}
else
{
$result = file_mode_info('../' . DATA_DIR . '/afficheimg');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], DATA_DIR . '/afficheimg', $_LANG['afficheimg_cannt_write']);
}
$result = file_mode_info('../' . DATA_DIR . '/brandlogo');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], DATA_DIR . '/brandlogo', $_LANG['brandlogo_cannt_write']);
}
$result = file_mode_info('../' . DATA_DIR . '/cardimg');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], DATA_DIR . '/cardimg', $_LANG['cardimg_cannt_write']);
}
$result = file_mode_info('../' . DATA_DIR . '/feedbackimg');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], DATA_DIR . '/feedbackimg', $_LANG['feedbackimg_cannt_write']);
}
$result = file_mode_info('../' . DATA_DIR . '/packimg');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], DATA_DIR . '/packimg', $_LANG['packimg_cannt_write']);
}
}
$result = file_mode_info('../images');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], 'images', $_LANG['images_cannt_write']);
}
else
{
$result = file_mode_info('../' . IMAGE_DIR . '/upload');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], IMAGE_DIR . '/upload', $_LANG['imagesupload_cannt_write']);
}
}
$result = file_mode_info('../temp');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], 'images', $_LANG['tpl_cannt_write']);
}
$result = file_mode_info('../temp/backup');
if ($result < 2)
{
$warning[] = sprintf($_LANG['not_writable'], 'images', $_LANG['tpl_backup_cannt_write']);
}
if (!is_writeable('../' . DATA_DIR . '/order_print.html'))
{
$warning[] = $_LANG['order_print_canntwrite'];
}
clearstatcache();
$smarty->assign('warning_arr', $warning);
/* 管理員留言信息 */
$sql = 'SELECT message_id, sender_id, receiver_id, sent_time, readed, deleted, title, message, user_name ' .
'FROM ' . $ecs->table('admin_message') . ' AS a, ' . $ecs->table('admin_user') . ' AS b ' .
"WHERE a.sender_id = b.user_id AND a.receiver_id = '$_SESSION[admin_id]' AND ".
"a.readed = 0 AND deleted = 0 ORDER BY a.sent_time DESC";
$admin_msg = $db->GetAll($sql);
$smarty->assign('admin_msg', $admin_msg);
/* 取得支持貨到付款和不支持貨到付款的支付方式 */
$ids = get_pay_ids();
/* ecmoban start zhou */
$today_start=mktime(0,0,0,date('m'),date('d'),date('Y'));
$today_end=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
$month_start=mktime(0,0,0,date('m'),1,date('Y'));
$month_end=mktime(23,59,59,date('m'),date('t'),date('Y'));
$today = array();
//今日銷售總額
//付款金額
$sql = 'SELECT SUM(money_paid) AS sales FROM ' .$ecs->table('order_info'). ' WHERE `add_time` BETWEEN '.$today_start.' AND '.$today_end.' '.order_query_sql_admin('queren');
$today['money_paid_money'] = $db->GetOne($sql);
//餘額金額
$sql = 'SELECT SUM(surplus) AS sales FROM ' .$ecs->table('order_info'). ' WHERE `add_time` BETWEEN '.$today_start.' AND '.$today_end.' '.order_query_sql_admin('queren');
$today['surplus_money'] = $db->GetOne($sql);
//總金額
$today['formatted_money'] = price_format($today['money_paid_money']+$today['surplus_money']);
$today['formatted_money'] = str_replace("", "", $today['formatted_money']);
//今日訂單數
$today['order'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('order_info'). ' WHERE `add_time` BETWEEN '.$today_start.' AND '.$today_end);
//今日註冊會員
$sql = "SELECT COUNT(*) FROM " .$ecs->table('users'). " WHERE `reg_time` BETWEEN ".$today_start.' AND '.$today_end;
$today['user'] = $db->GetOne($sql);
//當前月份
$thismonth=date('m');
$smarty->assign('thismonth',$thismonth);
$smarty->assign('today',$today);
/* ecmoban zhou */
/* 已完成的訂單 */
$order['finished'] = $db->GetOne('SELECT COUNT(*) FROM ' . $ecs->table('order_info').
" WHERE 1 " . order_query_sql('finished'));
$status['finished'] = CS_FINISHED;
/* 待發貨的訂單: */
$order['await_ship'] = $db->GetOne('SELECT COUNT(*)'.
' FROM ' .$ecs->table('order_info') .
" WHERE 1 " . order_query_sql('await_ship'));
$status['await_ship'] = CS_AWAIT_SHIP;
/* 待付款的訂單: */
$order['await_pay'] = $db->GetOne('SELECT COUNT(*)'.
' FROM ' .$ecs->table('order_info') .
" WHERE 1 " . order_query_sql('await_pay'));
$status['await_pay'] = CS_AWAIT_PAY;
/* “未確認”的訂單 */
$order['unconfirmed'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('order_info').
" WHERE 1 " . order_query_sql('unconfirmed'));
$status['unconfirmed'] = OS_UNCONFIRMED;
/* “部分發貨”的訂單 */
$order['shipped_part'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('order_info').
" WHERE shipping_status=" .SS_SHIPPED_PART);
$status['shipped_part'] = OS_SHIPPED_PART;
// $today_start = mktime(0,0,0,date('m'),date('d'),date('Y'));
$order['stats'] = $db->getRow('SELECT COUNT(*) AS oCount, IFNULL(SUM(order_amount), 0) AS oAmount' .
' FROM ' .$ecs->table('order_info'));
$smarty->assign('order', $order);
$smarty->assign('status', $status);
/* 商品信息 */
$goods['total'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_alone_sale = 1 AND is_real = 1');
$virtual_card['total'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_alone_sale = 1 AND is_real=0 AND extension_code=\'virtual_card\'');
$goods['new'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_new = 1 AND is_real = 1');
$virtual_card['new'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_new = 1 AND is_real=0 AND extension_code=\'virtual_card\'');
$goods['best'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_best = 1 AND is_real = 1');
$virtual_card['best'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_best = 1 AND is_real=0 AND extension_code=\'virtual_card\'');
$goods['hot'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_hot = 1 AND is_real = 1');
$virtual_card['hot'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_hot = 1 AND is_real=0 AND extension_code=\'virtual_card\'');
$time = gmtime();
$goods['promote'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND promote_price>0' .
" AND promote_start_date <= '$time' AND promote_end_date >= '$time' AND is_real = 1");
$virtual_card['promote'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND promote_price>0' .
" AND promote_start_date <= '$time' AND promote_end_date >= '$time' AND is_real=0 AND extension_code='virtual_card'");
/* 缺貨商品 */
if ($_CFG['use_storage'])
{
$sql = 'SELECT COUNT(*) FROM ' .$ecs->table('goods'). ' WHERE is_delete = 0 AND goods_number <= warn_number AND is_real = 1';
$goods['warn'] = $db->GetOne($sql);
$sql = 'SELECT COUNT(*) FROM ' .$ecs->table('goods'). ' WHERE is_delete = 0 AND goods_number <= warn_number AND is_real=0 AND extension_code=\'virtual_card\'';
$virtual_card['warn'] = $db->GetOne($sql);
}
else
{
$goods['warn'] = 0;
$virtual_card['warn'] = 0;
}
$smarty->assign('goods', $goods);
$smarty->assign('virtual_card', $virtual_card);
/* 訪問統計信息 */
$today = local_getdate();
$sql = 'SELECT COUNT(*) FROM ' .$ecs->table('stats').
' WHERE access_time > ' . (mktime(0, 0, 0, $today['mon'], $today['mday'], $today['year']) - date('Z'));
$today_visit = $db->GetOne($sql);
$smarty->assign('today_visit', $today_visit);
$online_users = $sess->get_users_count();
$smarty->assign('online_users', $online_users);
/* 最近反饋 */
$sql = "SELECT COUNT(f.msg_id) ".
"FROM " . $ecs->table('feedback') . " AS f ".
"LEFT JOIN " . $ecs->table('feedback') . " AS r ON r.parent_id=f.msg_id " .
'WHERE f.parent_id=0 AND ISNULL(r.msg_id) ' ;
$smarty->assign('feedback_number', $db->GetOne($sql));
/* 未審核評論 */
$smarty->assign('comment_number', $db->getOne('SELECT COUNT(*) FROM ' . $ecs->table('comment') .
' WHERE status = 0 AND parent_id = 0'));
$mysql_ver = $db->version(); // 獲得 MySQL 版本
/* 系統信息 */
$sys_info['os'] = PHP_OS;
$sys_info['ip'] = $_SERVER['SERVER_ADDR'];
$sys_info['web_server'] = $_SERVER['SERVER_SOFTWARE'];
$sys_info['php_ver'] = PHP_VERSION;
$sys_info['mysql_ver'] = $mysql_ver;
$sys_info['zlib'] = function_exists('gzclose') ? $_LANG['yes']:$_LANG['no'];
$sys_info['safe_mode'] = (boolean) ini_get('safe_mode') ? $_LANG['yes']:$_LANG['no'];
$sys_info['safe_mode_gid'] = (boolean) ini_get('safe_mode_gid') ? $_LANG['yes'] : $_LANG['no'];
$sys_info['timezone'] = function_exists("date_default_timezone_get") ? date_default_timezone_get() : $_LANG['no_timezone'];
$sys_info['socket'] = function_exists('fsockopen') ? $_LANG['yes'] : $_LANG['no'];
if ($gd == 0)
{
$sys_info['gd'] = 'N/A';
}
else
{
if ($gd == 1)
{
$sys_info['gd'] = 'GD1';
}
else
{
$sys_info['gd'] = 'GD2';
}
$sys_info['gd'] .= ' (';
/* 檢查系統支持的圖片類型 */
if ($gd && (imagetypes() & IMG_JPG) > 0)
{
$sys_info['gd'] .= ' JPEG';
}
if ($gd && (imagetypes() & IMG_GIF) > 0)
{
$sys_info['gd'] .= ' GIF';
}
if ($gd && (imagetypes() & IMG_PNG) > 0)
{
$sys_info['gd'] .= ' PNG';
}
$sys_info['gd'] .= ')';
}
/* IP庫版本 */
$sys_info['ip_version'] = ecs_geoip('255.255.255.0');
/* 允許上傳的最大文件大小 */
$sys_info['max_filesize'] = ini_get('upload_max_filesize');
$smarty->assign('sys_info', $sys_info);
/* 缺貨登記 */
$smarty->assign('booking_goods', $db->getOne('SELECT COUNT(*) FROM ' . $ecs->table('booking_goods') . ' WHERE is_dispose = 0'));
/* 售後申請 */
$smarty->assign('new_repay', $db->getOne('SELECT COUNT(*) FROM ' . $ecs->table('back_order') . ' WHERE status_back <> 3'));
/* 每月數據統計 ecmoban start zhou*/
$froms_tooltip = array(
'trigger'=>'item',
'formatter'=>'{a} <br/>{b} : {c} ({d}%)');
$froms_legend = array(
'orient'=>'vertical',
'x'=>'left',
'y'=>'20',
'data'=>array());
$froms_toolbox = array(
'show'=>true,
'feature'=>array(
'magicType'=>array(
'show'=>true,
'type'=>array('pie','funnel')
),
'restore'=>array('show'=>true),
'saveAsImage'=>array('show'=>true)
)
);
$froms_calculable = true;
$froms_series = array(
array(
'type'=>'pie',
'radius'=>'55%',
'center'=>array('50%','60%')));
$froms_data = array();
$froms_options = array();
$sql = 'SELECT `referer`, count(*) AS `count` FROM '.$ecs->table('order_info').' WHERE `add_time` BETWEEN '.$month_start.' AND '.$month_end. ' GROUP BY `referer` ORDER BY `count` DESC';
$result = $db->query($sql);
while($row = mysqli_fetch_assoc($result))
{
$froms_data[] = array('value'=>$row['count'],'name'=>$row['referer']);
$froms_legend_data[]=$row['referer'];
}
$froms_legend['data'] = $froms_legend_data;
$froms_series[0]['data'] = $froms_data;
$froms_options['tooltip'] = $froms_tooltip;
$froms_options['legend'] = $froms_legend;
$froms_options['toolbox'] = $froms_toolbox;
$froms_options['calculabe'] = $froms_calculable;
$froms_options['series'] = $froms_series;
$smarty->assign('froms_option',json_encode($froms_options));
//當月每日訂單數統計
$orders_tooltip = array('trigger'=>'axis');
$orders_legend = array('data'=>array());
$orders_toolbox = array(
'show'=>true,
'x'=>'right',
'feature'=>array(
'magicType'=>array(
'show'=>true,
'type'=>array('line','bar')),
'restore'=>array(
'show'=>true),
'saveAsImage'=>array(
'show'=>true)
));
$orders_calculable = true;
$orders_xAxis = array(
'type'=>'category',
'boundryGap'=>false,
'data'=>array());
$orders_yAxis = array(
'type'=>'value',
'axisLabel'=>array(
'formatter'=>'{value}個'));
$orders_series = array(
array(
'name'=>'訂單個數',
'type'=>'line',
'data'=>array(),
'markPoint'=>array(
'data'=>array(
array(
'type'=>'max',
'name'=>'最大值'),
array(
'type'=>'min',
'name'=>'最小值')))));
$sql = 'SELECT DATE_FORMAT(FROM_UNIXTIME(`add_time`),"%d") AS day,COUNT(*) AS count,SUM(money_paid) AS money, SUM(money_paid)+SUM(surplus) AS superman FROM '.$ecs->table('order_info').' WHERE `add_time` BETWEEN '.$month_start.' AND '.$month_end. ' GROUP BY day ORDER BY day ASC ';
$result = $db->query($sql);
while($row = mysqli_fetch_assoc($result))
{
$orders_series_data[intval($row['day'])] = intval($row['count']);
$sales_series_data[intval($row['day'])] = floatval($row['money']);
$sales_series_data[intval($row['day'])] = floatval($row['superman']);
}
for($i = 1;$i<=date('d');$i++)
{
if(empty($orders_series_data[$i]))
{
$orders_series_data[$i] = 0;
$sales_series_data[$i] = 0;
}
$orders_xAxis_data[] = $i;
$sales_xAxis_data[] = $i;
}
$orders_xAxis['data'] = $orders_xAxis_data;
ksort($orders_series_data);
$orders_series[0]['data'] = array_values($orders_series_data);
$orders_option['tooltip'] = $orders_tooltip;
$orders_option['legend'] = $orders_legend;
$orders_option['toolbox'] = $orders_toolbox;
$orders_option['calculable'] = $orders_calculable;
$orders_option['xAxis'] = $orders_xAxis;
$orders_option['yAxis'] = $orders_yAxis;
$orders_option['series'] = $orders_series;
$smarty->assign('orders_option',json_encode($orders_option));
//當月每日銷售額統計
$sales_tooltip = array('trigger'=>'axis');
$sales_legend = array('data'=>array());
$sales_toolbox = array(
'show'=>true,
'x'=>'right',
'feature'=>array(
'magicType'=>array(
'show'=>true,
'type'=>array('line','bar')),
'restore'=>array(
'show'=>true),
'saveAsImage'=>array(
'show'=>true)
));
$sales_calculable = true;
$sales_xAxis = array(
'type'=>'category',
'boundryGap'=>false,
'data'=>array());
$sales_yAxis = array(
'type'=>'value',
'axisLabel'=>array(
'formatter'=>'{value}元'));
$sales_series = array(
array(
'name'=>'銷售額',
'type'=>'line',
'data'=>array(),
'markPoint'=>array(
'data'=>array(
array(
'type'=>'max',
'name'=>'最大值'),
array(
'type'=>'min',
'name'=>'最小值')))));
$sales_xAxis['data'] = $sales_xAxis_data;
ksort($sales_series_data);
$sales_series[0]['data'] = array_values($sales_series_data);
$sales_option['tooltip'] = $sales_tooltip;
$sales_option['toolbox'] = $sales_toolbox;
$sales_option['calculable'] = $sales_calculable;
$sales_option['xAxis'] = $sales_xAxis;
$sales_option['yAxis'] = $sales_yAxis;
$sales_option['series'] = $sales_series;
$smarty->assign('sales_option',json_encode($sales_option));
/* ecmoban end */
assign_query_info();
$smarty->assign('ecs_version', VERSION);
$smarty->assign('ecs_release', RELEASE);
$smarty->assign('ecs_lang', $_CFG['lang']);
$smarty->assign('ecs_charset', strtoupper(EC_CHARSET));
$smarty->assign('install_date', local_date($_CFG['date_format'], $_CFG['install_date']));
$smarty->display('start.htm');
}
elseif ($_REQUEST['act'] == 'main_api')
{
require_once(ROOT_PATH . '/includes/lib_base.php');
$data = read_static_cache('api_str');
if($data === false || API_TIME < date('Y-m-d H:i:s',time()-43200))
{
include_once(ROOT_PATH . 'includes/cls_transport.php');
$ecs_version = VERSION;
$ecs_lang = $_CFG['lang'];
$ecs_release = RELEASE;
$php_ver = PHP_VERSION;
$mysql_ver = $db->version();
$order['stats'] = $db->getRow('SELECT COUNT(*) AS oCount, IFNULL(SUM(order_amount), 0) AS oAmount' .
' FROM ' .$ecs->table('order_info'));
$ocount = $order['stats']['oCount'];
$oamount = $order['stats']['oAmount'];
$goods['total'] = $db->GetOne('SELECT COUNT(*) FROM ' .$ecs->table('goods').
' WHERE is_delete = 0 AND is_alone_sale = 1 AND is_real = 1');
$gcount = $goods['total'];
$ecs_charset = strtoupper(EC_CHARSET);
$ecs_user = $db->getOne('SELECT COUNT(*) FROM ' . $ecs->table('users'));
$ecs_template = $db->getOne('SELECT value FROM ' . $ecs->table('shop_config') . ' WHERE code = \'template\'');
$style = $db->getOne('SELECT value FROM ' . $ecs->table('shop_config') . ' WHERE code = \'stylename\'');
if($style == '')
{
$style = '0';
}
$ecs_style = $style;
$shop_url = urlencode($ecs->url());
$patch_file = file_get_contents(ROOT_PATH.ADMIN_PATH."/patch_num");
$apiget = "ver= $ecs_version &lang= $ecs_lang &release= $ecs_release &php_ver= $php_ver &mysql_ver= $mysql_ver &ocount= $ocount &oamount= $oamount &gcount= $gcount &charset= $ecs_charset &usecount= $ecs_user &template= $ecs_template &style= $ecs_style &url= $shop_url &patch= $patch_file ";
$f=ROOT_PATH . 'data/config.php';
file_put_contents($f,str_replace("'API_TIME', '".API_TIME."'","'API_TIME', '".date('Y-m-d H:i:s',time())."'",file_get_contents($f)));
write_static_cache('api_str', $api_str);
}
else
{
echo $data;
}
}
/*------------------------------------------------------ */
//-- 開店嚮導第一步
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'first')
{
$smarty->assign('countries', get_regions());
$smarty->assign('provinces', get_regions(1, 1));
$smarty->assign('cities', get_regions(2, 2));
$sql = 'SELECT value from ' . $ecs->table('shop_config') . " WHERE code='shop_name'";
$shop_name = $db->getOne($sql);
$smarty->assign('shop_name', $shop_name);
$sql = 'SELECT value from ' . $ecs->table('shop_config') . " WHERE code='shop_title'";
$shop_title = $db->getOne($sql);
$smarty->assign('shop_title', $shop_title);
//獲取配送方式
// $modules = read_modules('../includes/modules/shipping');
$directory = ROOT_PATH . 'includes/modules/shipping';
$dir = @opendir($directory);
$set_modules = true;
$modules = array();
while (false !== ($file = @readdir($dir)))
{
if (preg_match("/^.*?\.php$/", $file))
{
if ($file != 'express.php')
{
include_once($directory. '/' .$file);
}
}
}
@closedir($dir);
unset($set_modules);
foreach ($modules AS $key => $value)
{
ksort($modules[$key]);
}
ksort($modules);
for ($i = 0; $i < count($modules); $i++)
{
$lang_file = ROOT_PATH.'languages/' .$_CFG['lang']. '/shipping/' .$modules[$i]['code']. '.php';
if (file_exists($lang_file))
{
include_once($lang_file);
}
$modules[$i]['name'] = $_LANG[$modules[$i]['code']];
$modules[$i]['desc'] = $_LANG[$modules[$i]['desc']];
$modules[$i]['insure_fee'] = empty($modules[$i]['insure'])? 0 : $modules[$i]['insure'];
$modules[$i]['cod'] = $modules[$i]['cod'];
$modules[$i]['install'] = 0;
}
$smarty->assign('modules', $modules);
unset($modules);
//獲取支付方式
$modules = read_modules('../includes/modules/payment');
for ($i = 0; $i < count($modules); $i++)
{
$code = $modules[$i]['code'];
$modules[$i]['name'] = $_LANG[$modules[$i]['code']];
if (!isset($modules[$i]['pay_fee']))
{
$modules[$i]['pay_fee'] = 0;
}
$modules[$i]['desc'] = $_LANG[$modules[$i]['desc']];
}
// $modules[$i]['install'] = '0';
$smarty->assign('modules_payment', $modules);
assign_query_info();
$smarty->assign('ur_here', $_LANG['ur_config']);
$smarty->display('setting_first.htm');
}
/*------------------------------------------------------ */
//-- 開店嚮導第二步
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'second')
{
admin_priv('shop_config');
$shop_name = empty($_POST['shop_name']) ? '' : $_POST['shop_name'] ;
$shop_title = empty($_POST['shop_title']) ? '' : $_POST['shop_title'] ;
$shop_country = empty($_POST['shop_country']) ? '' : intval($_POST['shop_country']);
$shop_province = empty($_POST['shop_province']) ? '' : intval($_POST['shop_province']);
$shop_city = empty($_POST['shop_city']) ? '' : intval($_POST['shop_city']);
$shop_address = empty($_POST['shop_address']) ? '' : $_POST['shop_address'] ;
$shipping = empty($_POST['shipping']) ? '' : $_POST['shipping'];
$payment = empty($_POST['payment']) ? '' : preg_replace('/[\'|\/|\\\]/','',$_POST['payment']);
if(!empty($shop_name))
{
$sql = 'UPDATE ' . $ecs->table('shop_config') . " SET value = '$shop_name' WHERE code = 'shop_name'";
$db->query($sql);
}
if(!empty($shop_title))
{
$sql = 'UPDATE ' . $ecs->table('shop_config') . " SET value = '$shop_title' WHERE code = 'shop_title'";
$db->query($sql);
}
if(!empty($shop_address))
{
$sql = 'UPDATE ' . $ecs->table('shop_config') . " SET value = '$shop_address' WHERE code = 'shop_address'";
$db->query($sql);
}
if(!empty($shop_country))
{
$sql = 'UPDATE ' . $ecs->table('shop_config') . "SET value = '$shop_country' WHERE code='shop_country'";
$db->query($sql);
}
if(!empty($shop_province))
{
$sql = 'UPDATE ' . $ecs->table('shop_config') . "SET value = '$shop_province' WHERE code='shop_province'";
$db->query($sql);
}
if(!empty($shop_city))
{
$sql = 'UPDATE ' . $ecs->table('shop_config') . "SET value = '$shop_city' WHERE code='shop_city'";
$db->query($sql);
}
//設置配送方式
if(!empty($shipping))
{
$shop_add = read_modules('../includes/modules/shipping');
foreach ($shop_add as $val)
{
$mod_shop[] = $val['code'];
}
$mod_shop = implode(',',$mod_shop);
$set_modules = true;
if(strpos($mod_shop,$shipping) === false)
{
exit;
}
else
{
include_once(ROOT_PATH . 'includes/modules/shipping/' . $shipping . '.php');
}
$sql = "SELECT shipping_id FROM " .$ecs->table('shipping'). " WHERE shipping_code = '$shipping'";
$shipping_id = $db->GetOne($sql);
if($shipping_id <= 0)
{
$insure = empty($modules[0]['insure']) ? 0 : $modules[0]['insure'];
$sql = "INSERT INTO " . $ecs->table('shipping') . " (" .
"shipping_code, shipping_name, shipping_desc, insure, support_cod, enabled" .
") VALUES (" .
"'" . addslashes($modules[0]['code']). "', '" . addslashes($_LANG[$modules[0]['code']]) . "', '" .
addslashes($_LANG[$modules[0]['desc']]) . "', '$insure', '" . intval($modules[0]['cod']) . "', 1)";
$db->query($sql);
$shipping_id = $db->insert_Id();
}
//設置配送區域
$area_name = empty($_POST['area_name']) ? '' : $_POST['area_name'];
if(!empty($area_name))
{
$sql = "SELECT shipping_area_id FROM " .$ecs->table("shipping_area").
" WHERE shipping_id='$shipping_id' AND shipping_area_name='$area_name'";
$area_id = $db->getOne($sql);
if($area_id <= 0)
{
$config = array();
foreach ($modules[0]['configure'] AS $key => $val)
{
$config[$key]['name'] = $val['name'];
$config[$key]['value'] = $val['value'];
}
$count = count($config);
$config[$count]['name'] = 'free_money';
$config[$count]['value'] = 0;
/* 如果支持貨到付款,則允許設置貨到付款支付費用 */
if ($modules[0]['cod'])
{
$count++;
$config[$count]['name'] = 'pay_fee';
$config[$count]['value'] = make_semiangle(0);
}
$sql = "INSERT INTO " .$ecs->table('shipping_area').
" (shipping_area_name, shipping_id, configure) ".
"VALUES" . " ('$area_name', '$shipping_id', '" .serialize($config). "')";
$db->query($sql);
$area_id = $db->insert_Id();
}
$region_id = empty($_POST['shipping_country']) ? 1 : intval($_POST['shipping_country']);
$region_id = empty($_POST['shipping_province']) ? $region_id : intval($_POST['shipping_province']);
$region_id = empty($_POST['shipping_city']) ? $region_id : intval($_POST['shipping_city']);
$region_id = empty($_POST['shipping_district']) ? $region_id : intval($_POST['shipping_district']);
/* 添加選定的城市和地區 */
$sql = "REPLACE INTO ".$ecs->table('area_region')." (shipping_area_id, region_id) VALUES ('$area_id', '$region_id')";
$db->query($sql);
}
}
unset($modules);
if(!empty($payment))
{
/* 取相應插件信息 */
$set_modules = true;
include_once(ROOT_PATH.'includes/modules/payment/' . $payment . '.php');
$pay_config = array();
if (isset($_REQUEST['cfg_value']) && is_array($_REQUEST['cfg_value']))
{
for ($i = 0; $i < count($_POST['cfg_value']); $i++)
{
$pay_config[] = array('name' => trim($_POST['cfg_name'][$i]),
'type' => trim($_POST['cfg_type'][$i]),
'value' => trim($_POST['cfg_value'][$i])
);
}
}
$pay_config = serialize($pay_config);
/* 安裝,檢查該支付方式是否曾經安裝過 */
$sql = "SELECT COUNT(*) FROM " . $ecs->table('payment') . " WHERE pay_code = '$payment'";
if ($db->GetOne($sql) > 0)
{
$sql = "UPDATE " . $ecs->table('payment') .
" SET pay_config = '$pay_config'," .
" enabled = '1' " .
"WHERE pay_code = '$payment' LIMIT 1";
$db->query($sql);
}
else
{
// $modules = read_modules('../includes/modules/payment');
$payment_info = array();
$payment_info['name'] = $_LANG[$modules[0]['code']];
$payment_info['pay_fee'] = empty($modules[0]['pay_fee']) ? 0 : $modules[0]['pay_fee'];
$payment_info['desc'] = $_LANG[$modules[0]['desc']];
$sql = "INSERT INTO " . $ecs->table('payment') . " (pay_code, pay_name, pay_desc, pay_config, is_cod, pay_fee, enabled, is_online)" .
"VALUES ('$payment', '$payment_info[name]', '$payment_info[desc]', '$pay_config', '0', '$payment_info[pay_fee]', '1', '1')";
$db->query($sql);
}
}
clear_all_files();
assign_query_info();
$smarty->assign('ur_here', $_LANG['ur_add']);
$smarty->display('setting_second.htm');
}
/*------------------------------------------------------ */
//-- 開店嚮導第三步
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'third')
{
admin_priv('goods_manage');
$good_name = empty($_POST['good_name']) ? '' : $_POST['good_name'];
$good_number = empty($_POST['good_number']) ? '' : $_POST['good_number'];
$good_category = empty($_POST['good_category']) ? '' : $_POST['good_category'];
$good_brand = empty($_POST['good_brand']) ? '' : $_POST['good_brand'];
$good_price = empty($_POST['good_price']) ? 0 : $_POST['good_price'];
$good_name = empty($_POST['good_name']) ? '' : $_POST['good_name'];
$is_best = empty($_POST['is_best']) ? 0 : 1;
$is_new = empty($_POST['is_new']) ? 0 : 1;
$is_hot = empty($_POST['is_hot']) ? 0 :1;
$good_brief = empty($_POST['good_brief']) ? '' : $_POST['good_brief'];
$market_price = $good_price * 1.2;
if(!empty($good_category))
{
if (cat_exists($good_category, 0))
{
/* 同級別下不能有重複的分類名稱 */
$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
sys_msg($_LANG['catname_exist'], 0, $link);
}
}
if(!empty($good_brand))
{
if (brand_exists($good_brand))
{
/* 同級別下不能有重複的品牌名稱 */
$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
sys_msg($_LANG['brand_name_exist'], 0, $link);
}
}
$brand_id = 0;
if(!empty($good_brand))
{
$sql = 'INSERT INTO ' . $ecs->table('brand') . " (brand_name, is_show)" .
" values('" . $good_brand . "', '1')";
$db->query($sql);
$brand_id = $db->insert_Id();
}
if(!empty($good_category))
{
$sql = 'INSERT INTO ' . $ecs->table('category') . " (cat_name, parent_id, is_show)" .
" values('" . $good_category . "', '0', '1')";
$db->query($sql);
$cat_id = $db->insert_Id();
//貨號
require_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_goods.php');
$max_id = $db->getOne("SELECT MAX(goods_id) + 1 FROM ".$ecs->table('goods'));
$goods_sn = generate_goods_sn($max_id);
include_once(ROOT_PATH . 'includes/cls_image.php');
$image = new cls_image($_CFG['bgcolor']);
if(!empty($good_name))
{
/* 檢查圖片:如果有錯誤,檢查尺寸是否超過最大值;否則,檢查文件類型 */
if (isset($_FILES['goods_img']['error'])) // php 4.2 版本才支持 error
{
// 最大上傳文件大小
$php_maxsize = ini_get('upload_max_filesize');
$htm_maxsize = '2M';
// 商品圖片
if ($_FILES['goods_img']['error'] == 0)
{
if (!$image->check_img_type($_FILES['goods_img']['type']))
{
sys_msg($_LANG['invalid_goods_img'], 1, array(), false);
}
}
elseif ($_FILES['goods_img']['error'] == 1)
{
sys_msg(sprintf($_LANG['goods_img_too_big'], $php_maxsize), 1, array(), false);
}
elseif ($_FILES['goods_img']['error'] == 2)
{
sys_msg(sprintf($_LANG['goods_img_too_big'], $htm_maxsize), 1, array(), false);
}
}
/* 4。1版本 */
else
{
// 商品圖片
if ($_FILES['goods_img']['tmp_name'] != 'none')
{
if (!$image->check_img_type($_FILES['goods_img']['type']))
{
sys_msg($_LANG['invalid_goods_img'], 1, array(), false);
}
}
}
$goods_img = ''; // 初始化商品圖片
$goods_thumb = ''; // 初始化商品縮略圖
$original_img = ''; // 初始化原始圖片
$old_original_img = ''; // 初始化原始圖片舊圖
// 如果上傳了商品圖片,相應處理
if ($_FILES['goods_img']['tmp_name'] != '' && $_FILES['goods_img']['tmp_name'] != 'none')
{
$original_img = $image->upload_image($_FILES['goods_img']); // 原始圖片
if ($original_img === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
$goods_img = $original_img; // 商品圖片
/* 複製一份相冊圖片 */
$img = $original_img; // 相冊圖片
$pos = strpos(basename($img), '.');
$newname = dirname($img) . '/' . $image->random_filename() . substr(basename($img), $pos);
if (!copy('../' . $img, '../' . $newname))
{
sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);
}
$img = $newname;
$gallery_img = $img;
$gallery_thumb = $img;
// 如果系統支持GD縮放商品圖片且給商品圖片和相冊圖片加水印
if ($image->gd_version() > 0 && $image->check_img_function($_FILES['goods_img']['type']))
{
// 如果設置大小不為0縮放圖片
if ($_CFG['image_width'] != 0 || $_CFG['image_height'] != 0)
{
$goods_img = $image->make_thumb('../'. $goods_img , $GLOBALS['_CFG']['image_width'], $GLOBALS['_CFG']['image_height']);
if ($goods_img === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
}
$newname = dirname($img) . '/' . $image->random_filename() . substr(basename($img), $pos);
if (!copy('../' . $img, '../' . $newname))
{
sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);
}
$gallery_img = $newname;
// 加水印
if (intval($_CFG['watermark_place']) > 0 && !empty($GLOBALS['_CFG']['watermark']))
{
if ($image->add_watermark('../'.$goods_img,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']) === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
if ($image->add_watermark('../'. $gallery_img,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']) === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
}
// 相冊縮略圖
if ($_CFG['thumb_width'] != 0 || $_CFG['thumb_height'] != 0)
{
$gallery_thumb = $image->make_thumb('../' . $img, $GLOBALS['_CFG']['thumb_width'], $GLOBALS['_CFG']['thumb_height']);
if ($gallery_thumb === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
}
}
else
{
/* 複製一份原圖 */
$pos = strpos(basename($img), '.');
$gallery_img = dirname($img) . '/' . $image->random_filename() . substr(basename($img), $pos);
if (!copy('../' . $img, '../' . $gallery_img))
{
sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);
}
$gallery_thumb = '';
}
}
// 未上傳,如果自動選擇生成,且上傳了商品圖片,生成所略圖
if (!empty($original_img))
{
// 如果設置縮略圖大小不為0生成縮略圖
if ($_CFG['thumb_width'] != 0 || $_CFG['thumb_height'] != 0)
{
$goods_thumb = $image->make_thumb('../' . $original_img, $GLOBALS['_CFG']['thumb_width'], $GLOBALS['_CFG']['thumb_height']);
if ($goods_thumb === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
}
else
{
$goods_thumb = $original_img;
}
}
$sql = 'INSERT INTO ' . $ecs->table('goods') . "(goods_name, goods_sn, goods_number, cat_id, brand_id, goods_brief, shop_price, market_price, goods_img, goods_thumb, original_img,add_time, last_update,
is_best, is_new, is_hot)" .
"VALUES('$good_name', '$goods_sn', '$good_number', '$cat_id', '$brand_id', '$good_brief', '$good_price'," .
" '$market_price', '$goods_img', '$goods_thumb', '$original_img','" . gmtime() . "', '". gmtime() . "', '$is_best', '$is_new', '$is_hot')";
$db->query($sql);
$good_id = $db->insert_id();
/* 如果有圖片,把商品圖片加入圖片相冊 */
if (isset($img))
{
$sql = "INSERT INTO " . $ecs->table('goods_gallery') . " (goods_id, img_url, img_desc, thumb_url, img_original) " .
"VALUES ('$good_id', '$gallery_img', '', '$gallery_thumb', '$img')";
$db->query($sql);
}
}
}
assign_query_info();
// $smarty->assign('ur_here', '開店嚮導-添加商品');
$smarty->display('setting_third.htm');
}
/*------------------------------------------------------ */
//-- 關於 shop
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'about_us')
{
assign_query_info();
$smarty->display('about_us.htm');
}
/*------------------------------------------------------ */
//-- 拖動的幀
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'drag')
{
$smarty->display('drag.htm');;
}
/*------------------------------------------------------ */
//-- 檢查訂單
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'check_order')
{
if (empty($_SESSION['last_check']))
{
$_SESSION['last_check'] = gmtime();
make_json_result('', '', array('new_orders' => 0, 'new_paid' => 0));
}
/* 新訂單 */
$sql = 'SELECT COUNT(*) FROM ' . $ecs->table('order_info').
" WHERE add_time >= '$_SESSION[last_check]'";
$arr['new_orders'] = $db->getOne($sql);
/* 新付款的訂單 */
$sql = 'SELECT COUNT(*) FROM '.$ecs->table('order_info').
' WHERE pay_time >= ' . $_SESSION['last_check'];
$arr['new_paid'] = $db->getOne($sql);
$_SESSION['last_check'] = gmtime();
if (!(is_numeric($arr['new_orders']) && is_numeric($arr['new_paid'])))
{
make_json_error($db->error());
}
else
{
make_json_result('', '', $arr);
}
}
/*------------------------------------------------------ */
//-- Totolist操作
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'save_todolist')
{
$content = json_str_iconv($_POST["content"]);
$sql = "UPDATE" .$GLOBALS['ecs']->table('admin_user'). " SET todolist='" . $content . "' WHERE user_id = " . $_SESSION['admin_id'];
$GLOBALS['db']->query($sql);
}
elseif ($_REQUEST['act'] == 'get_todolist')
{
$sql = "SELECT todolist FROM " .$GLOBALS['ecs']->table('admin_user'). " WHERE user_id = " . $_SESSION['admin_id'];
$content = $GLOBALS['db']->getOne($sql);
echo $content;
}
// 郵件羣發處理
elseif ($_REQUEST['act'] == 'send_mail')
{
if ($_CFG['send_mail_on'] == 'off')
{
make_json_result('', $_LANG['send_mail_off'], 0);
exit();
}
$sql = "SELECT * FROM " . $ecs->table('email_sendlist') . " ORDER BY pri DESC, last_send ASC LIMIT 1";
$row = $db->getRow($sql);
//發送列表為空
if (empty($row['id']))
{
make_json_result('', $_LANG['mailsend_null'], 0);
}
//發送列表不為空,郵件地址為空
if (!empty($row['id']) && empty($row['email']))
{
$sql = "DELETE FROM " . $ecs->table('email_sendlist') . " WHERE id = '$row[id]'";
$db->query($sql);
$count = $db->getOne("SELECT COUNT(*) FROM " . $ecs->table('email_sendlist'));
make_json_result('', $_LANG['mailsend_skip'], array('count' => $count, 'goon' => 1));
}
//查詢相關模板
$sql = "SELECT * FROM " . $ecs->table('mail_templates') . " WHERE template_id = '$row[template_id]'";
$rt = $db->getRow($sql);
//如果是模板則將已存入email_sendlist的內容作為郵件內容
//否則即是雜質將mail_templates調出的內容作為郵件內容
if ($rt['type'] == 'template')
{
$rt['template_content'] = $row['email_content'];
}
if ($rt['template_id'] && $rt['template_content'])
{
if (send_mail('', $row['email'], $rt['template_subject'], $rt['template_content'], $rt['is_html']))
{
//發送成功
//從列表中刪除
$sql = "DELETE FROM " . $ecs->table('email_sendlist') . " WHERE id = '$row[id]'";
$db->query($sql);
//剩餘列表數
$count = $db->getOne("SELECT COUNT(*) FROM " . $ecs->table('email_sendlist'));
if($count > 0)
{
$msg = sprintf($_LANG['mailsend_ok'],$row['email'],$count);
}
else
{
$msg = sprintf($_LANG['mailsend_finished'],$row['email']);
}
make_json_result('', $msg, array('count' => $count));
}
else
{
//發送出錯
if ($row['error'] < 3)
{
$time = time();
$sql = "UPDATE " . $ecs->table('email_sendlist') . " SET error = error + 1, pri = 0, last_send = '$time' WHERE id = '$row[id]'";
}
else
{
//將出錯超次的紀錄刪除
$sql = "DELETE FROM " . $ecs->table('email_sendlist') . " WHERE id = '$row[id]'";
}
$db->query($sql);
$count = $db->getOne("SELECT COUNT(*) FROM " . $ecs->table('email_sendlist'));
make_json_result('', sprintf($_LANG['mailsend_fail'],$row['email']), array('count' => $count));
}
}
else
{
//無效的郵件隊列
$sql = "DELETE FROM " . $ecs->table('email_sendlist') . " WHERE id = '$row[id]'";
$db->query($sql);
$count = $db->getOne("SELECT COUNT(*) FROM " . $ecs->table('email_sendlist'));
make_json_result('', sprintf($_LANG['mailsend_fail'],$row['email']), array('count' => $count));
}
}
/**
* 生成查詢訂單的sql
* @param string $type 類型
* @param string $alias order表的別名包括.例如 o.
* @return string
*/
function order_query_sql_admin($type = 'finished', $alias = '')
{
/* 已完成訂單 */
if ($type == 'finished')
{
return " AND {$alias}order_status " . db_create_in(array(OS_CONFIRMED, OS_SPLITED)) .
" AND {$alias}shipping_status " . db_create_in(array(SS_SHIPPED, SS_RECEIVED)) .
" AND {$alias}pay_status " . db_create_in(array(PS_PAYED, PS_PAYING)) . " ";
}
/* 已確認訂單 ecmoban zhou */
elseif ($type == 'queren')
{
return " AND {$alias}order_status " .
db_create_in(array(OS_CONFIRMED, OS_SPLITED, OS_SPLITING_PART)) ." ";
}
/* 待發貨訂單 */
elseif ($type == 'await_ship')
{
return " AND {$alias}order_status " .
db_create_in(array(OS_CONFIRMED, OS_SPLITED, OS_SPLITING_PART)) .
" AND {$alias}shipping_status " .
db_create_in(array(SS_UNSHIPPED, SS_PREPARING, SS_SHIPPED_ING)) .
" AND ( {$alias}pay_status " . db_create_in(array(PS_PAYED, PS_PAYING)) . " OR {$alias}pay_id " . db_create_in(payment_id_list(true)) . ") ";
}
/* 待付款訂單 */
elseif ($type == 'await_pay')
{
return " AND {$alias}order_status " . db_create_in(array(OS_CONFIRMED, OS_SPLITED)) .
" AND {$alias}pay_status = '" . PS_UNPAYED . "'" .
" AND ( {$alias}shipping_status " . db_create_in(array(SS_SHIPPED, SS_RECEIVED)) . " OR {$alias}pay_id " . db_create_in(payment_id_list(false)) . ") ";
}
/* 未確認訂單 */
elseif ($type == 'unconfirmed')
{
return " AND {$alias}order_status = '" . OS_UNCONFIRMED . "' ";
}
/* 未處理訂單:用户可操作 */
elseif ($type == 'unprocessed')
{
return " AND {$alias}order_status " . db_create_in(array(OS_UNCONFIRMED, OS_CONFIRMED)) .
" AND {$alias}shipping_status = '" . SS_UNSHIPPED . "'" .
" AND {$alias}pay_status = '" . PS_UNPAYED . "' ";
}
/* 未付款未發貨訂單:管理員可操作 */
elseif ($type == 'unpay_unship')
{
return " AND {$alias}order_status " . db_create_in(array(OS_UNCONFIRMED, OS_CONFIRMED)) .
" AND {$alias}shipping_status " . db_create_in(array(SS_UNSHIPPED, SS_PREPARING)) .
" AND {$alias}pay_status = '" . PS_UNPAYED . "' ";
}
/* 已發貨訂單:不論是否付款 */
elseif ($type == 'shipped')
{
return " AND {$alias}order_status = '" . OS_CONFIRMED . "'" .
" AND {$alias}shipping_status " . db_create_in(array(SS_SHIPPED, SS_RECEIVED)) . " ";
}
else
{
die('函數 order_query_sql 參數錯誤');
}
}
?>