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']); $smarty->display('top.htm'); } /*------------------------------------------------------ */ //-- 計算器 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'calculator') { $smarty->display('calculator.htm'); } /*------------------------------------------------------ */ //-- 左邊的框架 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'menu') { include_once('includes/inc_menu.php'); // 權限對照表 include_once('includes/inc_priv.php'); foreach ($modules AS $key => $value) { ksort($modules[$key]); } ksort($modules); foreach ($modules AS $key => $val) { $menus[$key]['label'] = $_LANG[$key]; if (is_array($val)) { foreach ($val AS $k => $v) { if ( isset($purview[$k])) { if (is_array($purview[$k])) { $boole = false; foreach ($purview[$k] as $action) { $boole = $boole || admin_priv($action, '', false); } if (!$boole) { continue; } } else { if (! admin_priv($purview[$k], '', false)) { continue; } } } if ($k == 'ucenter_setup' && $_CFG['integrate_code'] != 'ucenter') { continue; } $menus[$key]['children'][$k]['label'] = $_LANG[$k]; $menus[$key]['children'][$k]['action'] = $v; } } else { $menus[$key]['action'] = $val; } // 如果children的子元素長度為0則刪除該組 if(empty($menus[$key]['children'])) { unset($menus[$key]); } } $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') { clear_all_files(); sys_msg($_LANG['caches_cleared']); } /*------------------------------------------------------ */ //-- 主窗口,起始頁 /*------------------------------------------------------ */ 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('../cert'); if ($result < 2) { $warning[] = sprintf($_LANG['not_writable'], 'cert', $_LANG['cert_cannt_write']); } $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(); /* 已完成的訂單 */ $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; // $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('user_account') . ' WHERE process_type = ' . SURPLUS_RETURN . ' AND is_paid = 0 ')); 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 "; $t = new transport; $api_comment = $t->request('http://api.shop.com/checkver.php', $apiget); $api_str = $api_comment["body"]; echo $api_str; $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']) ? '' : $_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)) { $set_modules = true; 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)); } } /*------------------------------------------------------ */ //-- license操作 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'license') { $is_ajax = $_GET['is_ajax']; if (isset($is_ajax) && $is_ajax) { // license 檢查 include_once(ROOT_PATH . 'includes/cls_transport.php'); include_once(ROOT_PATH . 'includes/cls_json.php'); include_once(ROOT_PATH . 'includes/lib_main.php'); include_once(ROOT_PATH . 'includes/lib_license.php'); $license = license_check(); switch ($license['flag']) { case 'login_succ': if (isset($license['request']['info']['service']['shop_b2c']['cert_auth']['auth_str']) && $license['request']['info']['service']['shop_b2c']['cert_auth']['auth_str'] != '') { make_json_result(process_login_license($license['request']['info']['service']['shop_b2c']['cert_auth'])); } else { make_json_error(0); } break; case 'login_fail': case 'login_ping_fail': make_json_error(0); break; case 'reg_succ': $_license = license_check(); switch ($_license['flag']) { case 'login_succ': if (isset($_license['request']['info']['service']['shop_b2c']['cert_auth']['auth_str']) && $_license['request']['info']['service']['shop_b2c']['cert_auth']['auth_str'] != '') { make_json_result(process_login_license($license['request']['info']['service']['shop_b2c']['cert_auth'])); } else { make_json_error(0); } break; case 'login_fail': case 'login_ping_fail': make_json_error(0); break; } break; case 'reg_fail': case 'reg_ping_fail': make_json_error(0); break; } } else { make_json_error(0); } } /** * license check * @return bool */ function license_check() { // return 返回數組 $return_array = array(); // 取出網店 license $license = get_shop_license(); // 檢測網店 license if (!empty($license['certificate_id']) && !empty($license['token']) && !empty($license['certi'])) { // license(登錄) $return_array = license_login(); } else { // license(註冊) $return_array = license_reg(); } return $return_array; } ?>