function update_groupmoderators($fid) { global $_G; if (empty($fid)) { return false; } $moderators = groupuserlist($fid, 'level_join', 0, 0, array('level' => array('1', '2')), array('username', 'level')); if (!empty($moderators)) { DB::query("UPDATE " . DB::table('forum_forumfield') . " SET moderators='" . addslashes(serialize($moderators)) . "' WHERE fid='{$fid}'"); return $moderators; } else { return array(); } }
$user['joindateline'] = date('Y-m-d H:i', $user['joindateline']); $checkusers[$user['uid']] = $user; } } } elseif ($_G['gp_op'] == 'manageuser') { $mtype = array(1 => lang('group/template', 'group_moderator'), 2 => lang('group/template', 'group_moderator_vice'), 3 => lang('group/template', 'group_star_member_title'), 4 => lang('group/misc', 'group_normal_member'), 5 => lang('group/misc', 'group_goaway')); if (!submitcheck('manageuser')) { $userlist = array(); if (empty($_G['gp_srchuser'])) { $staruserlist = $page < 2 ? groupuserlist($_G['fid'], '', 0, 0, array('level' => '3'), array('uid', 'username', 'level', 'joindateline', 'lastupdate')) : ''; $adminuserlist = $groupmanagers && $page < 2 ? $groupmanagers : array(); $multipage = multi($_G['forum']['membernum'], $perpage, $page, $url); } else { $start = 0; } $userlist = groupuserlist($_G['fid'], '', $perpage, $start, $_G['gp_srchuser'] ? "AND username='******'gp_srchuser']}'" : "AND level='4'"); } else { $muser = getgpc('muid'); $targetlevel = $_G['gp_targetlevel']; if ($muser && is_array($muser)) { foreach ($muser as $muid => $mlevel) { if ($_G['adminid'] != 1 && $_G['forum']['founderuid'] != $_G['uid'] && $groupmanagers[$muid] && $groupmanagers[$muid]['level'] <= $groupuser['level']) { showmessage('group_member_level_admin_noallowed.', $url); } if ($_G['adminid'] == 1 || $muid != $_G['uid'] && ($_G['forum']['founderuid'] == $_G['uid'] || !$groupmanagers[$muid] || $groupmanagers[$muid]['level'] > $groupuser['level'])) { if ($targetlevel != 5) { DB::query("UPDATE " . DB::table('forum_groupuser') . " SET level='{$targetlevel}' WHERE uid='{$muid}' AND fid='{$_G['fid']}'"); } else { if (!$groupmanagers[$muid] || count($groupmanagers) > 1) { DB::query("DELETE FROM " . DB::table('forum_groupuser') . " WHERE uid='{$muid}' AND fid='{$_G['fid']}'"); DB::query("UPDATE " . DB::table('forum_forumfield') . " SET membernum=membernum+'-1' WHERE fid='{$_G['fid']}'");
$checkusers = array(); $userlist = groupuserlist($_G['fid'], 'joindateline', $perpage, $start, array('level' => 0)); $checknum = DB::result(DB::query("SELECT count(*) FROM " . DB::table('forum_groupuser') . " WHERE fid='{$_G['fid']}' AND level='0'"), 0); $multipage = multi($checknum, $perpage, $page, $url); foreach ($userlist as $user) { $user['joindateline'] = date('Y-m-d H:i', $user['joindateline']); $checkusers[$user['uid']] = $user; } } } elseif ($_G['gp_op'] == 'manageuser') { $mtype = array(1 => lang('group/template', 'group_moderator'), 2 => lang('group/template', 'group_moderator_vice'), 3 => lang('group/template', 'group_star_member'), 4 => lang('group/template', 'group_normal_member'), 5 => lang('group/template', 'group_goaway')); if (!submitcheck('manageuser')) { $userlist = array(); $staruserlist = $page < 2 ? groupuserlist($_G['fid'], '', 0, 0, array('level' => '3'), array('uid', 'username', 'level', 'joindateline', 'lastupdate')) : ''; $adminuserlist = $groupmanagers && $page < 2 ? $groupmanagers : array(); $userlist = groupuserlist($_G['fid'], '', $perpage, $start, "AND level='4'"); $multipage = multi($_G['forum']['membernum'], $perpage, $page, $url); } else { if (count($groupuser) == 1) { showmessage('group_admin_only_one_member', $url); } $muser = getgpc('muid'); $targetlevel = $_G['gp_targetlevel']; if ($muser && is_array($muser)) { foreach ($muser as $muid => $mlevel) { if ($_G['forum']['founderuid'] != $_G['uid'] && $groupmanagers[$muid] && $groupmanagers[$muid]['level'] <= $groupuser['level']) { showmessage('group_member_level_admin_noallowed.', $url); } if ($muid != $_G['uid'] && ($_G['forum']['founderuid'] == $_G['uid'] || !$groupmanagers[$muid] || $groupmanagers[$muid]['level'] > $groupuser['level'])) { if ($targetlevel != 5) { DB::query("UPDATE " . DB::table('forum_groupuser') . " SET level='{$targetlevel}' WHERE uid='{$muid}' AND fid='{$_G['fid']}'");