/source/admincp/admincp_members.php
https://github.com/kuaileshike/upload · PHP · 3279 lines · 2895 code · 378 blank · 6 comment · 734 complexity · fee933808c1b42223764b019fbcb0622 MD5 · raw file
Large files are truncated click here to view the full file
- <?php
- /**
- * [Discuz!] (C)2001-2099 Comsenz Inc.
- * This is NOT a freeware, use is subject to license terms
- *
- * $Id: admincp_members.php 31986 2012-10-30 05:18:16Z chenmengshu $
- */
- if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
- exit('Access Denied');
- }
- @set_time_limit(600);
- if($operation != 'export') {
- cpheader();
- }
- require_once libfile('function/delete');
- $_G['setting']['memberperpage'] = 20;
- $page = max(1, $_G['page']);
- $start_limit = ($page - 1) * $_G['setting']['memberperpage'];
- $search_condition = array_merge($_GET, $_POST);
- if(!is_array($search_condition['groupid']) && $search_condition['groupid']) {
- $search_condition['groupid'][0] = $search_condition['groupid'];
- }
- foreach($search_condition as $k => $v) {
- if(in_array($k, array('action', 'operation', 'formhash', 'confirmed', 'submit', 'page', 'deletestart', 'allnum', 'includeuc','includepost','current','pertask','lastprocess','deleteitem')) || $v === '') {
- unset($search_condition[$k]);
- }
- }
- $search_condition = searchcondition($search_condition);
- $tmpsearch_condition = $search_condition;
- unset($tmpsearch_condition['tablename']);
- $member = array();
- $tableext = '';
- if(in_array($operation, array('ban', 'edit', 'group', 'credit', 'medal', 'access'), true)) {
- if(empty($_GET['uid']) && empty($_GET['username'])) {
- cpmsg('members_nonexistence', 'action=members&operation='.$operation.(!empty($_GET['highlight']) ? "&highlight={$_GET['highlight']}" : ''), 'form', array(), '<input type="text" name="username" value="" class="txt" />');
- }
- $member = !empty($_GET['uid']) ? C::t('common_member')->fetch($_GET['uid'], false, 1) : C::t('common_member')->fetch_by_username($_GET['username'], 1);
- if(!$member) {
- cpmsg('members_edit_nonexistence', '', 'error');
- }
- $tableext = isset($member['_inarchive']) ? '_archive' : '';
- }
- if($operation == 'search') {
- if(!submitcheck('submit', 1)) {
- shownav('user', 'nav_members');
- showsubmenu('nav_members', array(
- array('search', 'members&operation=search', 1),
- array('clean', 'members&operation=clean', 0),
- array('nav_repeat', 'members&operation=repeat', 0),
- ));
- showtips('members_admin_tips');
- if(!empty($_GET['vid']) && ($_GET['vid'] > 0 && $_GET['vid'] < 8)) {
- $_GET['verify'] = array('verify'.intval($_GET['vid']));
- }
- showsearchform('search');
- if($_GET['more']) {
- print <<<EOF
- <script type="text/javascript">
- $('btn_more').click();
- </script>
- EOF;
- }
- } else {
- $membernum = countmembers($search_condition, $urladd);
- $members = '';
- if($membernum > 0) {
- $multipage = multi($membernum, $_G['setting']['memberperpage'], $page, ADMINSCRIPT."?action=members&operation=search&submit=yes".$urladd);
- $usergroups = array();
- foreach(C::t('common_usergroup')->range() as $group) {
- switch($group['type']) {
- case 'system': $group['grouptitle'] = '<b>'.$group['grouptitle'].'</b>'; break;
- case 'special': $group['grouptitle'] = '<i>'.$group['grouptitle'].'</i>'; break;
- }
- $usergroups[$group['groupid']] = $group;
- }
- $uids = searchmembers($search_condition, $_G['setting']['memberperpage'], $start_limit);
- if($uids) {
- $allmember = C::t('common_member')->fetch_all($uids);
- $allcount = C::t('common_member_count')->fetch_all($uids);
- foreach($allmember as $uid=>$member) {
- $member = array_merge($member, (array)$allcount[$uid]);
- $memberextcredits = array();
- if($_G['setting']['extcredits']) {
- foreach($_G['setting']['extcredits'] as $id => $credit) {
- $memberextcredits[] = $_G['setting']['extcredits'][$id]['title'].': '.$member['extcredits'.$id].' ';
- }
- }
- $lockshow = $member['status'] == '-1' ? '<em class="lightnum">['.cplang('lock').']</em>' : '';
- $members .= showtablerow('', array('class="td25"', '', 'title="'.implode("\n", $memberextcredits).'"'), array(
- "<input type=\"checkbox\" name=\"uidarray[]\" value=\"$member[uid]\"".($member['adminid'] == 1 ? 'disabled' : '')." class=\"checkbox\">",
- ($_G['setting']['connect']['allow'] && $member['conisbind'] ? '<img class="vmiddle" src="static/image/common/connect_qq.gif" /> ' : '')."<a href=\"home.php?mod=space&uid=$member[uid]\" target=\"_blank\">$member[username]</a>",
- $member['credits'],
- $member['posts'],
- $usergroups[$member['adminid']]['grouptitle'],
- $usergroups[$member['groupid']]['grouptitle'].$lockshow,
- "<a href=\"".ADMINSCRIPT."?action=members&operation=group&uid=$member[uid]\" class=\"act\">$lang[usergroup]</a><a href=\"".ADMINSCRIPT."?action=members&operation=access&uid=$member[uid]\" class=\"act\">$lang[members_access]</a>".
- ($_G['setting']['extcredits'] ? "<a href=\"".ADMINSCRIPT."?action=members&operation=credit&uid=$member[uid]\" class=\"act\">$lang[credits]</a>" : "<span disabled>$lang[edit]</span>").
- "<a href=\"".ADMINSCRIPT."?action=members&operation=medal&uid=$member[uid]\" class=\"act\">$lang[medals]</a>".
- "<a href=\"".ADMINSCRIPT."?action=members&operation=repeat&uid=$member[uid]\" class=\"act\">$lang[members_repeat]</a>".
- "<a href=\"".ADMINSCRIPT."?action=members&operation=edit&uid=$member[uid]\" class=\"act\">$lang[detail]</a>".
- "<a href=\"".ADMINSCRIPT."?action=members&operation=ban&uid=$member[uid]\" class=\"act\">$lang[members_ban]</a>"
- ), TRUE);
- }
- }
- }
- shownav('user', 'nav_members');
- showsubmenu('nav_members');
- showtips('members_export_tips');
- foreach($search_condition as $k => $v) {
- if($k == 'username') {
- $v = explode(',', $v);
- $tmpv = array();
- foreach($v as $subvalue) {
- $tmpv[] = rawurlencode($subvalue);
- }
- $v = implode(',', $tmpv);
- }
- if(is_array($v)) {
- foreach($v as $value ) {
- $condition_str .= '&'.$k.'[]='.$value;
- }
- } else {
- $condition_str .= '&'.$k.'='.$v;
- }
- }
- showformheader("members&operation=clean".$condition_str);
- showtableheader(cplang('members_search_result', array('membernum' => $membernum)).'<a href="'.ADMINSCRIPT.'?action=members&operation=search" class="act lightlink normal">'.cplang('research').'</a> <a href='.ADMINSCRIPT.'?action=members&operation=export'.$condition_str.'>'.$lang['members_search_export'].'</a>');
- if($membernum) {
- showsubtitle(array('', 'username', 'credits', 'posts', 'admingroup', 'usergroup', ''));
- echo $members;
- $condition_str = str_replace('&tablename=master', '', $condition_str);
- showsubmit('deletesubmit', cplang('delete'), ($tmpsearch_condition ? '<input type="checkbox" name="chkall" onclick="checkAll(\'prefix\', this.form, \'uidarray\');if(this.checked){$(\'deleteallinput\').style.display=\'\';}else{$(\'deleteall\').checked = false;$(\'deleteallinput\').style.display=\'none\';}" class="checkbox">'.cplang('select_all') : ''), ' <span id="deleteallinput" style="display:none"><input id="deleteall" type="checkbox" name="deleteall" class="checkbox">'.cplang('members_search_deleteall', array('membernum' => $membernum)).'</span>', $multipage);
- }
- showtablefooter();
- showformfooter();
- }
- } elseif($operation == 'export') {
- $uids = searchmembers($search_condition, 10000);
- $detail = '';
- if($uids && is_array($uids)) {
- $allprofile = C::t('common_member_profile')->fetch_all($uids);
- $allusername = C::t('common_member')->fetch_all_username_by_uid($uids);
- foreach($allprofile as $uid=>$profile) {
- unset($profile['uid']);
- $profile = array_merge(array('uid'=>$uid, 'username'=>$allusername[$uid]),$profile);
- foreach($profile as $key => $value) {
- $value = preg_replace('/\s+/', ' ', $value);
- if($key == 'gender') $value = lang('space', 'gender_'.$value);
- $detail .= strlen($value) > 11 && is_numeric($value) ? '['.$value.'],' : $value.',';
- }
- $detail = $detail."\n";
- }
- }
- $title = array('realname' => '', 'gender' => '', 'birthyear' => '', 'birthmonth' => '', 'birthday' => '', 'constellation' => '',
- 'zodiac' => '', 'telephone' => '', 'mobile' => '', 'idcardtype' => '', 'idcard' => '', 'address' => '', 'zipcode' => '','nationality' => '',
- 'birthprovince' => '', 'birthcity' => '', 'birthdist' => '', 'birthcommunity' => '', 'resideprovince' => '', 'residecity' => '', 'residedist' => '',
- 'residecommunity' => '', 'residesuite' => '', 'graduateschool' => '', 'education' => '', 'company' => '', 'occupation' => '',
- 'position' => '', 'revenue' => '', 'affectivestatus' => '', 'lookingfor' => '', 'bloodtype' => '', 'height' => '', 'weight' => '',
- 'alipay' => '', 'icq' => '', 'qq' => '', 'yahoo' => '', 'msn' => '', 'taobao' => '', 'site' => '', 'bio' => '', 'interest' => '',
- 'field1' => '', 'field2' => '', 'field3' => '', 'field4' => '', 'field5' => '', 'field6' => '', 'field7' => '', 'field8' => '');
- foreach(C::t('common_member_profile_setting')->range() as $value) {
- if(isset($title[$value['fieldid']])) {
- $title[$value['fieldid']] = $value['title'];
- }
- }
- foreach($title as $k => $v) {
- $subject .= ($v ? $v : $k).",";
- }
- $detail = "UID,".$lang['username'].",".$subject."\n".$detail;
- $filename = date('Ymd', TIMESTAMP).'.csv';
- ob_end_clean();
- header('Content-Encoding: none');
- header('Content-Type: application/octet-stream');
- header('Content-Disposition: attachment; filename='.$filename);
- header('Pragma: no-cache');
- header('Expires: 0');
- if($_G['charset'] != 'gbk') {
- $detail = diconv($detail, $_G['charset'], 'GBK');
- }
- echo $detail;
- exit();
- } elseif($operation == 'repeat') {
- if(empty($_GET['uid']) && empty($_GET['username']) && empty($_GET['ip'])) {
- shownav('user', 'nav_members');
- showsubmenu('nav_members', array(
- array('search', 'members&operation=search', 0),
- array('clean', 'members&operation=clean', 0),
- array('nav_repeat', 'members&operation=repeat', 1),
- ));
- showformheader("members&operation=repeat");
- showtableheader();
- showsetting('members_search_repeatuser', 'username', '', 'text');
- showsetting('members_search_uid', 'uid', '', 'text');
- showsetting('members_search_repeatip', 'ip', $_GET['inputip'], 'text');
- showsubmit('submit', 'submit');
- showtablefooter();
- showformfooter();
- } else {
- $ips = array();
- $urladd = '';
- if(!empty($_GET['username'])) {
- $uid = C::t('common_member')->fetch_uid_by_username($_GET['username']);
- $searchmember = $uid ? C::t('common_member_status')->fetch($uid) : '';
- $searchmember['username'] = $_GET['username'];
- $urladd .= '&username='.$_GET['username'];
- } elseif(!empty($_GET['uid'])) {
- $searchmember = C::t('common_member_status')->fetch($_GET['uid']);
- $themember = C::t('common_member')->fetch($_GET['uid']);
- $searchmember['username'] = $themember['username'];
- $urladd .= '&uid='.$_GET['uid'];
- unset($_GET['uid']);
- } elseif(!empty($_GET['ip'])) {
- $regip = $lastip = $_GET['ip'];
- $ips[] = $_GET['ip'];
- $search_condition['lastip'] = $_GET['ip'];
- $urladd .= '&ip='.$_GET['ip'];
- }
- if($searchmember) {
- $ips = array();
- foreach(array('regip', 'lastip') as $iptype) {
- if($searchmember[$iptype] != '' && $searchmember[$iptype] != 'hidden') {
- $ips[] = $searchmember[$iptype];
- }
- }
- $ips = !empty($ips) ? array_unique($ips) : array('unknown');
- }
- $searchmember['username'] .= ' (IP '.dhtmlspecialchars($ids).')';
- $membernum = !empty($ips) ? C::t('common_member_status')->count_by_ip($ips) : C::t('common_member_status')->count();
- $members = '';
- if($membernum) {
- $usergroups = array();
- foreach(C::t('common_usergroup')->range() as $group) {
- switch($group['type']) {
- case 'system': $group['grouptitle'] = '<b>'.$group['grouptitle'].'</b>'; break;
- case 'special': $group['grouptitle'] = '<i>'.$group['grouptitle'].'</i>'; break;
- }
- $usergroups[$group['groupid']] = $group;
- }
- $uids = searchmembers($search_condition, $_G['setting']['memberperpage'], $start_limit);
- $conditions = 'm.uid IN ('.dimplode($uids).')';
- $_G['setting']['memberperpage'] = 100;
- $start_limit = ($page - 1) * $_G['setting']['memberperpage'];
- $multipage = multi($membernum, $_G['setting']['memberperpage'], $page, ADMINSCRIPT."?action=members&operation=repeat&submit=yes".$urladd);
- $allstatus = !empty($ips) ? C::t('common_member_status')->fetch_all_by_ip($ips, $start_limit, $_G['setting']['memberperpage'])
- : C::t('common_member_status')->range($start_limit, $_G['setting']['memberperpage']);
- $allcount = C::t('common_member_count')->fetch_all(array_keys($allstatus));
- $allmember = C::t('common_member')->fetch_all(array_keys($allstatus));
- foreach($allstatus as $uid => $member) {
- $member = array_merge($member, (array)$allcount[$uid], (array)$allmember[$uid]);
- $memberextcredits = array();
- foreach($_G['setting']['extcredits'] as $id => $credit) {
- $memberextcredits[] = $_G['setting']['extcredits'][$id]['title'].': '.$member['extcredits'.$id];
- }
- $members .= showtablerow('', array('class="td25"', '', 'title="'.implode("\n", $memberextcredits).'"'), array(
- "<input type=\"checkbox\" name=\"uidarray[]\" value=\"$member[uid]\"".($member['adminid'] == 1 ? 'disabled' : '')." class=\"checkbox\">",
- "<a href=\"home.php?mod=space&uid=$member[uid]\" target=\"_blank\">$member[username]</a>",
- $member['credits'],
- $member['posts'],
- $usergroups[$member['adminid']]['grouptitle'],
- $usergroups[$member['groupid']]['grouptitle'],
- "<a href=\"".ADMINSCRIPT."?action=members&operation=group&uid=$member[uid]\" class=\"act\">$lang[usergroup]</a><a href=\"".ADMINSCRIPT."?action=members&operation=access&uid=$member[uid]\" class=\"act\">$lang[members_access]</a>".
- ($_G['setting']['extcredits'] ? "<a href=\"".ADMINSCRIPT."?action=members&operation=credit&uid=$member[uid]\" class=\"act\">$lang[credits]</a>" : "<span disabled>$lang[edit]</span>").
- "<a href=\"".ADMINSCRIPT."?action=members&operation=medal&uid=$member[uid]\" class=\"act\">$lang[medals]</a>".
- "<a href=\"".ADMINSCRIPT."?action=members&operation=repeat&uid=$member[uid]\" class=\"act\">$lang[members_repeat]</a>".
- "<a href=\"".ADMINSCRIPT."?action=members&operation=edit&uid=$member[uid]\" class=\"act\">$lang[detail]</a>"
- ), TRUE);
- }
- }
- shownav('user', 'nav_repeat');
- showsubmenu($lang['nav_repeat'].' - '.$searchmember['username']);
- showformheader("members&operation=clean");
- $searchadd = '';
- if(is_array($ips)) {
- foreach($ips as $ip) {
- $searchadd .= '<a href="'.ADMINSCRIPT.'?action=members&operation=repeat&inputip='.rawurlencode($ip).'" class="act lightlink normal">'.cplang('search').'IP '.dhtmlspecialchars($ip).'</a>';
- }
- }
- showtableheader(cplang('members_search_result', array('membernum' => $membernum)).'<a href="'.ADMINSCRIPT.'?action=members&operation=repeat" class="act lightlink normal">'.cplang('research').'</a>'.$searchadd);
- showsubtitle(array('', 'username', 'credits', 'posts', 'admingroup', 'usergroup', ''));
- echo $members;
- showtablerow('', array('class="td25"', 'class="lineheight" colspan="7"'), array('', cplang('members_admin_comment')));
- showsubmit('submit', 'submit', '<input type="checkbox" name="chkall" onclick="checkAll(\'prefix\', this.form, \'uidarray\')" class="checkbox">'.cplang('del'), '', $multipage);
- showtablefooter();
- showformfooter();
- }
- } elseif($operation == 'clean') {
- if(!submitcheck('submit', 1) && !submitcheck('deletesubmit', 1)) {
- shownav('user', 'nav_members');
- showsubmenu('nav_members', array(
- array('search', 'members&operation=search', 0),
- array('clean', 'members&operation=clean', 1),
- array('nav_repeat', 'members&operation=repeat', 0),
- ));
- showsearchform('clean');
- } else {
- if((!$tmpsearch_condition && empty($_GET['uidarray'])) || (submitcheck('deletesubmit', 1) && empty($_GET['uidarray']))) {
- cpmsg('members_no_find_deluser', '', 'error');
- }
- if(!empty($_GET['deleteall'])) {
- unset($search_condition['uidarray']);
- $_GET['uidarray'] = '';
- }
- $uids = 0;
- $extra = '';
- $delmemberlimit = 300;
- $deletestart = intval($_GET['deletestart']);
- if(!empty($_GET['uidarray'])) {
- $uids = array();
- $allmember = C::t('common_member')->fetch_all($_GET['uidarray']);
- $count = count($allmember);
- $membernum = 0;
- foreach($allmember as $uid => $member) {
- if($member['adminid'] !== 1 && $member['groupid'] !== 1) {
- if($count < 2000 || !empty($_GET['uidarray'])) {
- $extra .= '<input type="hidden" name="uidarray[]" value="'.$member['uid'].'" />';
- }
- $uids[] = $member['uid'];
- $membernum ++;
- }
- }
- } elseif($tmpsearch_condition) {
- $membernum = countmembers($search_condition, $urladd);
- $uids = searchmembers($search_condition, $delmemberlimit, 0);
- }
- $allnum = intval($_GET['allnum']);
- $conditions = $uids ? 'm.uid IN ('.dimplode($uids).')' : '0';
- if((empty($membernum) || empty($uids))) {
- if($deletestart) {
- cpmsg('members_delete_succeed', '', 'succeed', array('numdeleted' => $allnum));
- }
- cpmsg('members_no_find_deluser', '', 'error');
- }
- if(!$_GET['confirmed']) {
- cpmsg('members_delete_confirm', "action=members&operation=clean&submit=yes&confirmed=yes".$urladd, 'form', array('membernum' => $membernum), $extra.'<br /><label><input type="checkbox" name="includepost" value="1" class="checkbox" />'.$lang['members_delete_all'].'</label>'.($isfounder ? ' <label><input type="checkbox" name="includeuc" value="1" class="checkbox" />'.$lang['members_delete_ucdata'].'</label>' : ''), '');
- } else {
- if(empty($_GET['includepost'])) {
- require_once libfile('function/delete');
- $numdeleted = deletemember($uids, 0);
- if($isfounder && !empty($_GET['includeuc'])) {
- loaducenter();
- uc_user_delete($uids);
- $_GET['includeuc'] = 1;
- } else {
- $_GET['includeuc'] = 0;
- }
- if($_GET['uidarray']) {
- cpmsg('members_delete_succeed', '', 'succeed', array('numdeleted' => $numdeleted));
- } else {
- $allnum += $membernum < $delmemberlimit ? $membernum : $delmemberlimit;
- $nextlink = "action=members&operation=clean&confirmed=yes&submit=yes".(!empty($_GET['includeuc']) ? '&includeuc=yes' : '')."&allnum=$allnum&deletestart=".($deletestart+$delmemberlimit).$urladd;
- cpmsg(cplang('members_delete_user_processing_next', array('deletestart' => $deletestart, 'nextdeletestart' => $deletestart+$delmemberlimit)), $nextlink, 'loadingform', array());
- }
- } else {
- if(empty($uids)) {
- cpmsg('members_no_find_deluser', '', 'error');
- }
- $numdeleted = $numdeleted ? $numdeleted : count($uids);
- $pertask = 1000;
- $current = $_GET['current'] ? intval($_GET['current']) : 0;
- $deleteitem = $_GET['deleteitem'] ? trim($_GET['deleteitem']) : 'post';
- $nextdeleteitem = $deleteitem;
- $next = $current + $pertask;
- if($deleteitem == 'post') {
- $threads = $fids = $threadsarray = array();
- foreach(C::t('forum_thread')->fetch_all_by_authorid($uids, $pertask) as $thread) {
- $threads[$thread['fid']][] = $thread['tid'];
- }
- if($threads) {
- require_once libfile('function/post');
- foreach($threads as $fid => $tids) {
- deletethread($tids);
- }
- if($_G['setting']['globalstick']) {
- require_once libfile('function/cache');
- updatecache('globalstick');
- }
- } else {
- $next = 0;
- $nextdeleteitem = 'blog';
- }
- }
- if($deleteitem == 'blog') {
- $blogs = array();
- $query = C::t('home_blog')->fetch_blogid_by_uid($uids, 0, $pertask);
- foreach($query as $blog) {
- $blogs[] = $blog['blogid'];
- }
- if($blogs) {
- deleteblogs($blogs);
- } else {
- $next = 0;
- $nextdeleteitem = 'pic';
- }
- }
- if($deleteitem == 'pic') {
- $pics = array();
- $query = C::t('home_pic')->fetch_all_by_uid($uids, 0, $pertask);
- foreach($query as $pic) {
- $pics[] = $pic['picid'];
- }
- if($pics) {
- deletepics($pics);
- } else {
- $next = 0;
- $nextdeleteitem = 'doing';
- }
- }
- if($deleteitem == 'doing') {
- $doings = array();
- $query = C::t('home_doing')->fetch_all_by_uid_doid($uids, '', '', 0, $pertask);
- foreach ($query as $doings) {
- $doings[] = $doing['doid'];
- }
- if($doings) {
- deletedoings($doings);
- } else {
- $next = 0;
- $nextdeleteitem = 'share';
- }
- }
- if($deleteitem == 'share') {
- $shares = array();
- foreach(C::t('home_share')->fetch_all_by_uid($uids, $pertask) as $share) {
- $shares[] = $share['sid'];
- }
- if($shares) {
- deleteshares($shares);
- } else {
- $next = 0;
- $nextdeleteitem = 'feed';
- }
- }
- if($deleteitem == 'feed') {
- C::t('home_follow_feed')->delete_by_uid($uids);
- $nextdeleteitem = 'comment';
- }
- if($deleteitem == 'comment') {
- $comments = array();
- $query = C::t('home_comment')->fetch_all_by_uid($uids, 0, $pertask);
- foreach($query as $comment) {
- $comments[] = $comment['cid'];
- }
- if($comments) {
- deletecomments($comments);
- } else {
- $next = 0;
- $nextdeleteitem = 'allitem';
- }
- }
- if($deleteitem == 'allitem') {
- require_once libfile('function/delete');
- $numdeleted = deletemember($uids);
- if($isfounder && !empty($_GET['includeuc'])) {
- loaducenter();
- uc_user_delete($uids);
- }
- if(!empty($_GET['uidarray'])) {
- cpmsg('members_delete_succeed', '', 'succeed', array('numdeleted' => $numdeleted));
- } else {
- $allnum += $membernum < $delmemberlimit ? $membernum : $delmemberlimit;
- $nextlink = "action=members&operation=clean&confirmed=yes&submit=yes&includepost=yes".(!empty($_GET['includeuc']) ? '&includeuc=yes' : '')."&allnum=$allnum&deletestart=".($deletestart+$delmemberlimit).$urladd;
- cpmsg(cplang('members_delete_user_processing_next', array('deletestart' => $deletestart, 'nextdeletestart' => $deletestart+$delmemberlimit)), $nextlink, 'loadingform', array());
- }
- }
- $nextlink = "action=members&operation=clean&confirmed=yes&submit=yes&includepost=yes".(!empty($_GET['includeuc']) ? '&includeuc=yes' : '')."¤t=$next&pertask=$pertask&lastprocess=$processed&allnum=$allnum&deletestart=$deletestart".$urladd;
- if(empty($_GET['uidarray'])) {
- $deladdmsg = cplang('members_delete_user_processing', array('deletestart' => $deletestart, 'nextdeletestart' => $deletestart+$delmemberlimit)).'<br>';
- } else {
- $deladdmsg = '';
- }
- if($nextdeleteitem != $deleteitem) {
- $nextlink .= "&deleteitem=$nextdeleteitem";
- cpmsg(cplang('members_delete_processing_next', array('deladdmsg' => $deladdmsg, 'item' => cplang('members_delete_'.$deleteitem), 'nextitem' => cplang('members_delete_'.$nextdeleteitem))), $nextlink, 'loadingform', array(), $extra);
- } else {
- $nextlink .= "&deleteitem=$deleteitem";
- cpmsg(cplang('members_delete_processing', array('deladdmsg' => $deladdmsg, 'item' => cplang('members_delete_'.$deleteitem), 'current' => $current, 'next' => $next)), $nextlink, 'loadingform', array(), $extra);
- }
- }
- }
- }
- } elseif($operation == 'newsletter') {
- if(!submitcheck('newslettersubmit', 1)) {
- loadcache('newsletter_detail');
- $newletter_detail = get_newsletter('newsletter_detail');
- $newletter_detail = dunserialize($newletter_detail);
- if($newletter_detail && $newletter_detail['uid'] == $_G['uid']) {
- if($_GET['goon'] == 'yes') {
- cpmsg("$lang[members_newsletter_send]: ".cplang('members_newsletter_processing', array('current' => $newletter_detail['current'], 'next' => $newletter_detail['next'], 'search_condition' => $newletter_detail['search_condition'])), $newletter_detail['action'], 'loadingform');
- } elseif($_GET['goon'] == 'no') {
- del_newsletter('newsletter_detail');
- } else {
- cpmsg('members_edit_continue', '', '', '', '<input type="button" class="btn" value="'.$lang[ok].'" onclick="location.href=\''.ADMINSCRIPT.'?action=members&operation=newsletter&goon=yes\'"> <input type="button" class="btn" value="'.$lang[cancel].'" onclick="location.href=\''.ADMINSCRIPT.'?action=members&operation=newsletter&goon=no\';">');
- exit;
- }
- }
- if($_GET['do'] == 'mobile') {
- shownav('user', 'nav_members_newsletter_mobile');
- showsubmenusteps('nav_members_newsletter_mobile', array(
- array('nav_members_select', !$_GET['submit']),
- array('nav_members_notify', $_GET['submit']),
- ));
- showtips('members_newsletter_mobile_tips');
- } else {
- shownav('user', 'nav_members_newsletter');
- showsubmenusteps('nav_members_newsletter', array(
- array('nav_members_select', !$_GET['submit']),
- array('nav_members_notify', $_GET['submit']),
- ), array(), array(array('members_grouppmlist', 'members&operation=grouppmlist', 0)));
- }
- showsearchform('newsletter');
- if(submitcheck('submit', 1)) {
- $dostr = '';
- if($_GET['do'] == 'mobile') {
- $search_condition['token_noempty'] = 'token';
- $dostr = '&do=mobile';
- }
- $membernum = countmembers($search_condition, $urladd);
- showtagheader('div', 'newsletter', TRUE);
- showformheader('members&operation=newsletter'.$urladd.$dostr);
- showhiddenfields(array('notifymember' => 1));
- echo '<table class="tb tb1">';
- if(!$membernum) {
- showtablerow('', 'class="lineheight"', $lang['members_search_nonexistence']);
- } else {
- showtablerow('class="first"', array('class="th11"'), array(
- cplang('members_newsletter_members'),
- cplang('members_search_result', array('membernum' => $membernum))."<a href=\"###\" onclick=\"$('searchmembers').style.display='';$('newsletter').style.display='none';$('step1').className='current';$('step2').className='';\" class=\"act\">$lang[research]</a>"
- ));
- showtablefooter();
- shownewsletter();
- $search_condition = serialize($search_condition);
- showsubmit('newslettersubmit', 'submit', 'td', '<input type="hidden" name="conditions" value=\''.$search_condition.'\' />');
- }
- showtablefooter();
- showformfooter();
- showtagfooter('div');
- }
- } else {
- $search_condition = dunserialize($_POST['conditions']);
- $membernum = countmembers($search_condition, $urladd);
- notifymembers('newsletter', 'newsletter');
- }
- } elseif($operation == 'grouppmlist') {
- if(!empty($_GET['delete']) && ($isfounder || C::t('common_grouppm')->count_by_id_authorid($_GET['delete'], $_G['uid']))) {
- if(!empty($_GET['confirm'])) {
- C::t('common_grouppm')->delete($_GET['delete']);
- C::t('common_member_grouppm')->delete_by_gpmid($_GET['delete']);
- } else {
- cpmsg('members_grouppm_delete_confirm', 'action=members&operation=grouppmlist&delete='.intval($_GET['delete']).'&confirm=yes', 'form');
- }
- }
- shownav('user', 'nav_members_newsletter');
- showsubmenu('nav_members_newsletter', array(
- array('members_grouppmlist_newsletter', 'members&operation=newsletter', 0),
- array('members_grouppmlist', 'members&operation=grouppmlist', 1)
- ));
- if($do) {
- $unreads = C::t('common_member_grouppm')->count_by_gpmid($do, 0);
- }
- showtableheader();
- $id = empty($do) ? 0 : $do;
- $authorid = $isfounder ? 0 : $_G['uid'];
- $grouppms = C::t('common_grouppm')->fetch_all_by_id_authorid($id, $authorid);
- if(!empty($grouppms)) {
- $users = C::t('common_member')->fetch_all(C::t('common_grouppm')->get_uids());
- foreach($grouppms as $grouppm) {
- showtablerow('', array('valign="top" class="td25"', 'valign="top"'), array(
- '<a href="home.php?mod=space&uid='.$grouppm['authorid'].'" target="_blank">'.avatar($grouppm['authorid'], 'small').'</a>',
- '<a href="home.php?mod=space&uid='.$grouppm['authorid'].'" target="_blank"><b>'.$users[$grouppm['authorid']]['username'].'</b></a> ('.dgmdate($grouppm['dateline']).'):<br />'.
- $grouppm['message'].'<br /><br />'.
- (!$do ?
- '<a href="'.ADMINSCRIPT.'?action=members&operation=grouppmlist&do='.$grouppm['id'].'">'.cplang('members_grouppmlist_view', array('number' => $grouppm['numbers'])).'</a>' :
- '<a href="'.ADMINSCRIPT.'?action=members&operation=grouppmlist&do='.$grouppm['id'].'">'.cplang('members_grouppmlist_view_all').'</a>('.$grouppm['numbers'].') '.
- '<a href="'.ADMINSCRIPT.'?action=members&operation=grouppmlist&do='.$grouppm['id'].'&filter=unread">'.cplang('members_grouppmlist_view_unread').'</a>('.$unreads.') '.
- '<a href="'.ADMINSCRIPT.'?action=members&operation=grouppmlist&do='.$grouppm['id'].'&filter=read">'.cplang('members_grouppmlist_view_read').'</a>('.($grouppm['numbers'] - $unreads).')'),
- '<a href="'.ADMINSCRIPT.'?action=members&operation=grouppmlist&delete='.$grouppm['id'].'">'.cplang('delete').'</a>'
- ));
- }
- } else {
- showtablerow('', '', cplang('members_newsletter_empty'));
- }
- showtablefooter();
- if($do) {
- $_GET['filter'] = in_array($_GET['filter'], array('read', 'unread')) ? $_GET['filter'] : '';
- $filteradd = $_GET['filter'] ? '&filter='.$_GET['filter'] : '';
- $ppp = 100;
- $start_limit = ($page - 1) * $ppp;
- if($_GET['filter'] != 'unread') {
- $count = C::t('common_member_grouppm')->count_by_gpmid($do, 1);
- } else {
- $count = $unreads;
- }
- $multipage = multi($count, $ppp, $page, ADMINSCRIPT."?action=members&operation=grouppmlist&do=$do".$filteradd);
- $alldata = C::t('common_member_grouppm')->fetch_all_by_gpmid($gpmid, $_GET['filter'] == 'read' ? 1 : 0, $start_limit, $ppp);
- $allmember = $gpmuser ? C::t('common_member')->fetch_all_username_by_uid(array_keys($gpmuser)) : array();
- foreach($alldata as $uid => $gpmuser) {
- echo '<div style="margin-bottom:5px;float:left;width:24%"><b><a href="home.php?mod=space&uid='.$uid.'" target="_blank">'.$allmember[$uid].'</a></b><br /> ';
- if($gpmuser['status'] == 0) {
- echo '<span class="lightfont">'.cplang('members_grouppmlist_status_0').'</span>';
- } else {
- echo dgmdate($gpmuser['dateline'], 'u').' '.cplang('members_grouppmlist_status_1');
- if($gpmuser['status'] == -1) {
- echo ', <span class="error">'.cplang('members_grouppmlist_status_-1').'</span>';
- }
- }
- echo '</div>';
- }
- echo $multipage;
- }
- } elseif($operation == 'reward') {
- if(!submitcheck('rewardsubmit', 1)) {
- shownav('user', 'nav_members_reward');
- showsubmenusteps('nav_members_reward', array(
- array('nav_members_select', !$_GET['submit']),
- array('nav_members_reward', $_GET['submit']),
- ));
- showsearchform('reward');
- if(submitcheck('submit', 1)) {
- $membernum = countmembers($search_condition, $urladd);
- showtagheader('div', 'reward', TRUE);
- showformheader('members&operation=reward'.$urladd);
- echo '<table class="tb tb1">';
- if(!$membernum) {
- showtablerow('', 'class="lineheight"', $lang['members_search_nonexistence']);
- showtablefooter();
- } else {
- $creditscols = array('credits_title');
- $creditsvalue = $resetcredits = array();
- $js_extcreditids = '';
- for($i=1; $i<=8; $i++) {
- $js_extcreditids .= (isset($_G['setting']['extcredits'][$i]) ? ($js_extcreditids ? ',' : '').$i : '');
- $creditscols[] = isset($_G['setting']['extcredits'][$i]) ? $_G['setting']['extcredits'][$i]['title'] : 'extcredits'.$i;
- $creditsvalue[] = isset($_G['setting']['extcredits'][$i]) ? '<input type="text" class="txt" size="3" id="addextcredits['.$i.']" name="addextcredits['.$i.']" value="0"> '.$_G['setting']['extcredits']['$i']['unit'] : '<input type="text" class="txt" size="3" value="N/A" disabled>';
- $resetcredits[] = isset($_G['setting']['extcredits'][$i]) ? '<input type="checkbox" id="resetextcredits['.$i.']" name="resetextcredits['.$i.']" value="1" class="radio" disabled> '.$_G['setting']['extcredits']['$i']['unit'] : '<input type="checkbox" disabled class="radio">';
- }
- $creditsvalue = array_merge(array('<input type="radio" name="updatecredittype" id="updatecredittype0" value="0" class="radio" onclick="var extcredits = new Array('.$js_extcreditids.'); for(k in extcredits) {$(\'resetextcredits[\'+extcredits[k]+\']\').disabled = true; $(\'addextcredits[\'+extcredits[k]+\']\').disabled = false;}" checked="checked" /><label for="updatecredittype0">'.$lang['members_reward_value'].'</label>'), $creditsvalue);
- $resetcredits = array_merge(array('<input type="radio" name="updatecredittype" id="updatecredittype1" value="1" class="radio" onclick="var extcredits = new Array('.$js_extcreditids.'); for(k in extcredits) {$(\'addextcredits[\'+extcredits[k]+\']\').disabled = true; $(\'resetextcredits[\'+extcredits[k]+\']\').disabled = false;}" /><label for="updatecredittype1">'.$lang['members_reward_clean'].'</label>'), $resetcredits);
- showtablerow('class="first"', array('class="th11"'), array(
- cplang('members_reward_members'),
- cplang('members_search_result', array('membernum' => $membernum))."<a href=\"###\" onclick=\"$('searchmembers').style.display='';$('reward').style.display='none';$('step1').className='current';$('step2').className='';\" class=\"act\">$lang[research]</a>"
- ));
- echo '<tr><td class="th12">'.cplang('nav_members_reward').'</td><td>';
- showtableheader('', 'noborder');
- showsubtitle($creditscols);
- showtablerow('', array('class="td23"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"'), $creditsvalue);
- showtablerow('', array('class="td23"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"', 'class="td28"'), $resetcredits);
- showtablefooter();
- showtablefooter();
- showtagheader('div', 'messagebody');
- shownewsletter();
- showtagfooter('div');
- showsubmit('rewardsubmit', 'submit', 'td', '<input class="checkbox" type="checkbox" name="notifymember" value="1" onclick="$(\'messagebody\').style.display = this.checked ? \'\' : \'none\'" id="credits_notify" /><label for="credits_notify">'.cplang('members_reward_notify').'</label>');
- }
- showtablefooter();
- showformfooter();
- showtagfooter('div');
- }
- } else {
- if(!empty($_POST['conditions'])) $search_condition = dunserialize($_POST['conditions']);
- $membernum = countmembers($search_condition, $urladd);
- notifymembers('reward', 'creditsnotify');
- }
- } elseif($operation == 'confermedal') {
- $medals = '';
- foreach(C::t('forum_medal')->fetch_all_data(1) as $medal) {
- $medals .= showtablerow('', array('class="td25"', 'class="td23"'), array(
- "<input class=\"checkbox\" type=\"checkbox\" name=\"medals[$medal[medalid]]\" value=\"1\" />",
- "<img src=\"static/image/common/$medal[image]\" />",
- $medal['name']
- ), TRUE);
- }
- if(!$medals) {
- cpmsg('members_edit_medals_nonexistence', 'action=medals', 'error');
- }
- if(!submitcheck('confermedalsubmit', 1)) {
- shownav('extended', 'nav_medals', 'nav_members_confermedal');
- showsubmenusteps('nav_members_confermedal', array(
- array('nav_members_select', !$_GET['submit']),
- array('nav_members_confermedal', $_GET['submit']),
- ), array(
- array('admin', 'medals', 0),
- array('nav_medals_confer', 'members&operation=confermedal', 1),
- array('nav_medals_mod', 'medals&operation=mod', 0)
- ));
- showsearchform('confermedal');
- if(submitcheck('submit', 1)) {
- $membernum = countmembers($search_condition, $urladd);
- showtagheader('div', 'confermedal', TRUE);
- showformheader('members&operation=confermedal'.$urladd);
- echo '<table class="tb tb1">';
- if(!$membernum) {
- showtablerow('', 'class="lineheight"', $lang['members_search_nonexistence']);
- showtablefooter();
- } else {
- showtablerow('class="first"', array('class="th11"'), array(
- cplang('members_confermedal_members'),
- cplang('members_search_result', array('membernum' => $membernum))."<a href=\"###\" onclick=\"$('searchmembers').style.display='';$('confermedal').style.display='none';$('step1').className='current';$('step2').className='';\" class=\"act\">$lang[research]</a>"
- ));
- echo '<tr><td class="th12">'.cplang('members_confermedal').'</td><td>';
- showtableheader('', 'noborder');
- showsubtitle(array('medals_grant', 'medals_image', 'name'));
- echo $medals;
- showtablefooter();
- showtablefooter();
- showtagheader('div', 'messagebody');
- shownewsletter();
- showtagfooter('div');
- showsubmit('confermedalsubmit', 'submit', 'td', '<input class="checkbox" type="checkbox" name="notifymember" value="1" onclick="$(\'messagebody\').style.display = this.checked ? \'\' : \'none\'" id="grant_notify"/><label for="grant_notify">'.cplang('medals_grant_notify').'</label>');
- }
- showtablefooter();
- showformfooter();
- showtagfooter('div');
- }
- } else {
- if(!empty($_POST['conditions'])) $search_condition = dunserialize($_POST['conditions']);
- $membernum = countmembers($search_condition, $urladd);
- notifymembers('confermedal', 'medalletter');
- }
- } elseif($operation == 'confermagic') {
- $magics = '';
- foreach(C::t('common_magic')->fetch_all_data(1) as $magic) {
- $magics .= showtablerow('', array('class="td25"', 'class="td23"', 'class="td25"', ''), array(
- "<input class=\"checkbox\" type=\"checkbox\" name=\"magic[]\" value=\"$magic[magicid]\" />",
- "<img src=\"static/image/magic/$magic[identifier].gif\" />",
- $magic['name'],
- '<input class="txt" type="text" name="magicnum['.$magic['magicid'].']" value="1" size="3">'
- ), TRUE);
- }
- if(!$magics) {
- cpmsg('members_edit_magics_nonexistence', 'action=magics', 'error');
- }
- if(!submitcheck('confermagicsubmit', 1)) {
- shownav('extended', 'nav_magics', 'nav_members_confermagic');
- showsubmenusteps('nav_members_confermagic', array(
- array('nav_members_select', !$_GET['submit']),
- array('nav_members_confermagic', $_GET['submit']),
- ), array(
- array('admin', 'magics&operation=admin', 0),
- array('nav_magics_confer', 'members&operation=confermagic', 1)
- ));
- showsearchform('confermagic');
- if(submitcheck('submit', 1)) {
- $membernum = countmembers($search_condition, $urladd);
- showtagheader('div', 'confermedal', TRUE);
- showformheader('members&operation=confermagic'.$urladd);
- echo '<table class="tb tb1">';
- if(!$membernum) {
- showtablerow('', 'class="lineheight"', $lang['members_search_nonexistence']);
- showtablefooter();
- } else {
- showtablerow('class="first"', array('class="th11"'), array(
- cplang('members_confermagic_members'),
- cplang('members_search_result', array('membernum' => $membernum))."<a href=\"###\" onclick=\"$('searchmembers').style.display='';$('confermedal').style.display='none';$('step1').className='current';$('step2').className='';\" class=\"act\">$lang[research]</a>"
- ));
- echo '<tr><td class="th12">'.cplang('members_confermagic').'</td><td>';
- showtableheader('', 'noborder');
- showsubtitle(array('nav_magics_confer', 'nav_magics_image', 'nav_magics_name', 'nav_magics_num'));
- echo $magics;
- showtablefooter();
- showtablefooter();
- showtagheader('div', 'messagebody');
- shownewsletter();
- showtagfooter('div');
- showsubmit('confermagicsubmit', 'submit', 'td', '<input class="checkbox" type="checkbox" name="notifymember" value="1" onclick="$(\'messagebody\').style.display = this.checked ? \'\' : \'none\'" id="grant_notify"/><label for="grant_notify">'.cplang('magics_grant_notify').'</label>');
- }
- showtablefooter();
- showformfooter();
- showtagfooter('div');
- }
- } else {
- if(!empty($_POST['conditions'])) $search_condition = dunserialize($_POST['conditions']);
- $membernum = countmembers($search_condition, $urladd);
- notifymembers('confermagic', 'magicletter');
- }
- } elseif($operation == 'add') {
- if(!submitcheck('addsubmit', 1)) {
- $groupselect = array();
- $query = C::t('common_usergroup')->fetch_all_by_not_groupid(array(5, 6, 7));
- foreach($query as $group) {
- $group['type'] = $group['type'] == 'special' && $group['radminid'] ? 'specialadmin' : $group['type'];
- if($group['type'] == 'member' && $group['creditshigher'] == 0) {
- $groupselect[$group['type']] .= "<option value=\"$group[groupid]\" selected>$group[grouptitle]</option>\n";
- } else {
- $groupselect[$group['type']] .= "<option value=\"$group[groupid]\">$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>';
- shownav('user', 'nav_members_add');
- showsubmenu('members_add');
- showformheader('members&operation=add');
- showtableheader();
- showsetting('username', 'newusername', '', 'text');
- showsetting('password', 'newpassword', '', 'text');
- showsetting('email', 'newemail', '', 'text');
- showsetting('usergroup', '', '', '<select name="newgroupid">'.$groupselect.'</select>');
- showsetting('members_add_email_notify', 'emailnotify', '', 'radio');
- showsubmit('addsubmit');
- showtablefooter();
- showformfooter();
- } else {
- $newusername = trim($_GET['newusername']);
- $newpassword = trim($_GET['newpassword']);
- $newemail = strtolower(trim($_GET['newemail']));
- if(!$newusername || !isset($_GET['confirmed']) && !$newpassword || !isset($_GET['confirmed']) && !$newemail) {
- cpmsg('members_add_invalid', '', 'error');
- }
- if(C::t('common_member')->fetch_uid_by_username($newusername) || C::t('common_member_archive')->fetch_uid_by_username($newusername)) {
- cpmsg('members_add_username_duplicate', '', 'error');
- }
- loaducenter();
- $uid = uc_user_register(addslashes($newusername), $newpassword, $newemail);
- if($uid <= 0) {
- if($uid == -1) {
- cpmsg('members_add_illegal', '', 'error');
- } elseif($uid == -2) {
- cpmsg('members_username_protect', '', 'error');
- } elseif($uid == -3) {
- if(empty($_GET['confirmed'])) {
- cpmsg('members_add_username_activation', 'action=members&operation=add&addsubmit=yes&newgroupid='.$_GET['newgroupid'].'&newusername='.rawurlencode($newusername), 'form');
- } else {
- list($uid,, $newemail) = uc_get_user(addslashes($newusername));
- }
- } elseif($uid == -4) {
- cpmsg('members_email_illegal', '', 'error');
- } elseif($uid == -5) {
- cpmsg('members_email_domain_illegal', '', 'error');
- } elseif($uid == -6) {
- cpmsg('members_email_duplicate', '', 'error');
- }
- }
- $group = C::t('common_usergroup')->fetch($_GET['newgroupid']);
- $newadminid = in_array($group['radminid'], array(1, 2, 3)) ? $group['radminid'] : ($group['type'] == 'special' ? -1 : 0);
- if($group['radminid'] == 1) {
- cpmsg('members_add_admin_none', '', 'error');
- }
- if(in_array($group['groupid'], array(5, 6, 7))) {
- cpmsg('members_add_ban_all_none', '', 'error');
- }
- $profile = $verifyarr = array();
- loadcache('fields_register');
- $init_arr = explode(',', $_G['setting']['initcredits']);
- $password = md5(random(10));
- C::t('common_member')->insert($uid, $newusername, $password, $newemail, 'Manual Acting', $_GET['newgroupid'], $init_arr, $newadminid);
- if($_GET['emailnotify']) {
- if(!function_exists('sendmail')) {
- include libfile('function/mail');
- }
- $add_member_subject = lang('email', 'add_member_subject');
- $add_member_message = lang('email', 'add_member_message', array(
- 'newusername' => $newusername,
- 'bbname' => $_G['setting']['bbname'],
- 'adminusername' => $_G['member']['username'],
- 'siteurl' => $_G['siteurl'],
- 'newpassword' => $newpassword,
- ));
- if(!sendmail("$newusername <$newemail>", $add_member_subject, $add_member_message)) {
- runlog('sendmail', "$newemail sendmail failed.");
- }
- }
- updatecache('setting');
- cpmsg('members_add_succeed', '', 'succeed', array('username' => $newusername, 'uid' => $uid));
- }
- } elseif($operation == 'group') {
- $membermf = C::t('common_member_field_forum'.$tableext)->fetch($_GET['uid']);
- $membergroup = C::t('common_usergroup')->fetch($member['groupid']);
- $member = array_merge($member, (array)$membermf, $membergroup);
- if(!submitcheck('editsubmit')) {
- $checkadminid = array(($member['adminid'] >= 0 ? $member['adminid'] : 0) => 'checked');
- $member['groupterms'] = dunserialize($member['groupterms']);
- if($member['groupterms']['main']) {
- $expirydate = dgmdate($member['groupterms']['main']['time'], 'Y-n-j');
- $expirydays = ceil(($member['groupterms']['main']['time'] - TIMESTAMP) / 86400);
- $selecteaid = array($member['groupterms']['main']['adminid'] => 'selected');
- $selectegid = array($member['groupterms']['main']['groupid'] => 'selected');
- } else {
- $expirydate = $expirydays = '';
- $selecteaid = array($member['adminid'] => 'selected');
- $selectegid = array(($member['type'] == 'member' ? 0 : $member['groupid']) => 'selected');
- }
- $extgroups = $expgroups = '';
- $radmingids = 0;
- $extgrouparray = explode("\t", $member['extgroupids']);
- $groups = array('system' => '', 'special' => '', 'member' => '');
- $group = array('groupid' => 0, 'radminid' => 0, 'type' => '', 'grouptitle' => $lang['usergroups_system_0'], 'creditshigher' => 0, 'creditslower' => '0');
- $query = array_merge(array($group), (array)C::t('common_usergroup')->fetch_all_not(array(6, 7)));
- foreach($query as $group) {
- if($group['groupid'] && !in_array($group['groupid'], array(4, 5, 6, 7, 8)) && ($group['type'] == 'system' || $group['type'] == 'special')) {
- $extgroups .= showtablerow('', array('class="td27"', 'style="width:70%"'), array(
- '<input class="checkbox" type="checkbox" name="extgroupidsnew[]" value="'.$group['groupid'].'" '.(in_array($group['groupid'], $extgrouparray) ? 'checked' : '').' id="extgid_'.$group['groupid'].'" /><label for="extgid_'.$group['groupid'].'"> '.$group['grouptitle'].'</label>',
- '<input type="text" class="txt" size="9" name="extgroupexpirynew['.$group['groupid'].']" value="'.(in_array($group['groupid'], $extgrouparray) && !empty($member['groupterms']['ext'][$group['groupid']]) ? dgmdate($member['groupterms']['ext'][$group['groupid']], 'Y-n-j') : '').'" onclick="showcalendar(event, this)" />'
- ), TRUE);
- }
- if($group['groupid'] && $group['type'] == 'member' && !($member['credits'] >= $group['creditshigher'] && $member['credits'] < $group['creditslower']) && $member['groupid'] != $group['groupid']) {
- continue;
- }
- $expgroups .= '<option name="expgroupidnew" value="'.$group['groupid'].'" '.$selectegid[$group['groupid']].'>'.$group['grouptitle'].'</option>';
- if($group['groupid'] != 0) {
- $group['type'] = $group['type'] == 'special' && $group['radminid'] ? 'specialadmin' : $group['type'];
- $groups[$group['type']] .= '<option value="'.$group['groupid'].'"'.($member['groupid'] == $group['groupid'] ? 'selected="selected"' : '').' gtype="'.$group['type'].'">'.$group['grouptitle'].'</option>';
- if($group['type'] == 'special' && !$group['radminid']) {
- $radmingids .= ','.$group['groupid'];
- }
- }
- }
- if(!$groups['member']) {
- $group = C::t('common_usergroup')->fetch_new_groupid(true);
- $groups['member'] = '<option value="'.$group['groupid'].'" gtype="member">'.$group['grouptitle'].'</option>';
- }
- shownav('user', 'members_group');
- showsubmenu('members_group_member', array(), '', array('username' => $member['username']));
- echo '<script src="static/js/calendar.js" type="text/javascript"></script>';
- showformheader("members&operation=group&uid=$member[uid]");
- showtableheader('usergroup', 'nobottom');
- showsetting('members_group_group', '', '', '<select name="groupidnew" onchange="if(in_array(this.value, ['.$radmingids.'])) {$(\'relatedadminid\').style.display = \'\';$(\'adminidnew\').name=\'adminidnew[\' + this.value + \']\';} else {$(\'relatedadminid\').style.display = \'none\';$(\'adminidnew\').name=\'adminidnew[0]\';}"><optgroup label="'.$lang['usergroups_system'].'">'.$groups['system'].'<optgroup label="'.$lang['usergroups_special'].'">'.$groups['special'].'<optgroup label="'.$lang['usergroups_specialadmin'].'">'.$groups['specialadmin'].'<optgroup label="'.$lang['usergroups_member'].'">'.$groups['member'].'</select>');
- showtagheader('tbody', 'relatedadminid', $member['type'] == 'special' && !$member['radminid'], 'sub');
- showsetting('members_group_related_adminid', '', '', '<select id="adminidnew" name="adminidnew['.$member['groupid'].']"><option value="0"'.($member['adminid'] == 0 ? ' selected' : '').'>'.$lang['none'].'</option><option value="3"'.($member['adminid'] == 3 ? ' selected' : '').'>'.$lang['usergroups_system_3'].'</option><option value="2"'.($member['adminid'] == 2 ? ' selected' : '').'>'.$lang['usergroups_system_2'].'</option><option value="1"'.($member['adminid'] == 1 ? ' selected' : '').'>'.$lang['usergroups_system_1'].'</option></select>');
- showtagfooter('tbody');
- showsetting('members_group_validity', 'expirydatenew', $expirydate, 'calendar');
- showsetting('members_group_orig_adminid', '', '', '<select name="expgroupidnew">'.$expgroups.'</select>');
- showsetting('members_group_orig_groupid', '', '', '<select name="expadminidnew"><option value="0" '.$selecteaid[0].'>'.$lang['usergroups_system_0'].'</option><option value="1" '.$selecteaid[1].'>'.$lang['usergroups_system_1'].'</option><option value="2" '.$selecteaid[2].'>'.$lang['usergroups_system_2'].'</option><option value="3" '.$selecteaid[3].'>'.$lang['usergroups_system_3'].'</option></select>');
- showtablefooter();
- showtableheader('members_group_extended', 'noborder fixpadding');
- showsubtitle(array('usergroup', 'validity'));
- echo $extgroups;
- showtablerow('', 'colspan="2"', cplang('members_group_extended_comment'));
- showtablefooter();
- showtableheader('members_edit_reason', 'notop');
- showsetting('members_group_ban_reason', 'reason', '', 'textarea');
- showsubmit('editsubmit');
- showtablefooter();
- showformfooter();
- } else {
- $group = C::t('common_usergroup')->fetch($_GET['groupidnew']);
- if(!$group) {
- cpmsg('undefined_action', '', 'error');
- }
- if(strlen(is_array($_GET['extgroupidsnew']) ? implode("\t", $_GET['extgroupidsnew']) : '') > 30) {
- cpmsg('members_edit_groups_toomany', '…