Server : Apache System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/saimikebio.com/ecshopjcw/ |
<?php /** * ECSHOP 配送区域管理程序 * ============================================================================ * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。 * 网站地址: http://www.ecshop.com; * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ * $Author: liubo $ * $Id: shipping_area.php 17217 2011-01-19 06:29:08Z liubo $ */ define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); $exc = new exchange($ecs->table('shipping_area'), $db, 'shipping_area_id', 'shipping_area_name'); /*------------------------------------------------------ */ //-- 配送区域列表 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'list') { $shipping_id = intval($_REQUEST['shipping']); $list = get_shipping_area_list($shipping_id); $smarty->assign('areas', $list); $smarty->assign('ur_here', '<a href="shipping.php?act=list">'. $_LANG['03_shipping_list'].'</a> - ' . $_LANG['shipping_area_list'] . '</a>'); $smarty->assign('action_link', array('href'=>'shipping_area.php?act=add&shipping='.$shipping_id, 'text' => $_LANG['new_area'])); $smarty->assign('full_page', 1); assign_query_info(); $smarty->display('shipping_area_list.htm'); } /*------------------------------------------------------ */ //-- 新建配送区域 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'add' && !empty($_REQUEST['shipping'])) { admin_priv('shiparea_manage'); $shipping = $db->getRow("SELECT shipping_name, shipping_code FROM " .$ecs->table('shipping'). " WHERE shipping_id='$_REQUEST[shipping]'"); $set_modules = 1; include_once(ROOT_PATH.'includes/modules/shipping/'.$shipping['shipping_code'].'.php'); $fields = array(); foreach ($modules[0]['configure'] AS $key => $val) { $fields[$key]['name'] = $val['name']; $fields[$key]['value'] = $val['value']; $fields[$key]['label'] = $_LANG[$val['name']]; } $count = count($fields); $fields[$count]['name'] = "free_money"; $fields[$count]['value'] = "0"; $fields[$count]['label'] = $_LANG["free_money"]; /* 如果支持货到付款,则允许设置货到付款支付费用 */ if ($modules[0]['cod']) { $count++; $fields[$count]['name'] = "pay_fee"; $fields[$count]['value'] = "0"; $fields[$count]['label'] = $_LANG['pay_fee']; } $shipping_area['shipping_id'] = 0; $shipping_area['free_money'] = 0; $smarty->assign('ur_here', $shipping['shipping_name'] .' - '. $_LANG['new_area']); $smarty->assign('shipping_area', array('shipping_id' => $_REQUEST['shipping'], 'shipping_code' => $shipping['shipping_code'])); $smarty->assign('fields', $fields); $smarty->assign('form_action', 'insert'); $smarty->assign('countries', get_regions()); $smarty->assign('default_country', $_CFG['shop_country']); assign_query_info(); $smarty->display('shipping_area_info.htm'); } elseif ($_REQUEST['act'] == 'insert') { admin_priv('shiparea_manage'); /* 检查同类型的配送方式下有没有重名的配送区域 */ $sql = "SELECT COUNT(*) FROM " .$ecs->table("shipping_area"). " WHERE shipping_id='$_POST[shipping]' AND shipping_area_name='$_POST[shipping_area_name]'"; if ($db->getOne($sql) > 0) { sys_msg($_LANG['repeat_area_name'], 1); } else { $shipping_code = $db->getOne("SELECT shipping_code FROM " .$ecs->table('shipping'). " WHERE shipping_id='$_POST[shipping]'"); $plugin = '../includes/modules/shipping/'. $shipping_code. ".php"; if (!file_exists($plugin)) { sys_msg($_LANG['not_find_plugin'], 1); } else { $set_modules = 1; include_once($plugin); } $config = array(); foreach ($modules[0]['configure'] AS $key => $val) { $config[$key]['name'] = $val['name']; $config[$key]['value'] = $_POST[$val['name']]; } $count = count($config); $config[$count]['name'] = 'free_money'; $config[$count]['value'] = empty($_POST['free_money']) ? '' : $_POST['free_money']; $count++; $config[$count]['name'] = 'fee_compute_mode'; $config[$count]['value'] = empty($_POST['fee_compute_mode']) ? '' : $_POST['fee_compute_mode']; /* 如果支持货到付款,则允许设置货到付款支付费用 */ if ($modules[0]['cod']) { $count++; $config[$count]['name'] = 'pay_fee'; $config[$count]['value'] = make_semiangle(empty($_POST['pay_fee']) ? '' : $_POST['pay_fee']); } $sql = "INSERT INTO " .$ecs->table('shipping_area'). " (shipping_area_name, shipping_id, configure) ". "VALUES". " ('$_POST[shipping_area_name]', '$_POST[shipping]', '" .serialize($config). "')"; $db->query($sql); $new_id = $db->insert_Id(); /* 添加选定的城市和地区 */ if (isset($_POST['regions']) && is_array($_POST['regions'])) { foreach ($_POST['regions'] AS $key => $val) { $sql = "INSERT INTO ".$ecs->table('area_region')." (shipping_area_id, region_id) VALUES ('$new_id', '$val')"; $db->query($sql); } } admin_log($_POST['shipping_area_name'], 'add', 'shipping_area'); //$lnk[] = array('text' => $_LANG['add_area_region'], 'href'=>'shipping_area.php?act=region&id='.$new_id); $lnk[] = array('text' => $_LANG['back_list'], 'href'=>'shipping_area.php?act=list&shipping='.$_POST['shipping']); $lnk[] = array('text' => $_LANG['add_continue'], 'href'=>'shipping_area.php?act=add&shipping='.$_POST['shipping']); sys_msg($_LANG['add_area_success'], 0, $lnk); } } /*------------------------------------------------------ */ //-- 编辑配送区域 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'edit') { admin_priv('shiparea_manage'); $sql = "SELECT a.shipping_name, a.shipping_code, a.support_cod, b.* ". "FROM " .$ecs->table('shipping'). " AS a, " .$ecs->table('shipping_area'). " AS b ". "WHERE b.shipping_id=a.shipping_id AND b.shipping_area_id='$_REQUEST[id]'"; $row = $db->getRow($sql); $set_modules = 1; include_once(ROOT_PATH.'includes/modules/shipping/'.$row['shipping_code'].'.php'); $fields = unserialize($row['configure']); /* 如果配送方式支持货到付款并且没有设置货到付款支付费用,则加入货到付款费用 */ if ($row['support_cod'] && $fields[count($fields)-1]['name'] != 'pay_fee') { $fields[] = array('name'=>'pay_fee', 'value'=>0); } foreach ($fields AS $key => $val) { /* 替换更改的语言项 */ if ($val['name'] == 'basic_fee') { $val['name'] = 'base_fee'; } // if ($val['name'] == 'step_fee1') // { // $val['name'] = 'step_fee'; // } // if ($val['name'] == 'step_fee2') // { // $val['name'] = 'step_fee1'; // } if ($val['name'] == 'item_fee') { $item_fee = 1; } if ($val['name'] == 'fee_compute_mode') { $smarty->assign('fee_compute_mode',$val['value']); unset($fields[$key]); } else { $fields[$key]['name'] = $val['name']; $fields[$key]['label'] = $_LANG[$val['name']]; } } if(empty($item_fee)) { $field = array('name'=>'item_fee', 'value'=>'0', 'label'=>empty($_LANG['item_fee']) ? '' : $_LANG['item_fee']); array_unshift($fields,$field); } /* 获得该区域下的所有地区 */ $regions = array(); $sql = "SELECT a.region_id, r.region_name ". "FROM ".$ecs->table('area_region')." AS a, ".$ecs->table('region'). " AS r ". "WHERE r.region_id=a.region_id AND a.shipping_area_id='$_REQUEST[id]'"; $res = $db->query($sql); while ($arr = $db->fetchRow($res)) { $regions[$arr['region_id']] = $arr['region_name']; } assign_query_info(); $smarty->assign('ur_here', $row['shipping_name'] .' - '. $_LANG['edit_area']); $smarty->assign('id', $_REQUEST['id']); $smarty->assign('fields', $fields); $smarty->assign('shipping_area', $row); $smarty->assign('regions', $regions); $smarty->assign('form_action', 'update'); $smarty->assign('countries', get_regions()); $smarty->assign('default_country', 1); $smarty->display('shipping_area_info.htm'); } elseif ($_REQUEST['act'] == 'update') { admin_priv('shiparea_manage'); /* 检查同类型的配送方式下有没有重名的配送区域 */ $sql = "SELECT COUNT(*) FROM " .$ecs->table("shipping_area"). " WHERE shipping_id='$_POST[shipping]' AND ". "shipping_area_name='$_POST[shipping_area_name]' AND ". "shipping_area_id<>'$_POST[id]'"; if ($db->getOne($sql) > 0) { sys_msg($_LANG['repeat_area_name'], 1); } else { $shipping_code = $db->getOne("SELECT shipping_code FROM " .$ecs->table('shipping'). " WHERE shipping_id='$_POST[shipping]'"); $plugin = '../includes/modules/shipping/'. $shipping_code. ".php"; if (!file_exists($plugin)) { sys_msg($_LANG['not_find_plugin'], 1); } else { $set_modules = 1; include_once($plugin); } $config = array(); foreach ($modules[0]['configure'] AS $key => $val) { $config[$key]['name'] = $val['name']; $config[$key]['value'] = $_POST[$val['name']]; } $count = count($config); $config[$count]['name'] = 'free_money'; $config[$count]['value'] = empty($_POST['free_money']) ? '' : $_POST['free_money']; $count++; $config[$count]['name'] = 'fee_compute_mode'; $config[$count]['value'] = empty($_POST['fee_compute_mode']) ? '' : $_POST['fee_compute_mode']; if ($modules[0]['cod']) { $count++; $config[$count]['name'] = 'pay_fee'; $config[$count]['value'] = make_semiangle(empty($_POST['pay_fee']) ? '' : $_POST['pay_fee']); } $sql = "UPDATE " .$ecs->table('shipping_area'). " SET shipping_area_name='$_POST[shipping_area_name]', ". "configure='" .serialize($config). "' ". "WHERE shipping_area_id='$_POST[id]'"; $db->query($sql); admin_log($_POST['shipping_area_name'], 'edit', 'shipping_area'); /* 过滤掉重复的region */ $selected_regions = array(); if (isset($_POST['regions'])) { foreach ($_POST['regions'] AS $region_id) { $selected_regions[$region_id] = $region_id; } } // 查询所有区域 region_id => parent_id $sql = "SELECT region_id, parent_id FROM " . $ecs->table('region'); $res = $db->query($sql); while ($row = $db->fetchRow($res)) { $region_list[$row['region_id']] = $row['parent_id']; } // 过滤掉上级存在的区域 foreach ($selected_regions AS $region_id) { $id = $region_id; while ($region_list[$id] != 0) { $id = $region_list[$id]; if (isset($selected_regions[$id])) { unset($selected_regions[$region_id]); break; } } } /* 清除原有的城市和地区 */ $db->query("DELETE FROM ".$ecs->table("area_region")." WHERE shipping_area_id='$_POST[id]'"); /* 添加选定的城市和地区 */ foreach ($selected_regions AS $key => $val) { $sql = "INSERT INTO ".$ecs->table('area_region')." (shipping_area_id, region_id) VALUES ('$_POST[id]', '$val')"; $db->query($sql); } $lnk[] = array('text' => $_LANG['back_list'], 'href'=>'shipping_area.php?act=list&shipping='.$_POST['shipping']); sys_msg($_LANG['edit_area_success'], 0, $lnk); } } /*------------------------------------------------------ */ //-- 批量删除配送区域 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'multi_remove') { admin_priv('shiparea_manage'); if (isset($_POST['areas']) && count($_POST['areas']) > 0) { $i = 0; foreach ($_POST['areas'] AS $v) { $db->query("DELETE FROM " .$ecs->table('shipping_area'). " WHERE shipping_area_id='$v'"); $i++; } /* 记录管理员操作 */ admin_log('', 'batch_remove', 'shipping_area'); } /* 返回 */ $links[0] = array('href'=>'shipping_area.php?act=list&shipping=' . intval($_REQUEST['shipping']), 'text' => $_LANG['go_back']); sys_msg($_LANG['remove_success'], 0, $links); } /*------------------------------------------------------ */ //-- 编辑配送区域名称 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'edit_area') { /* 检查权限 */ check_authz_json('shiparea_manage'); /* 取得参数 */ $id = intval($_POST['id']); $val = json_str_iconv(trim($_POST['val'])); /* 取得该区域所属的配送id */ $shipping_id = $exc->get_name($id, 'shipping_id'); /* 检查是否有重复的配送区域名称 */ if (!$exc->is_only('shipping_area_name', $val, $id, "shipping_id = '$shipping_id'")) { make_json_error($_LANG['repeat_area_name']); } /* 更新名称 */ $exc->edit("shipping_area_name = '$val'", $id); /* 记录日志 */ admin_log($val, 'edit', 'shipping_area'); /* 返回 */ make_json_result(stripcslashes($val)); } /*------------------------------------------------------ */ //-- 删除配送区域 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'remove_area') { check_authz_json('shiparea_manage'); $id = intval($_GET['id']); $name = $exc->get_name($id); $shipping_id = $exc->get_name($id, 'shipping_id'); $exc->drop($id); $db->query('DELETE FROM '.$ecs->table('area_region').' WHERE shipping_area_id='.$id); admin_log($name, 'remove', 'shipping_area'); $list = get_shipping_area_list($shipping_id); $smarty->assign('areas', $list); make_json_result($smarty->fetch('shipping_area_list.htm')); } /** * 取得配送区域列表 * @param int $shipping_id 配送id */ function get_shipping_area_list($shipping_id) { $sql = "SELECT * FROM " . $GLOBALS['ecs']->table('shipping_area'); if ($shipping_id > 0) { $sql .= " WHERE shipping_id = '$shipping_id'"; } $res = $GLOBALS['db']->query($sql); $list = array(); while ($row = $GLOBALS['db']->fetchRow($res)) { $sql = "SELECT r.region_name " . "FROM " . $GLOBALS['ecs']->table('area_region'). " AS a, " . $GLOBALS['ecs']->table('region') . " AS r ". "WHERE a.region_id = r.region_id ". "AND a.shipping_area_id = '$row[shipping_area_id]'"; $regions = join(', ', $GLOBALS['db']->getCol($sql)); $row['shipping_area_regions'] = empty($regions) ? '<a href="shipping_area.php?act=region&id=' .$row['shipping_area_id']. '" style="color:red">' .$GLOBALS['_LANG']['empty_regions']. '</a>': $regions; $list[] = $row; } return $list; } ?>