(%s)', bb_date($row['user_time'], $date_format), delta_time($row['user_time'])) : $lang['NONE']; $posts = ''. $row['user_posts'] .''; $pm = ($bb_cfg['text_buttons']) ? ''. $lang['SEND_PM_TXTB'] .'' : '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; $avatar = get_avatar($row['user_id'], $row['avatar_ext_id'], !bf($row['user_opt'], 'user_opt', 'dis_avatar'), '', 50, 50); if (bf($row['user_opt'], 'user_opt', 'user_viewemail') || $row['user_id'] == $userdata['user_id'] || $group_mod) { $email_uri = ($bb_cfg['board_email_form']) ? ("profile.php?mode=email&". POST_USERS_URL ."=".$row['user_id']) : 'mailto:'. $row['user_email']; $email = ''. $row['user_email'] .''; } else $email = $lang['NOSELECT']; if ($row['user_website']) { $www = ($bb_cfg['text_buttons']) ? ''. $lang['VISIT_WEBSITE_TXTB'] .'' : '' . $lang['VISIT_WEBSITE'] . ''; } else $www = $lang['NOSELECT']; return; } $user->session_start(array('req_login' => true)); set_die_append_msg(); $group_id = isset($_REQUEST[POST_GROUPS_URL]) ? intval($_REQUEST[POST_GROUPS_URL]) : null; $start = isset($_REQUEST['start']) ? abs(intval($_REQUEST['start'])) : 0; $per_page = $bb_cfg['group_members_per_page']; $view_mode = isset($_REQUEST['view']) ? (string) $_REQUEST['view'] : null; $rel_limit = 50; $group_info = array(); $is_moderator = false; if ($group_id) { if (!$group_info = get_group_data($group_id)) { bb_die($lang['GROUP_NOT_EXIST']); } if (!$group_info['group_id'] || !$group_info['group_moderator'] || !$group_info['moderator_name']) { bb_die("Invalid group data [group_id: $group_id]"); } $is_moderator = ($userdata['user_id'] == $group_info['group_moderator'] || IS_ADMIN); } if (!$group_id) { // Show the main screen where the user can select a group. $groups = array(); $pending = 10; $member = 20; $sql = " SELECT g.group_name, g.group_description, g.group_id, g.group_type, g.release_group, IF(ug.user_id IS NOT NULL, IF(ug.user_pending = 1, $pending, $member), 0) AS membership, g.group_moderator, u.username AS moderator_name, IF(g.group_moderator = ug.user_id, 1, 0) AS is_group_mod, COUNT(ug2.user_id) AS members, SUM(ug2.user_pending) AS candidates FROM ". BB_GROUPS ." g LEFT JOIN ". BB_USER_GROUP ." ug ON ug.group_id = g.group_id AND ug.user_id = ". $userdata['user_id'] ." LEFT JOIN ". BB_USER_GROUP ." ug2 ON ug2.group_id = g.group_id LEFT JOIN ". BB_USERS ." u ON g.group_moderator = u.user_id WHERE g.group_single_user = 0 GROUP BY g.group_id ORDER BY is_group_mod DESC, membership DESC, g.group_type ASC, g.group_name ASC "; foreach (DB()->fetch_rowset($sql) as $row) { if ($row['is_group_mod']) { $type = 'MOD'; } else if ($row['membership'] == $member) { $type = 'MEMBER'; } else if ($row['membership'] == $pending) { $type = 'PENDING'; } else if ($row['group_type'] == GROUP_OPEN) { $type = 'OPEN'; } else if ($row['group_type'] == GROUP_CLOSED) { $type = 'CLOSED'; } else if ($row['group_type'] == GROUP_HIDDEN && IS_ADMIN) { $type = 'HIDDEN'; } else { continue; } $data = array('id' => $row['group_id'], 'm' => ($row['members'] - $row['candidates']), 'c' => $row['candidates'], 'rg' => $row['release_group']); $groups[$type][$row['group_name']] = $data; } function build_group($params) { global $lang; $options = ''; foreach ($params as $name => $data) { $text = htmlCHR(str_short(rtrim($name), HTML_SELECT_MAX_LENGTH)); $members = ($data['m']) ? $lang['MEMBERS_IN_GROUP'] .': '. $data['m'] : $lang['NO_GROUP_MEMBERS']; $candidates = ($data['c']) ? $lang['PENDING_MEMBERS'] .': '. $data['c'] : $lang['NO_PENDING_GROUP_MEMBERS']; $options .= '
  • '. $text .'
  • '; $options .= ($data['rg']) ? '