697 lines
34 KiB
PHP
697 lines
34 KiB
PHP
<?php
|
|
/**
|
|
* [Discuz!] (C)2001-2099 Comsenz Inc.
|
|
* This is NOT a freeware, use is subject to license terms
|
|
*
|
|
* $Id: admincp_verify.php 33455 2013-06-19 03:52:01Z andyzheng $
|
|
*/
|
|
|
|
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
|
|
exit('Access Denied');
|
|
}
|
|
cpheader();
|
|
$operation = $operation ? $operation : '';
|
|
|
|
$anchor = in_array($_GET['anchor'], array('base', 'edit', 'verify', 'verify1', 'verify2', 'verify3', 'verify4', 'verify5', 'verify6', 'authstr', 'refusal', 'pass')) ? $_GET['anchor'] : 'base';
|
|
$current = array($anchor => 1);
|
|
$navmenu = array();
|
|
|
|
if($operation == 'verify') {
|
|
loadcache('profilesetting');
|
|
$vid = intval($_GET['do']);
|
|
$anchor = in_array($_GET['anchor'], array('authstr', 'refusal', 'pass', 'add')) ? $_GET['anchor'] : 'authstr';
|
|
$current = array($anchor => 1);
|
|
if($anchor == 'add') {
|
|
if(!submitcheck('addverifysubmit') || $vid < 0 || $vid > 6) {
|
|
$navmenu[0] = array('members_verify_nav_authstr', 'verify&operation=verify&anchor=authstr&do='.$vid, 0);
|
|
$navmenu[1] = array('members_verify_nav_refusal', 'verify&operation=verify&anchor=refusal&do='.$vid, 0);
|
|
$navmenu[2] = array('members_verify_nav_pass', 'verify&operation=verify&anchor=pass&do='.$vid, 0);
|
|
$navmenu[3] = array('members_verify_nav_add', 'verify&operation=verify&anchor=add&do='.$vid, 1);
|
|
$vid ? shownav('user', 'nav_members_verify', $_G['setting']['verify'][$vid]['title']) : shownav('user', $_G['setting']['verify'][$vid]['title']);
|
|
showsubmenu($lang['members_verify_add'].'-'.$_G['setting']['verify'][$vid]['title'], $navmenu);
|
|
showformheader("verify&operation=verify&anchor=add&do=$vid", 'enctype');
|
|
showtableheader();
|
|
showsetting('members_verify_userlist', 'users', $member['users'], 'textarea');
|
|
showsubmit('addverifysubmit');
|
|
showtablefooter();
|
|
showformfooter();
|
|
} else {
|
|
$userlist = explode("\r\n", $_GET['users']);
|
|
$insert = array();
|
|
$haveuser = false;
|
|
$members = C::t('common_member')->fetch_all_by_username($userlist);
|
|
$vuids = array();
|
|
foreach($members as $value) {
|
|
$vuids[$value['uid']] = $value['uid'];
|
|
}
|
|
$verifyusers = C::t('common_member_verify')->fetch_all($vuids);
|
|
foreach($members as $member) {
|
|
if(isset($verifyusers[$member['uid']])) {
|
|
C::t('common_member_verify')->update($member['uid'], array("verify$vid" => 1));
|
|
} else {
|
|
C::t('common_member_verify')->insert(array('uid'=>$member['uid'], "verify$vid" => 1));
|
|
}
|
|
$haveuser = true;
|
|
}
|
|
if($haveuser) {
|
|
cpmsg('members_verify_add_user_succeed', 'action=verify&operation=verify&do='.$vid.'&anchor=pass', 'succeed');
|
|
} else {
|
|
cpmsg_error('members_verify_add_user_failure', 'action=verify&operation=add&vid='.$vid);
|
|
}
|
|
}
|
|
|
|
} else {
|
|
if($anchor != 'pass') {
|
|
$_GET['verifytype'] = $vid;
|
|
} else {
|
|
$_GET['verify'.$vid] = 1;
|
|
$_GET['orderby'] = 'uid';
|
|
}
|
|
require_once libfile('function/profile');
|
|
if(!submitcheck('verifysubmit', true)) {
|
|
|
|
$menutitle = $vid ? $_G['setting']['verify'][$vid]['title'] : $lang['members_verify_profile'];
|
|
$navmenu[0] = array('members_verify_nav_authstr', 'verify&operation=verify&anchor=authstr&do='.$vid, $current['authstr']);
|
|
$navmenu[1] = array('members_verify_nav_refusal', 'verify&operation=verify&anchor=refusal&do='.$vid, $current['refusal']);
|
|
if($vid) {
|
|
$navmenu[2] = array('members_verify_nav_pass', 'verify&operation=verify&anchor=pass&do='.$vid, $current['pass']);
|
|
$navmenu[3] = array('members_verify_nav_add', 'verify&operation=verify&anchor=add&do='.$vid, $current['add']);
|
|
}
|
|
$vid ? shownav('user', 'nav_members_verify', $menutitle) : shownav('user', $menutitle);
|
|
showsubmenu($lang['members_verify_verify'].($vid ? '-'.$menutitle : ''), $navmenu);
|
|
|
|
|
|
$searchlang = array();
|
|
$keys = array('search', 'likesupport', 'resultsort', 'defaultsort', 'orderdesc', 'orderasc', 'perpage_10', 'perpage_20', 'perpage_50', 'perpage_100',
|
|
'members_verify_dateline', 'members_verify_uid', 'members_verify_username', 'members_verify_fieldid');
|
|
foreach ($keys as $key) {
|
|
$searchlang[$key] = cplang($key);
|
|
}
|
|
|
|
$orderby = isset($_GET['orderby']) ? $_GET['orderby'] : '';
|
|
$datehtml = $orderbyhtml = '';
|
|
if($anchor != 'pass') {
|
|
$datehtml = "<tr><th>$searchlang[members_verify_dateline]</th><td colspan=\"3\">
|
|
<input type=\"text\" name=\"dateline1\" value=\"$_GET[dateline1]\" size=\"10\" onclick=\"showcalendar(event, this)\"> ~
|
|
<input type=\"text\" name=\"dateline2\" value=\"$_GET[dateline2]\" size=\"10\" onclick=\"showcalendar(event, this)\"> (YYYY-MM-DD)
|
|
</td></tr>";
|
|
$orderbyhtml = "<select name=\"orderby\"><option value=\"dateline\"$orderby[dateline]>$searchlang[members_verify_dateline]</option> </select>";
|
|
} else {
|
|
$orderbyhtml = "<select name=\"orderby\"><option value=\"uid\"$orderby[dateline]>$searchlang[members_verify_uid]</option> </select>";
|
|
}
|
|
|
|
|
|
$ordersc = isset($_GET['ordersc']) ? $_GET['ordersc'] : '';
|
|
$perpages = isset($_GET['perpages']) ? $_GET['perpages'] : '';
|
|
$adminscript = ADMINSCRIPT;
|
|
$expertsearch = $vid ? ' <a href="'.ADMINSCRIPT.'?action=members&operation=search&more=1&vid='.$vid.'" target="_top">'.cplang('search_higher').'</a>' : '';
|
|
echo <<<EOF
|
|
<form method="get" autocomplete="off" action="$adminscript">
|
|
<div class="block style4">
|
|
<table cellspacing="3" cellpadding="3">
|
|
<tr>
|
|
<th>$searchlang[members_verify_username]* </th><td><input type="text" name="username" value="$_GET[username]"></td>
|
|
<th>$searchlang[members_verify_uid]</th><td><input type="text" name="uid" value="$_GET[uid]"> *$searchlang[likesupport]</td>
|
|
|
|
</tr>
|
|
$datehtml
|
|
<tr>
|
|
<th>$searchlang[resultsort]</th>
|
|
<td colspan="3">
|
|
$orderbyhtml
|
|
<select name="ordersc">
|
|
<option value="desc"$ordersc[desc]>$searchlang[orderdesc]</option>
|
|
<option value="asc"$ordersc[asc]>$searchlang[orderasc]</option>
|
|
</select>
|
|
<select name="perpage">
|
|
<option value="10"$perpages[10]>$searchlang[perpage_10]</option>
|
|
<option value="20"$perpages[20]>$searchlang[perpage_20]</option>
|
|
<option value="50"$perpages[50]>$searchlang[perpage_50]</option>
|
|
<option value="100"$perpages[100]>$searchlang[perpage_100]</option>
|
|
</select>
|
|
<input type="hidden" name="action" value="verify">
|
|
<input type="hidden" name="operation" value="verify">
|
|
<input type="hidden" name="do" value="$vid">
|
|
<input type="hidden" name="anchor" value="$anchor">
|
|
<input type="submit" name="searchsubmit" value="$searchlang[search]" class="btn">$expertsearch
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
<iframe id="frame_profile" name="frame_profile" style="display: none"></iframe>
|
|
<script type="text/javascript" src="static/js/calendar.js"></script>
|
|
<script type="text/javascript">
|
|
function showreason(vid, flag) {
|
|
var reasonobj = $('reason_'+vid);
|
|
if(reasonobj) {
|
|
reasonobj.style.display = flag ? '' : 'none';
|
|
}
|
|
if(!flag && $('verifyitem_' + vid) != null) {
|
|
var checkboxs = $('verifyitem_' + vid).getElementsByTagName('input');
|
|
for(var i in checkboxs) {
|
|
if(checkboxs[i].type == 'checkbox') {
|
|
checkboxs[i].checked = '';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function mod_setbg(vid, value) {
|
|
$('mod_' + vid + '_row').className = 'mod_' + value;
|
|
}
|
|
function mod_setbg_all(value) {
|
|
checkAll('option', $('cpform'), value);
|
|
var trs = $('cpform').getElementsByTagName('TR');
|
|
for(var i in trs) {
|
|
if(trs[i].id && trs[i].id.substr(0, 4) == 'mod_') {
|
|
trs[i].className = 'mod_' + value;
|
|
showreason(trs[i].getAttribute('verifyid'), value == 'refusal' ? 1 : 0);
|
|
}
|
|
}
|
|
}
|
|
function mod_cancel_all() {
|
|
var inputs = $('cpform').getElementsByTagName('input');
|
|
for(var i in inputs) {
|
|
if(inputs[i].type == 'radio') {
|
|
inputs[i].checked = '';
|
|
}
|
|
}
|
|
var trs = $('cpform').getElementsByTagName('TR');
|
|
for(var i in trs) {
|
|
if(trs[i].id && trs[i].id.match(/^mod_(\d+)_row$/)) {
|
|
trs[i].className = "mod_cancel";
|
|
showreason(trs[i].getAttribute('verifyid'), 0)
|
|
}
|
|
}
|
|
}
|
|
function singleverify(vid) {
|
|
var formobj = $('cpform');
|
|
var oldaction = formobj.action;
|
|
formobj.action = oldaction+'&frame=no&singleverify='+vid;
|
|
formobj.target = "frame_profile";
|
|
formobj.submit();
|
|
formobj.action = oldaction;
|
|
formobj.target = "";
|
|
}
|
|
|
|
</script>
|
|
EOF;
|
|
|
|
$mpurl = ADMINSCRIPT.'?action=verify&operation=verify&anchor='.$anchor.'&do='.$vid;
|
|
|
|
if($anchor == 'refusal') {
|
|
$_GET['flag'] = -1;
|
|
} elseif ($anchor == 'authstr') {
|
|
$_GET['flag'] = 0;
|
|
}
|
|
$intkeys = array('uid', 'verifytype', 'flag', 'verify1', 'verify2', 'verify3', 'verify4', 'verify5', 'verify6');
|
|
$strkeys = array();
|
|
$randkeys = array();
|
|
$likekeys = array('username');
|
|
$results = getwheres($intkeys, $strkeys, $randkeys, $likekeys, 'v.');
|
|
foreach($likekeys as $k) {
|
|
$_GET[$k] = dhtmlspecialchars($_GET[$k]);
|
|
}
|
|
$mpurl .= '&'.implode('&', $results['urls']);
|
|
$wherearr = $results['wherearr'];
|
|
if($_GET['dateline1']){
|
|
$wherearr[] = "v.dateline >= '".strtotime($_GET['dateline1'])."'";
|
|
$mpurl .= '&dateline1='.$_GET['dateline1'];
|
|
}
|
|
if($_GET['dateline2']){
|
|
$wherearr[] = "v.dateline <= '".strtotime($_GET['dateline2'])."'";
|
|
$mpurl .= '&dateline2='.$_GET['dateline2'];
|
|
}
|
|
|
|
$wheresql = empty($wherearr)?'1':implode(' AND ', $wherearr);
|
|
|
|
$orders = getorders(array('dateline', 'uid'), 'dateline', 'v.');
|
|
$ordersql = $orders['sql'];
|
|
if($orders['urls']) $mpurl .= '&'.implode('&', $orders['urls']);
|
|
$orderby = array($_GET['orderby']=>' selected');
|
|
$ordersc = array($_GET['ordersc']=>' selected');
|
|
|
|
$orders = in_array($_G['orderby'], array('dateline', 'uid')) ? $_G['orderby'] : 'dateline';
|
|
$ordersc = in_array(strtolower($_GET['ordersc']), array('asc', 'desc')) ? $_GET['ordersc'] : 'desc';
|
|
|
|
$perpage = empty($_GET['perpage']) ? 0 : intval($_GET['perpage']);
|
|
if(!in_array($perpage, array(10, 20,50,100))) $perpage = 10;
|
|
$perpages = array($perpage=>' selected');
|
|
$mpurl .= '&perpage='.$perpage;
|
|
|
|
$page = empty($_GET['page'])?1:intval($_GET['page']);
|
|
if($page<1) $page = 1;
|
|
$start = ($page-1)*$perpage;
|
|
|
|
$multipage = '';
|
|
|
|
showformheader("verify&operation=verify&do=".$vid.'&anchor='.$anchor);
|
|
echo "<script>disallowfloat = '{$_G[setting][disallowfloat]}';</script><input type=\"hidden\" name=\"verifysubmit\" value=\"trun\" />";
|
|
showtableheader('members_verify_manage', 'fixpadding');
|
|
|
|
if($anchor != 'pass') {
|
|
$cssarr = array('width="90"', 'width="120"', 'width="120"', '');
|
|
$titlearr = array($lang['members_verify_username'], $lang['members_verify_type'], $lang['members_verify_dateline'], $lang['members_verify_info']);
|
|
showtablerow('class="header"', $cssarr, $titlearr);
|
|
$count = C::t('common_member_verify_info')->count_by_search($_GET['uid'], $vid, $_GET['flag'], $_GET['username'], strtotime($_GET['dateline1']), strtotime($_GET['dateline2']));
|
|
} else {
|
|
$cssarr = array('width="80"', 'width="90"', 'width="120"', '');
|
|
$titlearr = array('', $lang['members_verify_username'], $lang['members_verify_type'], $lang['members_verify_info']);
|
|
showtablerow('class="header"', $cssarr, $titlearr);
|
|
$wheresql = (!empty($_GET['username']) ? str_replace('v.username', 'm.username', $wheresql) : $wheresql) . ' AND v.uid=m.uid ';
|
|
$count = C::t('common_member_verify')->count_by_search($_GET['uid'], $vid, $_GET['username']);
|
|
}
|
|
if($count) {
|
|
|
|
if($anchor != 'pass') {
|
|
$verifyusers = C::t('common_member_verify_info')->fetch_all_search($_GET['uid'], $vid, $_GET['flag'], $_GET['username'], strtotime($_GET['dateline1']), strtotime($_GET['dateline2']), $orders, $start, $perpage, $ordersc);
|
|
} else {
|
|
$verifyusers = C::t('common_member_verify')->fetch_all_search($_GET['uid'], $vid, $_GET['username'], 'v.uid', $start, $perpage, $ordersc);
|
|
$verifyuids = array_keys($verifyusers);
|
|
$profiles = C::t('common_member_profile')->fetch_all($verifyuids, false, 0);
|
|
}
|
|
|
|
foreach($verifyusers as $uid => $value) {
|
|
if($anchor == 'pass') {
|
|
$value = array_merge($value, $profiles[$uid]);
|
|
}
|
|
$value['username'] = '<a href="home.php?mod=space&uid='.$value['uid'].'&do=profile" target="_blank">'.avatar($value['uid'], "small").'<br/>'.$value['username'].'</a>';
|
|
if($anchor != 'pass') {
|
|
$fields = $anchor != 'pass' ? dunserialize($value['field']) : $_G['setting']['verify'][$vid]['field'];
|
|
$verifytype = $value['verifytype'] ? $_G['setting']['verify'][$value['verifytype']]['title'] : $lang['members_verify_profile'];
|
|
$fieldstr = '<table width="96%">';
|
|
$i = 0;
|
|
$fieldstr .= '<tr>'.($anchor == 'authstr' ? '<td width="26">'.$lang[members_verify_refusal].'</td>' : '').'<td width="100">'.$lang['members_verify_fieldid'].'</td><td>'.$lang['members_verify_newvalue'].'</td></tr><tbody id="verifyitem_'.$value[vid].'">';
|
|
$i++;
|
|
foreach($fields as $key => $field) {
|
|
if(in_array($key, array('constellation', 'zodiac', 'birthyear', 'birthmonth', 'birthprovince', 'birthdist', 'birthcommunity', 'resideprovince', 'residedist', 'residecommunity'))) {
|
|
continue;
|
|
}
|
|
if($_G['cache']['profilesetting'][$key]['formtype'] == 'file') {
|
|
if($field) {
|
|
$field = '<a href="'.(getglobal('setting/attachurl').'./profile/'.$field).'" target="_blank"><img src="'.(getglobal('setting/attachurl').'./profile/'.$field).'" class="verifyimg" /></a>';
|
|
} else {
|
|
$field = cplang('members_verify_pic_removed');
|
|
}
|
|
} elseif(in_array($key, array('gender', 'birthday', 'birthcity', 'residecity'))) {
|
|
$field = profile_show($key, $fields);
|
|
}
|
|
$fieldstr .= '<tr>'.($anchor == 'authstr' ? '<td><input type="checkbox" name="refusal['.$value['vid'].']['.$key.']" value="'.$key.'" onclick="$(\'refusal'.$value['vid'].'\').click();" /></td>' : '').'<td>'.$_G['cache']['profilesetting'][$key]['title'].':</td><td>'.$field.'</td></tr>';
|
|
$i++;
|
|
}
|
|
$opstr = "";
|
|
|
|
if($anchor == 'authstr') {
|
|
$opstr .= "<label><input class=\"radio\" type=\"radio\" name=\"verify[$value[vid]]\" value=\"validate\" onclick=\"mod_setbg($value[vid], 'validate');showreason($value[vid], 0);\">$lang[validate]</label> <label><input class=\"radio\" type=\"radio\" name=\"verify[$value[vid]]\" value=\"refusal\" id=\"refusal$value[vid]\" onclick=\"mod_setbg($value[vid], 'refusal');showreason($value[vid], 1);\">$lang[members_verify_refusal]</label>";
|
|
} elseif ($anchor == 'refusal') {
|
|
$opstr .= "<label><input class=\"radio\" type=\"radio\" name=\"verify[$value[vid]]\" value=\"validate\" onclick=\"mod_setbg($value[vid], 'validate');\">$lang[validate]</label>";
|
|
}
|
|
|
|
$fieldstr .= "</tbody><tr><td colspan=\"5\">$opstr <span id=\"reason_$value[vid]\" style=\"display: none;\">$lang[moderate_reasonpm] <input type=\"text\" class=\"txt\" name=\"reason[$value[vid]]\" style=\"margin: 0px;\"></span> <input type=\"button\" value=\"$lang[moderate]\" name=\"singleverifysubmit\" class=\"btn\" onclick=\"singleverify($value[vid]);\"></td></tr></table>";
|
|
|
|
$valuearr = array($value['username'], $verifytype, dgmdate($value['dateline'], 'dt'), $fieldstr);
|
|
showtablerow("id=\"mod_$value[vid]_row\" verifyid=\"$value[vid]\"", $cssarr, $valuearr);
|
|
} else {
|
|
$fields = $_G['setting']['verify'][$vid]['field'];
|
|
$verifytype = $vid ? $_G['setting']['verify'][$vid]['title'] : $lang['members_verify_profile'];
|
|
|
|
$fieldstr = '<table width="96%">';
|
|
$fieldstr .= '<tr><td width="100">'.$lang['members_verify_fieldid'].'</td><td>'.$lang['members_verify_newvalue'].'</td></tr>';
|
|
foreach($fields as $key => $field) {
|
|
if(!in_array($key, array('constellation', 'zodiac', 'birthyear', 'birthmonth', 'birthprovince', 'birthdist', 'birthcommunity', 'resideprovince', 'residedist', 'residecommunity'))) {
|
|
if(in_array($key, array('gender', 'birthday', 'birthcity', 'residecity'))) {
|
|
$value[$field] = profile_show($key, $value);
|
|
}
|
|
if($_G['cache']['profilesetting'][$key]['formtype'] == 'file') {
|
|
if($value[$field]) {
|
|
$value[$field] = '<a href="'.(getglobal('setting/attachurl').'./profile/'.$value[$field]).'" target="_blank"><img src="'.(getglobal('setting/attachurl').'./profile/'.$value[$field]).'" class="verifyimg" /></a>';
|
|
} else {
|
|
$value[$field] = cplang('members_verify_pic_removed');
|
|
}
|
|
}
|
|
$fieldstr .= '<tr><td width="100">'.$_G['cache']['profilesetting'][$key]['title'].':</td><td>'.$value[$field].'</td></tr>';
|
|
}
|
|
}
|
|
$fieldstr .= "</table>";
|
|
$opstr = "<ul class=\"nofloat\"><li><label><input class=\"radio\" type=\"radio\" name=\"verify[$value[uid]]\" value=\"export\" onclick=\"mod_setbg($value[uid], 'validate');\">$lang[export]</label></li><li><label><input class=\"radio\" type=\"radio\" name=\"verify[$value[uid]]\" value=\"refusal\" onclick=\"mod_setbg($value[uid], 'refusal');\">$lang[members_verify_refusal]</label></li></ul>";
|
|
$valuearr = array($opstr, $value['username'], $verifytype, $fieldstr);
|
|
showtablerow("id=\"mod_$value[uid]_row\"", $cssarr, $valuearr);
|
|
}
|
|
}
|
|
$multipage = multi($count, $perpage, $page, $mpurl);
|
|
if($anchor != 'pass') {
|
|
showsubmit('batchverifysubmit', 'submit', '', '<a href="#all" onclick="mod_setbg_all(\'validate\')">'.cplang('moderate_all_validate').'</a>'. ($anchor == 'authstr' ? ' <a href="#all" onclick="mod_setbg_all(\'refusal\')">'.cplang('moderate_refusal_all').'</a>' : '').' <a href="#all" onclick="mod_cancel_all();">'.cplang('moderate_cancel_all').'</a>', $multipage, false);
|
|
} else {
|
|
showsubmit('batchverifysubmit', 'submit', '', '<a href="#all" onclick="mod_setbg_all(\'export\')">'.cplang('moderate_export_all').'</a> <a href="#all" onclick="mod_setbg_all(\'refusal\')">'.cplang('moderate_refusal_all').'</a> <a href="#all" onclick="mod_cancel_all();">'.cplang('moderate_cancel_all').'</a> | <a href="'.ADMINSCRIPT.'?action=verify&operation=verify&do=1&anchor=pass&verifysubmit=true">'.cplang('moderate_export_getall').'</a>', $multipage, false);
|
|
}
|
|
} else {
|
|
showtablerow('', 'colspan="'.count($cssarr).'"', '<strong>'.cplang('moderate_nodata').'</strong>');
|
|
}
|
|
|
|
showtablefooter();
|
|
showformfooter();
|
|
|
|
} else {
|
|
|
|
if($anchor == 'pass') {
|
|
$verifyuids = array();
|
|
$note_values = array(
|
|
'verify' => $vid ? '<a href="home.php?mod=spacecp&ac=profile&op=verify&vid='.$vid.'" target="_blank">'.$_G['setting']['verify'][$vid]['title'].'</a>' : ''
|
|
);
|
|
foreach($_GET['verify'] as $uid => $type) {
|
|
if($type == 'export') {
|
|
$verifyuids['export'][] = $uid;
|
|
} elseif($type == 'refusal') {
|
|
$verifyuids['refusal'][] = $uid;
|
|
notification_add($uid, 'verify', 'profile_verify_pass_refusal', $note_values, 1);
|
|
}
|
|
}
|
|
if(is_array($verifyuids['refusal']) && !empty($verifyuids['refusal'])) {
|
|
C::t('common_member_verify')->update($verifyuids['refusal'], array("verify$vid" => '0'));
|
|
}
|
|
if(is_array($verifyuids['export']) && !empty($verifyuids['export']) || empty($verifyuids['refusal'])) {
|
|
$uids = array();
|
|
if(is_array($verifyuids['export']) && !empty($verifyuids['export'])) {
|
|
$uids = $verifyuids['export'];
|
|
}
|
|
$fields = $_G['setting']['verify'][$vid]['field'];
|
|
$fields = array_reverse($fields);
|
|
$fields['username'] = 'username';
|
|
$fields = array_reverse($fields);
|
|
$title = $verifylist = '';
|
|
$showtitle = true;
|
|
$verifyusers = C::t('common_member_verify')->fetch_all_by_vid($vid, 1, $uids);
|
|
$verifyuids = array_keys($verifyusers);
|
|
$members = C::t('common_member')->fetch_all($verifyuids, false, 0);
|
|
$profiles = C::t('common_member_profile')->fetch_all($verifyuids, false, 0);
|
|
foreach($verifyusers as $uid => $value) {
|
|
$value = array_merge($value, $members[$uid], $profiles[$uid]);
|
|
$str = $common = '';
|
|
foreach($fields as $key => $field) {
|
|
if(in_array($key, array('constellation', 'zodiac', 'birthyear', 'birthmonth', 'birthprovince', 'birthdist', 'birthcommunity', 'resideprovince', 'residedist', 'residecommunity'))) {
|
|
continue;
|
|
}
|
|
if($showtitle) {
|
|
$title .= $common.($key == 'username' ? $lang['username'] : $_G['cache']['profilesetting'][$key]['title']);
|
|
}
|
|
if(in_array($key, array('gender', 'birthday', 'birthcity', 'residecity'))) {
|
|
$value[$field] = profile_show($key, $value);
|
|
}
|
|
$str .= $common.$value[$field];
|
|
$common = "\t";
|
|
}
|
|
$verifylist .= $str."\n";
|
|
$showtitle = false;
|
|
}
|
|
$verifylist = $title."\n".$verifylist;
|
|
$filename = date('Ymd', TIMESTAMP).'.xls';
|
|
|
|
define('FOOTERDISABLED', true);
|
|
ob_end_clean();
|
|
header("Content-type:application/vnd.ms-excel");
|
|
header('Content-Encoding: none');
|
|
header('Content-Disposition: attachment; filename='.$filename);
|
|
header('Pragma: no-cache');
|
|
header('Expires: 0');
|
|
if($_G['charset'] != 'gbk') {
|
|
$verifylist = diconv($verifylist, $_G['charset'], 'GBK');
|
|
}
|
|
echo $verifylist;
|
|
exit();
|
|
} else {
|
|
cpmsg('members_verify_succeed', 'action=verify&operation=verify&do='.$vid.'&anchor=pass', 'succeed');
|
|
}
|
|
} else {
|
|
$vids = array();
|
|
$single = intval($_GET['singleverify']);
|
|
$verifyflag = empty($_GET['verify']) ? false : true;
|
|
if($verifyflag) {
|
|
if($single) {
|
|
$_GET['verify'] = array($single => $_GET['verify'][$single]);
|
|
}
|
|
foreach($_GET['verify'] as $id => $type) {
|
|
$vids[] = $id;
|
|
}
|
|
|
|
$verifysetting = $_G['setting']['verify'];
|
|
$verify = $refusal = array();
|
|
foreach(C::t('common_member_verify_info')->fetch_all($vids) as $value) {
|
|
if(in_array($_GET['verify'][$value['vid']], array('refusal', 'validate'))) {
|
|
$fields = dunserialize($value['field']);
|
|
$verifysetting = $_G['setting']['verify'][$value['verifytype']];
|
|
|
|
if($_GET['verify'][$value['vid']] == 'refusal') {
|
|
$refusalfields = !empty($_GET['refusal'][$value['vid']]) ? $_GET['refusal'][$value['vid']] : $verifysetting['field'];
|
|
$fieldtitle = $common = '';
|
|
$deleteverifyimg = false;
|
|
foreach($refusalfields as $key => $field) {
|
|
$fieldtitle .= $common.$_G['cache']['profilesetting'][$field]['title'];
|
|
$common = ',';
|
|
if($_G['cache']['profilesetting'][$field]['formtype'] == 'file') {
|
|
$deleteverifyimg = true;
|
|
@unlink(getglobal('setting/attachdir').'./profile/'.$fields[$key]);
|
|
$fields[$field] = '';
|
|
}
|
|
}
|
|
if($deleteverifyimg) {
|
|
C::t('common_member_verify_info')->update($value['vid'], array('field' => serialize($fields)));
|
|
}
|
|
if($value['verifytype']) {
|
|
$verify["verify"]['-1'][] = $value['uid'];
|
|
}
|
|
$verify['flag'][] = $value['vid'];
|
|
$note_values = array(
|
|
'verify' => $vid ? '<a href="home.php?mod=spacecp&ac=profile&op=verify&vid='.$vid.'" target="_blank">'.$verifysetting['title'].'</a>' : '',
|
|
'profile' => $fieldtitle,
|
|
'reason' => $_GET['reason'][$value['vid']],
|
|
);
|
|
$note_lang = 'profile_verify_error';
|
|
} else {
|
|
C::t('common_member_profile')->update(intval($value['uid']), $fields);
|
|
$verify['delete'][] = $value['vid'];
|
|
if($value['verifytype']) {
|
|
$verify["verify"]['1'][] = $value['uid'];
|
|
}
|
|
$note_values = array(
|
|
'verify' => $vid ? '<a href="home.php?mod=spacecp&ac=profile&op=verify&vid='.$vid.'" target="_blank">'.$verifysetting['title'].'</a>' : ''
|
|
);
|
|
$note_lang = 'profile_verify_pass';
|
|
}
|
|
notification_add($value['uid'], 'verify', $note_lang, $note_values, 1);
|
|
}
|
|
}
|
|
if($vid && !empty($verify["verify"])) {
|
|
foreach($verify["verify"] as $flag => $uids) {
|
|
$flag = intval($flag);
|
|
C::t('common_member_verify')->update($uids, array("verify$vid" => $flag));
|
|
}
|
|
}
|
|
|
|
if(!empty($verify['delete'])) {
|
|
C::t('common_member_verify_info')->delete($verify['delete']);
|
|
}
|
|
|
|
if(!empty($verify['flag'])) {
|
|
C::t('common_member_verify_info')->update($verify['flag'], array('flag' => '-1'));
|
|
}
|
|
}
|
|
if($single && $_GET['frame'] == 'no') {
|
|
echo "<script type=\"text/javascript\">var trObj = parent.$('mod_{$single}_row');trObj.parentNode.removeChild(trObj);</script>";
|
|
} else {
|
|
cpmsg('members_verify_succeed', 'action=verify&operation=verify&do='.$vid.'&anchor='.$_GET['anchor'], 'succeed');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} elseif($operation == 'edit') {
|
|
|
|
shownav('user', 'nav_members_verify');
|
|
$vid = $_GET['vid'] < 8 ? intval($_GET['vid']) : 0;
|
|
$verifyarr = $_G['setting']['verify'][$vid];
|
|
if(!submitcheck('verifysubmit')) {
|
|
if($vid == 7) {
|
|
showtips('members_verify_setting_tips');
|
|
}
|
|
showformheader("verify&operation=edit&vid=$vid", 'enctype');
|
|
showtableheader();
|
|
$readonly = $vid == 6 || $vid == 7 ? 'readonly' : '';
|
|
showsetting('members_verify_title', "verify[title]", $verifyarr['title'], 'text', $readonly);
|
|
showsetting('members_verify_enable', "verify[available]", $verifyarr['available'], 'radio');
|
|
$verificonhtml = '';
|
|
if($verifyarr['icon']) {
|
|
$icon_url = parse_url($verifyarr['icon']);
|
|
$prefix = !$icon_url['host'] && strpos($verifyarr['icon'], $_G['setting']['attachurl'].'common/') === false ? $_G['setting']['attachurl'].'common/' : '';
|
|
$verificonhtml = '<label><input type="checkbox" class="checkbox" name="deleteicon['.$vid.']" value="yes" /> '.$lang['delete'].'</label><br /><img src="'.$prefix.$verifyarr['icon'].'" />';
|
|
}
|
|
$unverifyiconhtml = '';
|
|
if($verifyarr['unverifyicon']) {
|
|
$unverifyiconurl = parse_url($verifyarr['unverifyicon']);
|
|
|
|
$prefix = !$unverifyiconurl['host'] && strpos($verifyarr['unverifyicon'], $_G['setting']['attachurl'].'common/') === false ? $_G['setting']['attachurl'].'common/' : '';
|
|
$unverifyiconhtml = '<label><input type="checkbox" class="checkbox" name="delunverifyicon['.$vid.']" value="yes" /> '.$lang['delete'].'</label><br /><img src="'.$prefix.$verifyarr['unverifyicon'].'" />';
|
|
}
|
|
showsetting('members_verify_showicon', "verify[showicon]", $verifyarr['showicon'], 'radio', '', 1);
|
|
showsetting('members_unverify_icon', 'unverifyiconnew', (!$unverifyiconurl['host'] ? str_replace($_G['setting']['attachurl'].'common/', '', $verifyarr['unverifyicon']) : $verifyarr['unverifyicon']), 'filetext', '', 0, $unverifyiconhtml);
|
|
showsetting('members_verify_icon', 'iconnew', (!$icon_url['host'] ? str_replace($_G['setting']['attachurl'].'common/', '', $verifyarr['icon']) : $verifyarr['icon']), 'filetext', '', 0, $verificonhtml);
|
|
showtagfooter('tbody');
|
|
|
|
if($vid == 6) {
|
|
showsetting('members_verify_view_real_name', "verify[viewrealname]", $verifyarr['viewrealname'], 'radio');
|
|
} elseif($vid == 7) {
|
|
showsetting('members_verify_view_video_photo', "verify[viewvideophoto]", $verifyarr['viewvideophoto'], 'radio');
|
|
}
|
|
if($vid != 7) {
|
|
$varname = array('verify[field]', array(), 'isfloat');
|
|
foreach(C::t('common_member_profile_setting')->fetch_all_by_available(1) as $value) {
|
|
if(!in_array($value['fieldid'], array('constellation', 'zodiac', 'birthyear', 'birthmonth', 'birthprovince', 'birthdist', 'birthcommunity', 'resideprovince', 'residedist', 'residecommunity'))) {
|
|
$varname[1][] = array($value['fieldid'], $value['title'], $value['fieldid']);
|
|
}
|
|
}
|
|
|
|
showsetting('members_verify_setting_field', $varname, $verifyarr['field'], 'omcheckbox');
|
|
}
|
|
$groupselect = array();
|
|
foreach(C::t('common_usergroup')->fetch_all_not(array(6, 7)) as $group) {
|
|
$group['type'] = $group['type'] == 'special' && $group['radminid'] ? 'specialadmin' : $group['type'];
|
|
$groupselect[$group['type']] .= "<option value=\"$group[groupid]\" ".(in_array($group['groupid'], $verifyarr['groupid']) ? 'selected' : '').">$group[grouptitle]</option>\n";
|
|
}
|
|
$groupselect = '<optgroup label="'.$lang['usergroups_member'].'">'.$groupselect['member'].'</optgroup>'.
|
|
($groupselect['special'] ? '<optgroup label="'.$lang['usergroups_special'].'">'.$groupselect['special'].'</optgroup>' : '').
|
|
($groupselect['specialadmin'] ? '<optgroup label="'.$lang['usergroups_specialadmin'].'">'.$groupselect['specialadmin'].'</optgroup>' : '').
|
|
'<optgroup label="'.$lang['usergroups_system'].'">'.$groupselect['system'].'</optgroup>';
|
|
showsetting('members_verify_group', '', '', '<select name="verify[groupid][]" multiple="multiple" size="10">'.$groupselect.'</select>');
|
|
|
|
showsubmit('verifysubmit');
|
|
showtablefooter();
|
|
showformfooter();
|
|
} else {
|
|
foreach( $_G['setting']['verify'] AS $key => $value) {
|
|
$_G['setting']['verify'][$key]['icon'] = str_replace($_G['setting']['attachurl'].'common/', '', $value['icon']);
|
|
$_G['setting']['verify'][$key]['unverifyicon'] = str_replace($_G['setting']['attachurl'].'common/', '', $value['unverifyicon']);
|
|
}
|
|
$verifynew = getgpc('verify');
|
|
if($vid == 6 || $vid == 7) {
|
|
$verifynew['title'] = $_G['setting']['verify'][$vid]['title'];
|
|
}
|
|
if($verifynew['available'] == 1 && !trim($verifynew['title'])) {
|
|
cpmsg('members_verify_update_title_error', '', 'error');
|
|
}
|
|
$verifynew['icon'] = getverifyicon('iconnew', $vid);
|
|
$verifynew['unverifyicon'] = getverifyicon('unverifyiconnew', $vid, 'unverify_icon');
|
|
|
|
if($_GET['deleteicon']) {
|
|
$verifynew['icon'] = delverifyicon($verifyarr['icon']);
|
|
}
|
|
if($_GET['delunverifyicon']) {
|
|
$verifynew['unverifyicon'] = delverifyicon($verifyarr['unverifyicon']);
|
|
}
|
|
if(!empty($verifynew['field']['residecity'])) {
|
|
$verifynew['field']['resideprovince'] = 'resideprovince';
|
|
$verifynew['field']['residedist'] = 'residedist';
|
|
$verifynew['field']['residecommunity'] = 'residecommunity';
|
|
}
|
|
if(!empty($verifynew['field']['birthday'])) {
|
|
$verifynew['field']['birthyear'] = 'birthyear';
|
|
$verifynew['field']['birthmonth'] = 'birthmonth';
|
|
}
|
|
if(!empty($verifynew['field']['birthcity'])) {
|
|
$verifynew['field']['birthprovince'] = 'birthprovince';
|
|
$verifynew['field']['birthdist'] = 'birthdist';
|
|
$verifynew['field']['birthcommunity'] = 'birthcommunity';
|
|
}
|
|
$verifynew['groupid'] = !empty($verifynew['groupid']) && is_array($verifynew['groupid']) ? $verifynew['groupid'] : array();
|
|
$_G['setting']['verify'][$vid] = $verifynew;
|
|
$_G['setting']['verify']['enabled'] = false;
|
|
for($i = 1; $i < 8; $i++) {
|
|
if($_G['setting']['verify'][$i]['available'] && !$_G['setting']['verify']['enabled']) {
|
|
$_G['setting']['verify']['enabled'] = true;
|
|
}
|
|
if($_G['setting']['verify'][$i]['icon']) {
|
|
$icon_url = parse_url($_G['setting']['verify'][$i]['icon']);
|
|
}
|
|
$_G['setting']['verify'][$i]['icon'] = !$icon_url['host'] ? str_replace($_G['setting']['attachurl'].'common/', '', $_G['setting']['verify'][$i]['icon']) : $_G['setting']['verify'][$i]['icon'] ;
|
|
}
|
|
C::t('common_setting')->update('verify', $_G['setting']['verify']);
|
|
if(isset($verifynew['viewrealname']) && !$verifynew['viewrealname']) {
|
|
C::t('common_member_profile_setting')->update('realname', array('showinthread' => 0));
|
|
$custominfo = C::t('common_setting')->fetch('customauthorinfo', true);
|
|
if(isset($custominfo[0]['field_realname'])) {
|
|
unset($custominfo[0]['field_realname']);
|
|
C::t('common_setting')->update('customauthorinfo', $custominfo);
|
|
updatecache(array('custominfo'));
|
|
}
|
|
}
|
|
updatecache(array('setting'));
|
|
cpmsg('members_verify_update_succeed', 'action=verify', 'succeed');
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
shownav('user', 'nav_members_verify');
|
|
showsubmenu('members_verify_setting');
|
|
if(!submitcheck('verifysubmit')) {
|
|
showformheader("verify");
|
|
showtableheader('members_verify_setting', 'fixpadding');
|
|
showsubtitle(array('members_verify_available', 'members_verify_id', 'members_verify_title', ''), 'header');
|
|
for($i = 1; $i < 7; $i++) {
|
|
$readonly = $i == 6 ? true : false;
|
|
$url = parse_url($_G['setting']['verify'][$i]['icon']);
|
|
if(!$url['host'] && $_G['setting']['verify'][$i]['icon'] && strpos($_G['setting']['verify'][$i]['icon'], $_G['setting']['attachurl'].'common/') === false) {
|
|
$_G['setting']['verify'][$i]['icon'] = $_G['setting']['attachurl'].'common/'.$_G['setting']['verify'][$i]['icon'];
|
|
}
|
|
showtablerow('', array('class="td25"', '', '', 'class="td25"'), array(
|
|
"<input class=\"checkbox\" type=\"checkbox\" name=\"settingnew[verify][$i][available]\" value=\"1\" ".($_G['setting']['verify'][$i]['available'] ? 'checked' : '')." />",
|
|
'verify'.$i,
|
|
($readonly ? $_G['setting']['verify'][$i]['title']."<input type=\"hidden\" name=\"settingnew[verify][$i][title]\" value=\"{$_G['setting']['verify'][$i]['title']}\" readonly> ":"<input type=\"text\" class=\"txt\" size=\"8\" name=\"settingnew[verify][$i][title]\" value=\"{$_G['setting']['verify'][$i]['title']}\">").
|
|
($_G['setting']['verify'][$i]['icon'] ? '<img src="'.$_G['setting']['verify'][$i]['icon'].'" />' : ''),
|
|
"<a href=\"".ADMINSCRIPT."?action=verify&operation=edit&anchor=base&vid=$i\">".$lang['edit']."</a>"
|
|
));
|
|
}
|
|
showsubmit('verifysubmit');
|
|
showtablefooter();
|
|
showformfooter();
|
|
|
|
} else {
|
|
$settingnew = getgpc('settingnew');
|
|
$enabled = false;
|
|
foreach($settingnew['verify'] as $key => $value) {
|
|
if($value['available'] && !$value['title']) {
|
|
cpmsg('members_verify_title_invalid', '', 'error');
|
|
}
|
|
if($value['available']) {
|
|
$enabled = true;
|
|
}
|
|
$_G['setting']['verify'][$key]['available'] = intval($value['available']);
|
|
$_G['setting']['verify'][$key]['title'] = $value['title'];
|
|
}
|
|
$_G['setting']['verify']['enabled'] = $enabled;
|
|
C::t('common_setting')->update('verify', $_G['setting']['verify']);
|
|
updatecache(array('setting'));
|
|
updatemenu('user');
|
|
cpmsg('members_verify_update_succeed', 'action=verify', 'succeed');
|
|
}
|
|
}
|
|
|
|
function getverifyicon($iconkey = 'iconnew', $vid = 1, $extstr = 'verify_icon') {
|
|
global $_G, $_FILES;
|
|
|
|
if($_FILES[$iconkey]) {
|
|
$data = array('extid' => "$vid");
|
|
$iconnew = upload_icon_banner($data, $_FILES[$iconkey], $extstr);
|
|
} else {
|
|
$iconnew = $_GET[''.$iconkey];
|
|
}
|
|
return $iconnew;
|
|
}
|
|
|
|
function delverifyicon($icon) {
|
|
global $_G;
|
|
|
|
$valueparse = parse_url($icon);
|
|
if(!isset($valueparse['host']) && preg_match('/^'.preg_quote($_G['setting']['attachurl'].'common/', '/').'/', $icon)) {
|
|
@unlink($icon);
|
|
}
|
|
return '';
|
|
}
|
|
?>
|