request['user_id']) OR !$profiledata = get_userdata($user_id)) { $this->ajax_die("invalid user_id: $user_id"); } if (!$mode = (string) $this->request['mode']) { $this->ajax_die('invalid mode (empty)'); } switch ($mode) { case 'get_group_list': $sql = " SELECT ug.user_pending, g.group_id, g.group_type, g.group_name, g.group_moderator, self.user_id AS can_view FROM ". BB_USER_GROUP ." ug INNER JOIN ". BB_GROUPS ." g ON(g.group_id = ug.group_id AND g.group_single_user = 0) LEFT JOIN ". BB_USER_GROUP ." self ON(self.group_id = g.group_id AND self.user_id = {$user->id} AND self.user_pending = 0) WHERE ug.user_id = $user_id ORDER BY g.group_name "; $html = array(); foreach (DB()->fetch_rowset($sql) as $row) { $class = ($row['user_pending']) ? 'med' : 'med bold'; $class .= ($row['group_moderator'] == $user_id) ? ' colorMod' : ''; $href = "group.php?g={$row['group_id']}"; if (IS_ADMIN) { $href .= "&u=$user_id"; $link = ''. htmlCHR($row['group_name']) .''; $html[] = $link; } else { // скрытая группа и сам юзер не является ее членом if ($row['group_type'] == GROUP_HIDDEN && !$row['can_view']) { continue; } if ($row['group_moderator'] == $user->id) { $class .= ' selfMod'; $href .= "&u=$user_id"; // сам юзер модератор этой группы } $link = ''. htmlCHR($row['group_name']) .''; $html[] = $link; } } if ($html) { $this->response['group_list_html'] = ''; } else { $this->response['group_list_html'] = $lang['GROUP_LIST_HIDDEN']; } break; default: $this->ajax_die('Invalid mode: ' . htmlCHR($mode)); }