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.
743 lines
29 KiB
743 lines
29 KiB
<?php
|
|
|
|
define('IN_ASC', true);
|
|
|
|
require(dirname(__FILE__) . '/includes/init.php');
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 用户帳號列表
|
|
/*------------------------------------------------------ */
|
|
|
|
if ($_REQUEST['act'] == 'list')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_manage');
|
|
$sql = "SELECT rank_id, rank_name, min_points FROM ".$ecs->table('user_rank')." ORDER BY min_points ASC ";
|
|
$rs = $db->query($sql);
|
|
|
|
$ranks = array();
|
|
while ($row = $db->FetchRow($rs))
|
|
{
|
|
$ranks[$row['rank_id']] = $row['rank_name'];
|
|
}
|
|
|
|
$smarty->assign('user_ranks', $ranks);
|
|
$smarty->assign('ur_here', $_LANG['03_users_list']);
|
|
$smarty->assign('action_link', array('text' => $_LANG['04_users_add'], 'href'=>'users.php?act=add'));
|
|
|
|
$user_list = user_list();
|
|
|
|
$smarty->assign('user_list', $user_list['user_list']);
|
|
$smarty->assign('filter', $user_list['filter']);
|
|
$smarty->assign('record_count', $user_list['record_count']);
|
|
$smarty->assign('page_count', $user_list['page_count']);
|
|
$smarty->assign('full_page', 1);
|
|
$smarty->assign('sort_user_id', '<img src="images/sort_desc.gif">');
|
|
|
|
assign_query_info();
|
|
$smarty->display('users_list.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- ajax返回用户列表
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'query')
|
|
{
|
|
$user_list = user_list();
|
|
|
|
$smarty->assign('user_list', $user_list['user_list']);
|
|
$smarty->assign('filter', $user_list['filter']);
|
|
$smarty->assign('record_count', $user_list['record_count']);
|
|
$smarty->assign('page_count', $user_list['page_count']);
|
|
|
|
$sort_flag = sort_flag($user_list['filter']);
|
|
$smarty->assign($sort_flag['tag'], $sort_flag['img']);
|
|
|
|
make_json_result($smarty->fetch('users_list.htm'), '', array('filter' => $user_list['filter'], 'page_count' => $user_list['page_count']));
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 添加會員帳號
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'add')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_manage');
|
|
|
|
$user = array( 'rank_points' => $_CFG['register_points'],
|
|
'pay_points' => $_CFG['register_points'],
|
|
'sex' => 0,
|
|
'credit_line' => 0
|
|
);
|
|
/* 取出註冊擴展字段 */
|
|
$sql = 'SELECT * FROM ' . $ecs->table('reg_fields') . ' WHERE type < 2 AND display = 1 AND id != 6 ORDER BY dis_order, id';
|
|
$extend_info_list = $db->getAll($sql);
|
|
$smarty->assign('extend_info_list', $extend_info_list);
|
|
|
|
$smarty->assign('ur_here', $_LANG['04_users_add']);
|
|
$smarty->assign('action_link', array('text' => $_LANG['03_users_list'], 'href'=>'users.php?act=list'));
|
|
$smarty->assign('form_action', 'insert');
|
|
$smarty->assign('user', $user);
|
|
$smarty->assign('special_ranks', get_rank_list(true));
|
|
|
|
assign_query_info();
|
|
$smarty->display('user_info.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 添加會員帳號
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'insert')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_manage');
|
|
$username = empty($_POST['username']) ? '' : trim($_POST['username']);
|
|
$password = empty($_POST['password']) ? '' : trim($_POST['password']);
|
|
$email = empty($_POST['email']) ? '' : trim($_POST['email']);
|
|
$sex = empty($_POST['sex']) ? 0 : intval($_POST['sex']);
|
|
$sex = in_array($sex, array(0, 1, 2)) ? $sex : 0;
|
|
$birthday = $_POST['birthdayYear'] . '-' . $_POST['birthdayMonth'] . '-' . $_POST['birthdayDay'];
|
|
$rank = empty($_POST['user_rank']) ? 0 : intval($_POST['user_rank']);
|
|
$credit_line = empty($_POST['credit_line']) ? 0 : floatval($_POST['credit_line']);
|
|
|
|
$users = init_users();
|
|
|
|
if (!$users->add_user($username, $password, $email))
|
|
{
|
|
/* 插入會員數據失敗 */
|
|
if ($users->error == ERR_INVALID_USERNAME)
|
|
{
|
|
$msg = $_LANG['username_invalid'];
|
|
}
|
|
elseif ($users->error == ERR_USERNAME_NOT_ALLOW)
|
|
{
|
|
$msg = $_LANG['username_not_allow'];
|
|
}
|
|
elseif ($users->error == ERR_USERNAME_EXISTS)
|
|
{
|
|
$msg = $_LANG['username_exists'];
|
|
}
|
|
elseif ($users->error == ERR_INVALID_EMAIL)
|
|
{
|
|
$msg = $_LANG['email_invalid'];
|
|
}
|
|
elseif ($users->error == ERR_EMAIL_NOT_ALLOW)
|
|
{
|
|
$msg = $_LANG['email_not_allow'];
|
|
}
|
|
elseif ($users->error == ERR_EMAIL_EXISTS)
|
|
{
|
|
$msg = $_LANG['email_exists'];
|
|
}
|
|
else
|
|
{
|
|
//die('Error:'.$users->error_msg());
|
|
}
|
|
sys_msg($msg, 1);
|
|
}
|
|
|
|
/* 註冊送積分 */
|
|
if (!empty($GLOBALS['_CFG']['register_points']))
|
|
{
|
|
log_account_change($_SESSION['user_id'], 0, 0, $GLOBALS['_CFG']['register_points'], $GLOBALS['_CFG']['register_points'], $_LANG['register_points']);
|
|
}
|
|
|
|
/*把新註冊用户的擴展信息插入數據庫*/
|
|
$sql = 'SELECT id FROM ' . $ecs->table('reg_fields') . ' WHERE type = 0 AND display = 1 ORDER BY dis_order, id'; //讀出所有擴展字段的id
|
|
$fields_arr = $db->getAll($sql);
|
|
|
|
$extend_field_str = ''; //生成擴展字段的內容字符串
|
|
$user_id_arr = $users->get_profile_by_name($username);
|
|
foreach ($fields_arr AS $val)
|
|
{
|
|
$extend_field_index = 'extend_field' . $val['id'];
|
|
if(!empty($_POST[$extend_field_index]))
|
|
{
|
|
$temp_field_content = strlen($_POST[$extend_field_index]) > 100 ? mb_substr($_POST[$extend_field_index], 0, 99) : $_POST[$extend_field_index];
|
|
$extend_field_str .= " ('" . $user_id_arr['user_id'] . "', '" . $val['id'] . "', '" . $temp_field_content . "'),";
|
|
}
|
|
}
|
|
$extend_field_str = substr($extend_field_str, 0, -1);
|
|
|
|
if ($extend_field_str) //插入註冊擴展數據
|
|
{
|
|
$sql = 'INSERT INTO '. $ecs->table('reg_extend_info') . ' (`user_id`, `reg_field_id`, `content`) VALUES' . $extend_field_str;
|
|
$db->query($sql);
|
|
}
|
|
|
|
/* 更新會員的其它信息 */
|
|
$other = array();
|
|
$other['credit_line'] = $credit_line;
|
|
$other['user_rank'] = $rank;
|
|
$other['sex'] = $sex;
|
|
$other['birthday'] = $birthday;
|
|
$other['reg_time'] = local_strtotime(local_date('Y-m-d H:i:s'));
|
|
|
|
$other['line'] = isset($_POST['extend_field1']) ? htmlspecialchars(trim($_POST['extend_field1'])) : '';
|
|
$other['facebook'] = isset($_POST['extend_field2']) ? htmlspecialchars(trim($_POST['extend_field2'])) : '';
|
|
$other['office_phone'] = isset($_POST['extend_field3']) ? htmlspecialchars(trim($_POST['extend_field3'])) : '';
|
|
$other['home_phone'] = isset($_POST['extend_field4']) ? htmlspecialchars(trim($_POST['extend_field4'])) : '';
|
|
$other['mobile_phone'] = isset($_POST['extend_field5']) ? htmlspecialchars(trim($_POST['extend_field5'])) : '';
|
|
|
|
$db->autoExecute($ecs->table('users'), $other, 'UPDATE', "user_name = '$username'");
|
|
|
|
/* 記錄管理員操作 */
|
|
admin_log($_POST['username'], 'add', 'users');
|
|
|
|
/* 提示信息 */
|
|
$link[] = array('text' => $_LANG['go_back'], 'href'=>'users.php?act=list');
|
|
sys_msg(sprintf($_LANG['add_success'], htmlspecialchars(stripslashes($_POST['username']))), 0, $link);
|
|
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 編輯用户帳號
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'edit')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_manage');
|
|
|
|
$sql = "SELECT u.user_name,u.real_name, u.sex, u.birthday, u.pay_points, u.rank_points, u.user_rank , u.user_money, u.frozen_money, u.credit_line, u.parent_id, u2.user_name as parent_username, u.facebook, u.line, u.office_phone, u.home_phone, u.mobile_phone".
|
|
" FROM " .$ecs->table('users'). " u LEFT JOIN " . $ecs->table('users') . " u2 ON u.parent_id = u2.user_id WHERE u.user_id='$_GET[id]'";
|
|
|
|
$row = $db->GetRow($sql);
|
|
$row['user_name'] = addslashes($row['user_name']);
|
|
$users = init_users();
|
|
$user = $users->get_user_info($row['user_name']);
|
|
|
|
$sql = "SELECT u.user_id, u.real_name,u.sex, u.birthday, u.pay_points, u.rank_points, u.user_rank , u.user_money, u.frozen_money, u.credit_line, u.parent_id, u2.user_name as parent_username, u.facebook, u.line,
|
|
u.office_phone, u.home_phone, u.mobile_phone".
|
|
" FROM " .$ecs->table('users'). " u LEFT JOIN " . $ecs->table('users') . " u2 ON u.parent_id = u2.user_id WHERE u.user_id='$_GET[id]'";
|
|
|
|
$row = $db->GetRow($sql);
|
|
|
|
if ($row)
|
|
{
|
|
$user['user_id'] = $row['user_id'];
|
|
$user['real_name'] = $row['real_name'];
|
|
$user['sex'] = $row['sex'];
|
|
$user['birthday'] = date($row['birthday']);
|
|
$user['pay_points'] = $row['pay_points'];
|
|
$user['rank_points'] = $row['rank_points'];
|
|
$user['user_rank'] = $row['user_rank'];
|
|
$user['user_money'] = $row['user_money'];
|
|
$user['frozen_money'] = $row['frozen_money'];
|
|
$user['credit_line'] = $row['credit_line'];
|
|
$user['formated_user_money'] = price_format($row['user_money']);
|
|
$user['formated_frozen_money'] = price_format($row['frozen_money']);
|
|
$user['parent_id'] = $row['parent_id'];
|
|
$user['parent_username']= $row['parent_username'];
|
|
$user['facebook'] = $row['facebook'];
|
|
$user['line'] = $row['line'];
|
|
$user['office_phone'] = $row['office_phone'];
|
|
$user['home_phone'] = $row['home_phone'];
|
|
$user['mobile_phone'] = $row['mobile_phone'];
|
|
}
|
|
else
|
|
{
|
|
$link[] = array('text' => $_LANG['go_back'], 'href'=>'users.php?act=list');
|
|
sys_msg($_LANG['username_invalid'], 0, $links);
|
|
// $user['sex'] = 0;
|
|
// $user['pay_points'] = 0;
|
|
// $user['rank_points'] = 0;
|
|
// $user['user_money'] = 0;
|
|
// $user['frozen_money'] = 0;
|
|
// $user['credit_line'] = 0;
|
|
// $user['formated_user_money'] = price_format(0);
|
|
// $user['formated_frozen_money'] = price_format(0);
|
|
}
|
|
|
|
/* 取出註冊擴展字段 */
|
|
$sql = 'SELECT * FROM ' . $ecs->table('reg_fields') . ' WHERE type < 2 AND display = 1 AND id != 6 ORDER BY dis_order, id';
|
|
$extend_info_list = $db->getAll($sql);
|
|
|
|
$sql = 'SELECT reg_field_id, content ' .
|
|
'FROM ' . $ecs->table('reg_extend_info') .
|
|
" WHERE user_id = $user[user_id]";
|
|
$extend_info_arr = $db->getAll($sql);
|
|
|
|
$temp_arr = array();
|
|
foreach ($extend_info_arr AS $val)
|
|
{
|
|
$temp_arr[$val['reg_field_id']] = $val['content'];
|
|
}
|
|
|
|
foreach ($extend_info_list AS $key => $val)
|
|
{
|
|
switch ($val['id'])
|
|
{
|
|
case 1: $extend_info_list[$key]['content'] = $user['line']; break;
|
|
case 2: $extend_info_list[$key]['content'] = $user['facebook']; break;
|
|
case 3: $extend_info_list[$key]['content'] = $user['office_phone']; break;
|
|
case 4: $extend_info_list[$key]['content'] = $user['home_phone']; break;
|
|
case 5: $extend_info_list[$key]['content'] = $user['mobile_phone']; break;
|
|
default: $extend_info_list[$key]['content'] = empty($temp_arr[$val['id']]) ? '' : $temp_arr[$val['id']] ;
|
|
}
|
|
}
|
|
|
|
$smarty->assign('extend_info_list', $extend_info_list);
|
|
|
|
/* 當前會員推薦信息 */
|
|
$affiliate = json_decode($GLOBALS['_CFG']['affiliate'],true);
|
|
$smarty->assign('affiliate', $affiliate);
|
|
|
|
empty($affiliate) && $affiliate = array();
|
|
|
|
if(empty($affiliate['config']['separate_by']))
|
|
{
|
|
//推薦註冊分成
|
|
$affdb = array();
|
|
$num = count($affiliate['item']);
|
|
$up_uid = "'$_GET[id]'";
|
|
for ($i = 1 ; $i <=$num ;$i++)
|
|
{
|
|
$count = 0;
|
|
if ($up_uid)
|
|
{
|
|
$sql = "SELECT user_id FROM " . $ecs->table('users') . " WHERE parent_id IN($up_uid)";
|
|
$query = $db->query($sql);
|
|
$up_uid = '';
|
|
while ($rt = $db->fetch_array($query))
|
|
{
|
|
$up_uid .= $up_uid ? ",'$rt[user_id]'" : "'$rt[user_id]'";
|
|
$count++;
|
|
}
|
|
}
|
|
$affdb[$i]['num'] = $count;
|
|
}
|
|
if ($affdb[1]['num'] > 0)
|
|
{
|
|
$smarty->assign('affdb', $affdb);
|
|
}
|
|
}
|
|
|
|
|
|
assign_query_info();
|
|
$smarty->assign('ur_here', $_LANG['users_edit']);
|
|
$smarty->assign('action_link', array('text' => $_LANG['03_users_list'], 'href'=>'users.php?act=list&' . list_link_postfix()));
|
|
$smarty->assign('user', $user);
|
|
$smarty->assign('form_action', 'update');
|
|
$smarty->assign('special_ranks', get_rank_list(true));
|
|
$smarty->display('user_info.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 更新用户帳號
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'update')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_manage');
|
|
$username = empty($_POST['username']) ? '' : trim($_POST['username']);
|
|
$password = empty($_POST['password']) ? '' : trim($_POST['password']);
|
|
$email = empty($_POST['email']) ? '' : trim($_POST['email']);
|
|
$sex = empty($_POST['sex']) ? 0 : intval($_POST['sex']);
|
|
$sex = in_array($sex, array(0, 1, 2)) ? $sex : 0;
|
|
$birthday = $_POST['birthdayYear'] . '-' . $_POST['birthdayMonth'] . '-' . $_POST['birthdayDay'];
|
|
$rank = empty($_POST['user_rank']) ? 0 : intval($_POST['user_rank']);
|
|
$credit_line = empty($_POST['credit_line']) ? 0 : floatval($_POST['credit_line']);
|
|
$real_name = empty($_POST['real_name']) ? '' : trim($_POST['real_name']);
|
|
|
|
$users = init_users();
|
|
|
|
if (!$users->edit_user(array('username'=>$username, 'password'=>$password, 'email'=>$email, 'gender'=>$sex, 'bday'=>$birthday ), 1))
|
|
{
|
|
if ($users->error == ERR_EMAIL_EXISTS)
|
|
{
|
|
$msg = $_LANG['email_exists'];
|
|
}
|
|
else
|
|
{
|
|
$msg = $_LANG['edit_user_failed'];
|
|
}
|
|
sys_msg($msg, 1);
|
|
}
|
|
if(!empty($password))
|
|
{
|
|
$sql="UPDATE ".$ecs->table('users'). "SET `ec_salt`='0' WHERE user_name= '".$username."'";
|
|
$db->query($sql);
|
|
}
|
|
/* 更新用户擴展字段的數據 */
|
|
$sql = 'SELECT id FROM ' . $ecs->table('reg_fields') . ' WHERE type = 0 AND display = 1 ORDER BY dis_order, id'; //讀出所有擴展字段的id
|
|
$fields_arr = $db->getAll($sql);
|
|
$user_id_arr = $users->get_profile_by_name($username);
|
|
$user_id = $user_id_arr['user_id'];
|
|
|
|
foreach ($fields_arr AS $val) //循環更新擴展用户信息
|
|
{
|
|
$extend_field_index = 'extend_field' . $val['id'];
|
|
if(isset($_POST[$extend_field_index]))
|
|
{
|
|
$temp_field_content = strlen($_POST[$extend_field_index]) > 100 ? mb_substr($_POST[$extend_field_index], 0, 99) : $_POST[$extend_field_index];
|
|
|
|
$sql = 'SELECT * FROM ' . $ecs->table('reg_extend_info') . " WHERE reg_field_id = '$val[id]' AND user_id = '$user_id'";
|
|
if ($db->getOne($sql)) //如果之前沒有記錄,則插入
|
|
{
|
|
$sql = 'UPDATE ' . $ecs->table('reg_extend_info') . " SET content = '$temp_field_content' WHERE reg_field_id = '$val[id]' AND user_id = '$user_id'";
|
|
}
|
|
else
|
|
{
|
|
$sql = 'INSERT INTO '. $ecs->table('reg_extend_info') . " (`user_id`, `reg_field_id`, `content`) VALUES ('$user_id', '$val[id]', '$temp_field_content')";
|
|
}
|
|
$db->query($sql);
|
|
}
|
|
}
|
|
|
|
|
|
/* 更新會員的其它信息 */
|
|
$other = array();
|
|
$other['credit_line'] = $credit_line;
|
|
$other['real_name'] = $real_name;
|
|
$other['user_rank'] = $rank;
|
|
|
|
$other['line'] = isset($_POST['extend_field1']) ? htmlspecialchars(trim($_POST['extend_field1'])) : '';
|
|
$other['facebook'] = isset($_POST['extend_field2']) ? htmlspecialchars(trim($_POST['extend_field2'])) : '';
|
|
$other['office_phone'] = isset($_POST['extend_field3']) ? htmlspecialchars(trim($_POST['extend_field3'])) : '';
|
|
$other['home_phone'] = isset($_POST['extend_field4']) ? htmlspecialchars(trim($_POST['extend_field4'])) : '';
|
|
$other['mobile_phone'] = isset($_POST['extend_field5']) ? htmlspecialchars(trim($_POST['extend_field5'])) : '';
|
|
|
|
$db->autoExecute($ecs->table('users'), $other, 'UPDATE', "user_name = '$username'");
|
|
|
|
/* 記錄管理員操作 */
|
|
admin_log($username, 'edit', 'users');
|
|
|
|
/* 提示信息 */
|
|
$links[0]['text'] = $_LANG['goto_list'];
|
|
$links[0]['href'] = 'users.php?act=list&' . list_link_postfix();
|
|
$links[1]['text'] = $_LANG['go_back'];
|
|
$links[1]['href'] = 'javascript:history.back()';
|
|
|
|
sys_msg($_LANG['update_success'], 0, $links);
|
|
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 批量刪除會員帳號
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'batch_remove')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_drop');
|
|
|
|
if (isset($_POST['checkboxes']))
|
|
{
|
|
$sql = "SELECT user_name FROM " . $ecs->table('users') . " WHERE user_id " . db_create_in($_POST['checkboxes']);
|
|
$col = $db->getCol($sql);
|
|
$usernames = implode(',',addslashes_deep($col));
|
|
$count = count($col);
|
|
/* 通過插件來刪除用户 */
|
|
$users = init_users();
|
|
$users->remove_user($col);
|
|
|
|
admin_log($usernames, 'batch_remove', 'users');
|
|
|
|
$lnk[] = array('text' => $_LANG['go_back'], 'href'=>'users.php?act=list');
|
|
sys_msg(sprintf($_LANG['batch_remove_success'], $count), 0, $lnk);
|
|
}
|
|
else
|
|
{
|
|
$lnk[] = array('text' => $_LANG['go_back'], 'href'=>'users.php?act=list');
|
|
sys_msg($_LANG['no_select_user'], 0, $lnk);
|
|
}
|
|
}
|
|
|
|
/* 編輯用户名 */
|
|
elseif ($_REQUEST['act'] == 'edit_username')
|
|
{
|
|
/* 檢查權限 */
|
|
check_authz_json('users_manage');
|
|
|
|
$username = empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));
|
|
$id = empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
|
|
|
|
if ($id == 0)
|
|
{
|
|
make_json_error('NO USER ID');
|
|
return;
|
|
}
|
|
|
|
if ($username == '')
|
|
{
|
|
make_json_error($GLOBALS['_LANG']['username_empty']);
|
|
return;
|
|
}
|
|
|
|
$users = init_users();
|
|
|
|
if ($users->edit_user($id, $username))
|
|
{
|
|
if ($_CFG['integrate_code'] != 'shop')
|
|
{
|
|
/* 更新商城會員表 */
|
|
$db->query('UPDATE ' .$ecs->table('users'). " SET user_name = '$username' WHERE user_id = '$id'");
|
|
}
|
|
|
|
admin_log(addslashes($username), 'edit', 'users');
|
|
make_json_result(stripcslashes($username));
|
|
}
|
|
else
|
|
{
|
|
$msg = ($users->error == ERR_USERNAME_EXISTS) ? $GLOBALS['_LANG']['username_exists'] : $GLOBALS['_LANG']['edit_user_failed'];
|
|
make_json_error($msg);
|
|
}
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 編輯email
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'edit_email')
|
|
{
|
|
/* 檢查權限 */
|
|
check_authz_json('users_manage');
|
|
|
|
$id = empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
|
|
$email = empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));
|
|
|
|
$users = init_users();
|
|
|
|
$sql = "SELECT user_name FROM " . $ecs->table('users') . " WHERE user_id = '$id'";
|
|
$username = $db->getOne($sql);
|
|
|
|
|
|
if (is_email($email))
|
|
{
|
|
if ($users->edit_user(array('username'=>$username, 'email'=>$email)))
|
|
{
|
|
admin_log(addslashes($username), 'edit', 'users');
|
|
|
|
make_json_result(stripcslashes($email));
|
|
}
|
|
else
|
|
{
|
|
$msg = ($users->error == ERR_EMAIL_EXISTS) ? $GLOBALS['_LANG']['email_exists'] : $GLOBALS['_LANG']['edit_user_failed'];
|
|
make_json_error($msg);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
make_json_error($GLOBALS['_LANG']['invalid_email']);
|
|
}
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 刪除會員帳號
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'remove')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_drop');
|
|
|
|
$sql = "SELECT user_name FROM " . $ecs->table('users') . " WHERE user_id = '" . $_GET['id'] . "'";
|
|
$username = $db->getOne($sql);
|
|
/* 通過插件來刪除用户 */
|
|
$users = init_users();
|
|
$users->remove_user($username); //已經刪除用户所有數據
|
|
|
|
/* 記錄管理員操作 */
|
|
admin_log(addslashes($username), 'remove', 'users');
|
|
|
|
/* 提示信息 */
|
|
$link[] = array('text' => $_LANG['go_back'], 'href'=>'users.php?act=list');
|
|
sys_msg(sprintf($_LANG['remove_success'], $username), 0, $link);
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 收貨地址查看
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'address_list')
|
|
{
|
|
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
|
|
$sql = "SELECT a.*, c.region_name AS country_name, p.region_name AS province, ct.region_name AS city_name, d.region_name AS district_name ".
|
|
" FROM " .$ecs->table('user_address'). " as a ".
|
|
" LEFT JOIN " . $ecs->table('region') . " AS c ON c.region_id = a.country " .
|
|
" LEFT JOIN " . $ecs->table('region') . " AS p ON p.region_id = a.province " .
|
|
" LEFT JOIN " . $ecs->table('region') . " AS ct ON ct.region_id = a.city " .
|
|
" LEFT JOIN " . $ecs->table('region') . " AS d ON d.region_id = a.district " .
|
|
" WHERE user_id='$id'";
|
|
$address = $db->getAll($sql);
|
|
$smarty->assign('address', $address);
|
|
assign_query_info();
|
|
$smarty->assign('ur_here', $_LANG['address_list']);
|
|
$smarty->assign('action_link', array('text' => $_LANG['03_users_list'], 'href'=>'users.php?act=list&' . list_link_postfix()));
|
|
$smarty->display('user_address_list.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 脱離推薦關係
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'remove_parent')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_manage');
|
|
|
|
$sql = "UPDATE " . $ecs->table('users') . " SET parent_id = 0 WHERE user_id = '" . $_GET['id'] . "'";
|
|
$db->query($sql);
|
|
|
|
/* 記錄管理員操作 */
|
|
$sql = "SELECT user_name FROM " . $ecs->table('users') . " WHERE user_id = '" . $_GET['id'] . "'";
|
|
$username = $db->getOne($sql);
|
|
admin_log(addslashes($username), 'edit', 'users');
|
|
|
|
/* 提示信息 */
|
|
$link[] = array('text' => $_LANG['go_back'], 'href'=>'users.php?act=list');
|
|
sys_msg(sprintf($_LANG['update_success'], $username), 0, $link);
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 查看用户推薦會員列表
|
|
/*------------------------------------------------------ */
|
|
|
|
elseif ($_REQUEST['act'] == 'aff_list')
|
|
{
|
|
/* 檢查權限 */
|
|
admin_priv('users_manage');
|
|
$smarty->assign('ur_here', $_LANG['03_users_list']);
|
|
|
|
$auid = $_GET['auid'];
|
|
$user_list['user_list'] = array();
|
|
|
|
$affiliate = json_decode($GLOBALS['_CFG']['affiliate'],true);
|
|
$smarty->assign('affiliate', $affiliate);
|
|
|
|
empty($affiliate) && $affiliate = array();
|
|
|
|
$num = count($affiliate['item']);
|
|
$up_uid = "'$auid'";
|
|
$all_count = 0;
|
|
for ($i = 1; $i<=$num; $i++)
|
|
{
|
|
$count = 0;
|
|
if ($up_uid)
|
|
{
|
|
$sql = "SELECT user_id FROM " . $ecs->table('users') . " WHERE parent_id IN($up_uid)";
|
|
$query = $db->query($sql);
|
|
$up_uid = '';
|
|
while ($rt = $db->fetch_array($query))
|
|
{
|
|
$up_uid .= $up_uid ? ",'$rt[user_id]'" : "'$rt[user_id]'";
|
|
$count++;
|
|
}
|
|
}
|
|
$all_count += $count;
|
|
|
|
if ($count)
|
|
{
|
|
$sql = "SELECT user_id, user_name, '$i' AS level, email, is_validated, user_money, frozen_money, rank_points, pay_points, reg_time ".
|
|
" FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_id IN($up_uid)" .
|
|
" ORDER by level, user_id";
|
|
$user_list['user_list'] = array_merge($user_list['user_list'], $db->getAll($sql));
|
|
}
|
|
}
|
|
|
|
$temp_count = count($user_list['user_list']);
|
|
for ($i=0; $i<$temp_count; $i++)
|
|
{
|
|
$user_list['user_list'][$i]['reg_time'] = local_date($_CFG['date_format'], $user_list['user_list'][$i]['reg_time']);
|
|
}
|
|
|
|
$user_list['record_count'] = $all_count;
|
|
|
|
$smarty->assign('user_list', $user_list['user_list']);
|
|
$smarty->assign('record_count', $user_list['record_count']);
|
|
$smarty->assign('full_page', 1);
|
|
$smarty->assign('action_link', array('text' => $_LANG['back_note'], 'href'=>"users.php?act=edit&id=$auid"));
|
|
|
|
assign_query_info();
|
|
$smarty->display('affiliate_list.htm');
|
|
}
|
|
|
|
/**
|
|
* 返回用户列表數據
|
|
*
|
|
* @access public
|
|
* @param
|
|
*
|
|
* @return void
|
|
*/
|
|
function user_list()
|
|
{
|
|
$result = get_filter();
|
|
if ($result === false)
|
|
{
|
|
/* 過濾條件 */
|
|
$filter['keywords'] = empty($_REQUEST['keywords']) ? '' : trim($_REQUEST['keywords']);
|
|
if (isset($_REQUEST['is_ajax']) && $_REQUEST['is_ajax'] == 1)
|
|
{
|
|
$filter['keywords'] = json_str_iconv($filter['keywords']);
|
|
}
|
|
$filter['rank'] = empty($_REQUEST['rank']) ? 0 : intval($_REQUEST['rank']);
|
|
$filter['pay_points_gt'] = empty($_REQUEST['pay_points_gt']) ? 0 : intval($_REQUEST['pay_points_gt']);
|
|
$filter['pay_points_lt'] = empty($_REQUEST['pay_points_lt']) ? 0 : intval($_REQUEST['pay_points_lt']);
|
|
|
|
$filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'user_id' : trim($_REQUEST['sort_by']);
|
|
$filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);
|
|
|
|
$ex_where = ' WHERE 1 ';
|
|
if ($filter['keywords'])
|
|
{
|
|
$ex_where .= " AND user_name LIKE '%" . mysql_like_quote($filter['keywords']) ."%'";
|
|
}
|
|
if ($filter['rank'])
|
|
{
|
|
$sql = "SELECT min_points, max_points, special_rank FROM ".$GLOBALS['ecs']->table('user_rank')." WHERE rank_id = '$filter[rank]'";
|
|
$row = $GLOBALS['db']->getRow($sql);
|
|
if ($row['special_rank'] > 0)
|
|
{
|
|
/* 特殊等級 */
|
|
$ex_where .= " AND user_rank = '$filter[rank]' ";
|
|
}
|
|
else
|
|
{
|
|
$ex_where .= " AND rank_points >= " . intval($row['min_points']) . " AND rank_points < " . intval($row['max_points']);
|
|
}
|
|
}
|
|
if ($filter['pay_points_gt'])
|
|
{
|
|
$ex_where .=" AND pay_points >= '$filter[pay_points_gt]' ";
|
|
}
|
|
if ($filter['pay_points_lt'])
|
|
{
|
|
$ex_where .=" AND pay_points < '$filter[pay_points_lt]' ";
|
|
}
|
|
|
|
$filter['record_count'] = $GLOBALS['db']->getOne("SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('users') . $ex_where);
|
|
|
|
/* 分頁大小 */
|
|
$filter = page_and_size($filter);
|
|
$sql = "SELECT user_id, sso_user_id, user_name,real_name, mobile_phone, email, is_validated, user_money, frozen_money, rank_points, pay_points, reg_time,parent_id ".
|
|
" FROM " . $GLOBALS['ecs']->table('users') . $ex_where .
|
|
" ORDER by " . $filter['sort_by'] . ' ' . $filter['sort_order'] .
|
|
" LIMIT " . $filter['start'] . ',' . $filter['page_size'];
|
|
|
|
$filter['keywords'] = stripslashes($filter['keywords']);
|
|
set_filter($filter, $sql);
|
|
}
|
|
else
|
|
{
|
|
$sql = $result['sql'];
|
|
$filter = $result['filter'];
|
|
}
|
|
|
|
$user_list = $GLOBALS['db']->getAll($sql);
|
|
|
|
$count = count($user_list);
|
|
for ($i=0; $i<$count; $i++)
|
|
{
|
|
$user_list[$i]['reg_time'] = local_date($GLOBALS['_CFG']['date_format'], $user_list[$i]['reg_time']);
|
|
$user_list[$i]['parent'] = $GLOBALS['db']->GetOne('SELECT real_name FROM ' . $GLOBALS['ecs']->table('users') .' WHERE sso_user_id = \''.$user_list[$i]['parent_id'].'\'');
|
|
|
|
}
|
|
|
|
$arr = array('user_list' => $user_list, 'filter' => $filter,
|
|
'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
|
|
|
|
return $arr;
|
|
}
|
|
|
|
?>
|