table('region'), $db, 'region_id', 'region_name'); /* act操作项的初始化 */ if (empty($_REQUEST['act'])) { $_REQUEST['act'] = 'list'; } else { $_REQUEST['act'] = trim($_REQUEST['act']); } /*------------------------------------------------------ */ //-- 列出某地区下的所有地区列表 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'list') { admin_priv('area_list'); /* 取得参数:上级地区id */ $region_id = empty($_REQUEST['pid']) ? 0 : intval($_REQUEST['pid']); $smarty->assign('parent_id', $region_id); /* 取得列表显示的地区的类型 */ if ($region_id == 0) { $region_type = 0; } else { $region_type = $exc->get_name($region_id, 'region_type') + 1; } $smarty->assign('region_type', $region_type); /* 获取地区列表 */ $region_arr = area_list($region_id); $smarty->assign('region_arr', $region_arr); /* 当前的地区名称 */ if ($region_id > 0) { $area_name = $exc->get_name($region_id); $area = '[ '. $area_name . ' ] '; if ($region_arr) { $area .= $region_arr[0]['type']; } } else { $area = $_LANG['country']; } $smarty->assign('area_here', $area); /* 返回上一级的链接 */ if ($region_id > 0) { $parent_id = $exc->get_name($region_id, 'parent_id'); $action_link = array('text' => $_LANG['back_page'], 'href' => 'area_manage.php?act=list&&pid=' . $parent_id); } else { $action_link = array('text' => $_LANG['create_region_initial'], 'href'=>'area_manage.php?act=create_region_initial'); } $smarty->assign('action_link', $action_link); /* 赋值模板显示 */ $smarty->assign('ur_here', $_LANG['05_area_list']); $smarty->assign('full_page', 1); assign_query_info(); $smarty->display('area_list.htm'); } /*------------------------------------------------------ */ //-- 恢复默认地区 by wu /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'restore_region') { admin_priv('area_list'); $link[] = array('text' => $_LANG['go_back'], 'href' => 'area_manage.php?act=list'); //清空数据表 $sql = " TRUNCATE TABLE ".$GLOBALS['ecs']->table('region'); $GLOBALS['db']->query($sql); //插入数据 $sql = " INSERT INTO ".$GLOBALS['ecs']->table('region')." SELECT * FROM ".$GLOBALS['ecs']->table('region_backup'); if($GLOBALS['db']->query($sql)) { sys_msg($_LANG['restore_success'], 0, $link); } else { sys_msg($_LANG['restore_failure'], 0, $link); } } /*------------------------------------------------------ */ //-- 生成地区首字母 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'create_region_initial') { admin_priv('area_list'); $heads=' 生成地区首字母

返回上一页 生成地区首字母

'; $region_list = get_city_region(); $stime = sc_stime(); flush_echo($heads); $pin=new pin(); $arr = array(); //26个英文字母数组 $letters=array('A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z'); foreach($region_list as $key=>$region){ /* 设置最长执行时间为10分钟 */ @set_time_limit(600); foreach($letters as $val) { if(strtolower($val)==substr($pin->Pinyin($region['region_name'], EC_CHARSET),0,1)) { $region_list[$key]['initial'] = $val; @$arr[$val][$key]=$region_list[$key]; } } show_js_message("
" . "市级地区ID:[" . $region['region_id'] ."]  市级地区名称:". $region['region_name'] . "  首字母:" .$region_list[$key]['initial'] . "
" , 1); } write_static_cache('pin_regions', $arr, '/data/sc_file/'); $pass_time = sc_timer($stime); show_js_message('总用时:'.$pass_time.'秒' . "  (备注:当仓库里面的地区删除或增加时,生成一次,并更新后台缓存,务必避免连续操作生成.)"); } /*------------------------------------------------------ */ //-- 添加新的地区 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'add_area') { check_authz_json('area_list'); $parent_id = intval($_POST['parent_id']); $region_name = json_str_iconv(trim($_POST['region_name'])); $region_type = intval($_POST['region_type']); if (empty($region_name)) { make_json_error($_LANG['region_name_empty']); } /* 查看区域是否重复 */ if (!$exc->is_only('region_name', $region_name, 0, "parent_id = '$parent_id'")) { make_json_error($_LANG['region_name_exist']); } $sql = "INSERT INTO " . $ecs->table('region') . " (parent_id, region_name, region_type) ". "VALUES ('$parent_id', '$region_name', '$region_type')"; if ($GLOBALS['db']->query($sql, 'SILENT')) { admin_log($region_name, 'add','area'); /* 获取地区列表 */ $region_arr = area_list($parent_id); $smarty->assign('region_arr', $region_arr); $smarty->assign('region_type', $region_type); make_json_result($smarty->fetch('area_list.htm')); } else { make_json_error($_LANG['add_area_error']); } } /*------------------------------------------------------ */ //-- 编辑区域名称 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'edit_area_name') { check_authz_json('area_list'); $id = intval($_POST['id']); $region_name = json_str_iconv(trim($_POST['val'])); if (empty($region_name)) { make_json_error($_LANG['region_name_empty']); } $msg = ''; /* 查看区域是否重复 */ $parent_id = $exc->get_name($id, 'parent_id'); if (!$exc->is_only('region_name', $region_name, $id, "parent_id = '$parent_id'")) { make_json_error($_LANG['region_name_exist']); } if ($exc->edit("region_name = '$region_name'", $id)) { admin_log($region_name, 'edit', 'area'); make_json_result(stripslashes($region_name)); } else { make_json_error($db->error()); } } /*------------------------------------------------------ */ //-- 删除区域 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'drop_area') { check_authz_json('area_list'); $id = intval($_REQUEST['id']); $sql = "SELECT * FROM " . $ecs->table('region') . " WHERE region_id = '$id'"; $region = $db->getRow($sql); // /* 如果底下有下级区域,不能删除 */ // $sql = "SELECT COUNT(*) FROM " . $ecs->table('region') . " WHERE parent_id = '$id'"; // if ($db->getOne($sql) > 0) // { // make_json_error($_LANG['parent_id_exist']); // } $region_type=$region['region_type']; $delete_region[]=$id; $new_region_id =$id; if($region_type<6) { for($i=1;$i<6-$region_type;$i++) { $new_region_id=new_region_id($new_region_id); if(count($new_region_id)) { $delete_region=array_merge($delete_region,$new_region_id); } else { continue; } } } $sql="DELETE FROM ". $ecs->table("region")."WHERE region_id".db_create_in($delete_region); $db->query($sql); if ($exc->drop($id)) { admin_log(addslashes($region['region_name']), 'remove', 'area'); /* 获取地区列表 */ $region_arr = area_list($region['parent_id']); $smarty->assign('region_arr', $region_arr); $smarty->assign('region_type', $region['region_type']); make_json_result($smarty->fetch('area_list.htm')); } else { make_json_error($db->error()); } } function new_region_id($region_id) { $regions_id=array(); if(empty($region_id)) { return $regions_id; } $sql="SELECT region_id FROM ". $GLOBALS['ecs']->table("region")."WHERE parent_id ".db_create_in($region_id); $result=$GLOBALS['db']->getAll($sql); foreach($result as $val) { $regions_id[]=$val['region_id']; } return $regions_id; } ?>