root / tags / release_2_0_1 / phpBB / memberlist.php
History | View | Annotate | Download (11.8 kB)
| 1 | <?php
|
|---|---|
| 2 | /***************************************************************************
|
| 3 | * memberlist.php |
| 4 | * ------------------- |
| 5 | * begin : Friday, May 11, 2001 |
| 6 | * copyright : (C) 2001 The phpBB Group |
| 7 | * email : support@phpbb.com |
| 8 | * |
| 9 | * $Id: memberlist.php 2610 2002-05-20 13:52:12Z $ |
| 10 | * |
| 11 | ***************************************************************************/ |
| 12 | |
| 13 | /***************************************************************************
|
| 14 | * |
| 15 | * This program is free software; you can redistribute it and/or modify |
| 16 | * it under the terms of the GNU General Public License as published by |
| 17 | * the Free Software Foundation; either version 2 of the License, or |
| 18 | * (at your option) any later version. |
| 19 | * |
| 20 | ***************************************************************************/ |
| 21 | |
| 22 | define('IN_PHPBB', true); |
| 23 | $phpbb_root_path = './'; |
| 24 | include($phpbb_root_path . 'extension.inc'); |
| 25 | include($phpbb_root_path . 'common.'.$phpEx); |
| 26 | |
| 27 | //
|
| 28 | // Start session management
|
| 29 | //
|
| 30 | $userdata = session_pagestart($user_ip, PAGE_VIEWMEMBERS); |
| 31 | init_userprefs($userdata);
|
| 32 | //
|
| 33 | // End session management
|
| 34 | //
|
| 35 | |
| 36 | $start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0; |
| 37 | |
| 38 | if(isset($HTTP_POST_VARS['order'])) |
| 39 | {
|
| 40 | $sort_order = ($HTTP_POST_VARS['order'] == 'ASC') ? 'ASC' : 'DESC'; |
| 41 | } |
| 42 | else if(isset($HTTP_GET_VARS['order'])) |
| 43 | {
|
| 44 | $sort_order = ($HTTP_GET_VARS['order'] == 'ASC') ? 'ASC' : 'DESC'; |
| 45 | } |
| 46 | else
|
| 47 | {
|
| 48 | $sort_order = 'ASC'; |
| 49 | } |
| 50 | |
| 51 | //
|
| 52 | // Memberlist sorting
|
| 53 | //
|
| 54 | $mode_types_text = array($lang['Sort_Joined'], $lang['Sort_Username'], $lang['Sort_Location'], $lang['Sort_Posts'], $lang['Sort_Email'], $lang['Sort_Website'], $lang['Sort_Top_Ten']); |
| 55 | $mode_types = array('joindate', 'username', 'location', 'posts', 'email', 'website', 'topten'); |
| 56 | |
| 57 | $select_sort_mode = '<select name="mode">'; |
| 58 | for($i = 0; $i < count($mode_types_text); $i++) |
| 59 | {
|
| 60 | $selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : ''; |
| 61 | $select_sort_mode .= '<option value="' . $mode_types[$i] . '"' . $selected . '>' . $mode_types_text[$i] . '</option>'; |
| 62 | } |
| 63 | $select_sort_mode .= '</select>'; |
| 64 | |
| 65 | $select_sort_order = '<select name="order">'; |
| 66 | if($sort_order == 'ASC') |
| 67 | {
|
| 68 | $select_sort_order .= '<option value="ASC" selected="selected">' . $lang['Sort_Ascending'] . '</option><option value="DESC">' . $lang['Sort_Descending'] . '</option>'; |
| 69 | } |
| 70 | else
|
| 71 | {
|
| 72 | $select_sort_order .= '<option value="ASC">' . $lang['Sort_Ascending'] . '</option><option value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option>'; |
| 73 | } |
| 74 | $select_sort_order .= '</select>'; |
| 75 | |
| 76 | //
|
| 77 | // Generate page
|
| 78 | //
|
| 79 | $page_title = $lang['Memberlist']; |
| 80 | include($phpbb_root_path . 'includes/page_header.'.$phpEx); |
| 81 | |
| 82 | $template->set_filenames(array( |
| 83 | 'body' => 'memberlist_body.tpl') |
| 84 | ); |
| 85 | make_jumpbox('viewforum.'.$phpEx); |
| 86 | |
| 87 | $template->assign_vars(array( |
| 88 | 'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'], |
| 89 | 'L_EMAIL' => $lang['Email'], |
| 90 | 'L_WEBSITE' => $lang['Website'], |
| 91 | 'L_FROM' => $lang['Location'], |
| 92 | 'L_ORDER' => $lang['Order'], |
| 93 | 'L_SORT' => $lang['Sort'], |
| 94 | 'L_SUBMIT' => $lang['Sort'], |
| 95 | 'L_AIM' => $lang['AIM'], |
| 96 | 'L_YIM' => $lang['YIM'], |
| 97 | 'L_MSNM' => $lang['MSNM'], |
| 98 | 'L_ICQ' => $lang['ICQ'], |
| 99 | 'L_JOINED' => $lang['Joined'], |
| 100 | 'L_POSTS' => $lang['Posts'], |
| 101 | |
| 102 | 'S_MODE_SELECT' => $select_sort_mode, |
| 103 | 'S_ORDER_SELECT' => $select_sort_order, |
| 104 | 'S_MODE_ACTION' => append_sid("memberlist.$phpEx")) |
| 105 | ); |
| 106 | |
| 107 | if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ) |
| 108 | {
|
| 109 | $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; |
| 110 | |
| 111 | switch( $mode ) |
| 112 | {
|
| 113 | case 'joined': |
| 114 | $order_by = "user_regdate ASC LIMIT $start, " . $board_config['topics_per_page']; |
| 115 | break;
|
| 116 | case 'username': |
| 117 | $order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page']; |
| 118 | break;
|
| 119 | case 'location': |
| 120 | $order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page']; |
| 121 | break;
|
| 122 | case 'posts': |
| 123 | $order_by = "user_posts $sort_order LIMIT $start, " . $board_config['topics_per_page']; |
| 124 | break;
|
| 125 | case 'email': |
| 126 | $order_by = "user_email $sort_order LIMIT $start, " . $board_config['topics_per_page']; |
| 127 | break;
|
| 128 | case 'website': |
| 129 | $order_by = "user_website $sort_order LIMIT $start, " . $board_config['topics_per_page']; |
| 130 | break;
|
| 131 | case 'topten': |
| 132 | $order_by = "user_posts DESC LIMIT 10"; |
| 133 | break;
|
| 134 | default:
|
| 135 | $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; |
| 136 | break;
|
| 137 | } |
| 138 | } |
| 139 | else
|
| 140 | {
|
| 141 | $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; |
| 142 | } |
| 143 | |
| 144 | $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar |
| 145 | FROM " . USERS_TABLE . " |
| 146 | WHERE user_id <> " . ANONYMOUS . " |
| 147 | ORDER BY $order_by"; |
| 148 | if( !($result = $db->sql_query($sql)) ) |
| 149 | {
|
| 150 | message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql); |
| 151 | } |
| 152 | |
| 153 | if ( $row = $db->sql_fetchrow($result) ) |
| 154 | {
|
| 155 | $i = 0; |
| 156 | do
|
| 157 | {
|
| 158 | $username = $row['username']; |
| 159 | $user_id = $row['user_id']; |
| 160 | |
| 161 | $from = ( !empty($row['user_from']) ) ? $row['user_from'] : ' '; |
| 162 | $joined = create_date($lang['DATE_FORMAT'], $row['user_regdate'], $board_config['board_timezone']); |
| 163 | $posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0; |
| 164 | |
| 165 | $poster_avatar = ''; |
| 166 | if ( $row['user_avatar_type'] && $user_id != ANONYMOUS && $row['user_allowavatar'] ) |
| 167 | {
|
| 168 | switch( $row['user_avatar_type'] ) |
| 169 | {
|
| 170 | case USER_AVATAR_UPLOAD: |
| 171 | $poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : ''; |
| 172 | break;
|
| 173 | case USER_AVATAR_REMOTE: |
| 174 | $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $row['user_avatar'] . '" alt="" border="0" />' : ''; |
| 175 | break;
|
| 176 | case USER_AVATAR_GALLERY: |
| 177 | $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : ''; |
| 178 | break;
|
| 179 | } |
| 180 | } |
| 181 | |
| 182 | if ( !empty($row['user_viewemail']) || $userdata['user_level'] == ADMIN ) |
| 183 | {
|
| 184 | $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $user_id) : 'mailto:' . $row['user_email']; |
| 185 | |
| 186 | $email_img = '<a href="' . $email_uri . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>'; |
| 187 | $email = '<a href="' . $email_uri . '">' . $lang['Send_email'] . '</a>'; |
| 188 | } |
| 189 | else
|
| 190 | {
|
| 191 | $email_img = ' '; |
| 192 | $email = ' '; |
| 193 | } |
| 194 | |
| 195 | $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"); |
| 196 | $profile_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_profile'] . '" alt="' . $lang['Read_profile'] . '" title="' . $lang['Read_profile'] . '" border="0" /></a>'; |
| 197 | $profile = '<a href="' . $temp_url . '">' . $lang['Read_profile'] . '</a>'; |
| 198 | |
| 199 | $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$user_id"); |
| 200 | $pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>'; |
| 201 | $pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>'; |
| 202 | |
| 203 | $www_img = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : ''; |
| 204 | $www = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : ''; |
| 205 | |
| 206 | if ( !empty($row['user_icq']) ) |
| 207 | {
|
| 208 | $icq_status_img = '<a href="http://wwp.icq.com/' . $row['user_icq'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $row['user_icq'] . '&img=5" width="18" height="18" border="0" /></a>'; |
| 209 | $icq_img = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>'; |
| 210 | $icq = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '">' . $lang['ICQ'] . '</a>'; |
| 211 | } |
| 212 | else
|
| 213 | {
|
| 214 | $icq_status_img = ''; |
| 215 | $icq_img = ''; |
| 216 | $icq = ''; |
| 217 | } |
| 218 | |
| 219 | $aim_img = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a>' : ''; |
| 220 | $aim = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&message=Hello+Are+you+there?">' . $lang['AIM'] . '</a>' : ''; |
| 221 | |
| 222 | $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"); |
| 223 | $msn_img = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['MSNM'] . '" title="' . $lang['MSNM'] . '" border="0" /></a>' : ''; |
| 224 | $msn = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '">' . $lang['MSNM'] . '</a>' : ''; |
| 225 | |
| 226 | $yim_img = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a>' : ''; |
| 227 | $yim = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&.src=pg">' . $lang['YIM'] . '</a>' : ''; |
| 228 | |
| 229 | $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts"); |
| 230 | $search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>'; |
| 231 | $search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>'; |
| 232 | |
| 233 | $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; |
| 234 | $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; |
| 235 | |
| 236 | $template->assign_block_vars('memberrow', array( |
| 237 | 'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ), |
| 238 | 'ROW_COLOR' => '#' . $row_color, |
| 239 | 'ROW_CLASS' => $row_class, |
| 240 | 'USERNAME' => $username, |
| 241 | 'FROM' => $from, |
| 242 | 'JOINED' => $joined, |
| 243 | 'POSTS' => $posts, |
| 244 | 'AVATAR_IMG' => $poster_avatar, |
| 245 | 'PROFILE_IMG' => $profile_img, |
| 246 | 'PROFILE' => $profile, |
| 247 | 'SEARCH_IMG' => $search_img, |
| 248 | 'SEARCH' => $search, |
| 249 | 'PM_IMG' => $pm_img, |
| 250 | 'PM' => $pm, |
| 251 | 'EMAIL_IMG' => $email_img, |
| 252 | 'EMAIL' => $email, |
| 253 | 'WWW_IMG' => $www_img, |
| 254 | 'WWW' => $www, |
| 255 | 'ICQ_STATUS_IMG' => $icq_status_img, |
| 256 | 'ICQ_IMG' => $icq_img, |
| 257 | 'ICQ' => $icq, |
| 258 | 'AIM_IMG' => $aim_img, |
| 259 | 'AIM' => $aim, |
| 260 | 'MSN_IMG' => $msn_img, |
| 261 | 'MSN' => $msn, |
| 262 | 'YIM_IMG' => $yim_img, |
| 263 | 'YIM' => $yim, |
| 264 | |
| 265 | 'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id")) |
| 266 | ); |
| 267 | |
| 268 | $i++;
|
| 269 | } |
| 270 | while ( $row = $db->sql_fetchrow($result) ); |
| 271 | } |
| 272 | |
| 273 | if ( $mode != 'topten' || $board_config['topics_per_page'] < 10 ) |
| 274 | {
|
| 275 | $sql = "SELECT count(*) AS total |
| 276 | FROM " . USERS_TABLE . " |
| 277 | WHERE user_id <> " . ANONYMOUS; |
| 278 | |
| 279 | if ( !($result = $db->sql_query($sql)) ) |
| 280 | {
|
| 281 | message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__, $sql); |
| 282 | } |
| 283 | |
| 284 | if ( $total = $db->sql_fetchrow($result) ) |
| 285 | {
|
| 286 | $total_members = $total['total']; |
| 287 | |
| 288 | $pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order", $total_members, $board_config['topics_per_page'], $start). ' '; |
| 289 | } |
| 290 | } |
| 291 | else
|
| 292 | {
|
| 293 | $pagination = ' '; |
| 294 | $total_members = 10; |
| 295 | } |
| 296 | |
| 297 | $template->assign_vars(array( |
| 298 | 'PAGINATION' => $pagination, |
| 299 | 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $total_members / $board_config['topics_per_page'] )), |
| 300 | |
| 301 | 'L_GOTO_PAGE' => $lang['Goto_page']) |
| 302 | ); |
| 303 | |
| 304 | $template->pparse('body'); |
| 305 | |
| 306 | include($phpbb_root_path . 'includes/page_tail.'.$phpEx); |
| 307 | |
| 308 | ?> |

