| [ Index ] |
PHP Cross Reference of MyBB 1.4.13 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * MyBB 1.4 4 * Copyright © 2008 MyBB Group, All Rights Reserved 5 * 6 * Website: http://www.mybboard.net 7 * License: http://www.mybboard.net/about/license 8 * 9 * $Id: memberlist.php 4314 2009-01-31 00:43:26Z Tikitiki $ 10 */ 11 12 define("IN_MYBB", 1); 13 define('THIS_SCRIPT', 'memberlist.php'); 14 15 $templatelist = "memberlist,memberlist_member,memberlist_search,memberlist_user,memberlist_user_groupimage,memberlist_user_avatar"; 16 $templatelist .= ",postbit_www,postbit_email,multipage_nextpage,multipage_page_current,multipage_page,multipage_start,multipage_end,multipage"; 17 require_once "./global.php"; 18 19 // Load global language phrases 20 $lang->load("memberlist"); 21 22 if($mybb->settings['enablememberlist'] == 0) 23 { 24 error($lang->memberlist_disabled); 25 } 26 27 $plugins->run_hooks("memberlist_start"); 28 29 add_breadcrumb($lang->nav_memberlist); 30 31 if($mybb->usergroup['canviewmemberlist'] == 0) 32 { 33 error_no_permission(); 34 } 35 36 // Showing advanced search page? 37 if($mybb->input['action'] == "search") 38 { 39 eval("\$search_page = \"".$templates->get("memberlist_search")."\";"); 40 $plugins->run_hooks("memberlist_search"); 41 output_page($search_page); 42 } 43 else 44 { 45 $search_url = ''; 46 47 // Incoming sort field? 48 if($mybb->input['sort']) 49 { 50 $mybb->input['sort'] = strtolower($mybb->input['sort']); 51 } 52 else 53 { 54 $mybb->input['sort'] = $mybb->settings['default_memberlist_sortby']; 55 } 56 57 switch($mybb->input['sort']) 58 { 59 case "regdate": 60 $sort_field = "u.regdate"; 61 break; 62 case "lastvisit": 63 $sort_field = "u.lastactive"; 64 break; 65 case "reputation": 66 $sort_field = "u.reputation"; 67 break; 68 case "postnum": 69 $sort_field = "u.postnum"; 70 break; 71 default: 72 $sort_field = "u.username"; 73 $mybb->input['sort'] = 'username'; 74 break; 75 } 76 $sort_selected[$mybb->input['sort']] = " selected=\"selected\""; 77 78 // Incoming sort order? 79 if($mybb->input['order']) 80 { 81 $mybb->input['order'] = strtolower($mybb->input['order']); 82 } 83 else 84 { 85 $mybb->input['order'] = strtolower($mybb->settings['default_memberlist_order']); 86 } 87 88 if($mybb->input['order'] == "asc" || (!$mybb->input['order'] && $mybb->input['sort'] == 'username')) 89 { 90 $sort_order = "ASC"; 91 $mybb->input['order'] = "asc"; 92 } 93 else 94 { 95 $sort_order = "DESC"; 96 $mybb->input['order'] = "desc"; 97 } 98 $order_check[$mybb->input['order']] = " checked=\"checked\""; 99 100 // Incoming results per page? 101 $mybb->input['perpage'] = intval($mybb->input['perpage']); 102 if($mybb->input['perpage'] > 0 && $mybb->input['perpage'] <= 500) 103 { 104 $per_page = $mybb->input['perpage']; 105 } 106 else 107 { 108 $per_page = $mybb->input['perpage'] = intval($mybb->settings['membersperpage']); 109 } 110 111 $search_query = '1=1'; 112 $search_url = "memberlist.php?sort={$mybb->input['sort']}&order={$mybb->input['order']}&perpage={$mybb->input['perpage']}"; 113 114 // Limiting results to a certain letter 115 if($mybb->input['letter']) 116 { 117 $letter = chr(ord($mybb->input['letter'])); 118 if($mybb->input['letter'] == -1) 119 { 120 $search_query .= " AND u.username NOT REGEXP('[a-zA-Z]')"; 121 } 122 else if(strlen($letter) == 1) 123 { 124 $search_query .= " AND u.username LIKE '".$db->escape_string($letter)."%'"; 125 } 126 $search_url .= "&letter={$letter}"; 127 } 128 129 // Searching for a matching username 130 $search_username = htmlspecialchars_uni($mybb->input['username']); 131 if(trim($mybb->input['username'])) 132 { 133 $username_like_query = $db->escape_string_like($mybb->input['username']); 134 // Name begins with 135 if($mybb->input['username_match'] == "begins") 136 { 137 $search_query .= " AND u.username LIKE '".$username_like_query."%'"; 138 $search_url .= "&username_match=begins"; 139 } 140 // Just contains 141 else 142 { 143 $search_query .= " AND u.username LIKE '%".$username_like_query."%'"; 144 } 145 $search_url .= "&username=".urlencode($mybb->input['username']); 146 } 147 148 // Website contains 149 $search_website = htmlspecialchars_uni($mybb->input['website']); 150 if(trim($mybb->input['website'])) 151 { 152 $search_query .= " AND u.website LIKE '%".$db->escape_string_like($mybb->input['website'])."%'"; 153 $search_url .= "&website=".urlencode($mybb->input['website']); 154 } 155 156 // AIM Identity 157 if(trim($mybb->input['aim'])) 158 { 159 $search_query .= " AND u.aim LIKE '%".$db->escape_string_like($mybb->input['aim'])."%'"; 160 $search_url .= "&aim=".urlencode($mybb->input['aim']); 161 } 162 163 // ICQ Number 164 if(trim($mybb->input['icq'])) 165 { 166 $search_query .= " AND u.icq LIKE '%".$db->escape_string_like($mybb->input['icq'])."%'"; 167 $search_url .= "&icq=".urlencode($mybb->input['icq']); 168 } 169 170 // MSN/Windows Live Messenger address 171 if(trim($mybb->input['msn'])) 172 { 173 $search_query .= " AND u.msn LIKE '%".$db->escape_string_like($mybb->input['msn'])."%'"; 174 $search_url .= "&msn=".urlencode($mybb->input['msn']); 175 } 176 177 // Yahoo! Messenger address 178 if(trim($mybb->input['yahoo'])) 179 { 180 $search_query .= " AND u.yahoo LIKE '%".$db->escape_string_like($mybb->input['yahoo'])."%'"; 181 $search_url .= "&yahoo=".urlencode($mybb->input['yahoo']); 182 } 183 184 $query = $db->simple_select("users u", "COUNT(*) AS users", "{$search_query}"); 185 $num_users = $db->fetch_field($query, "users"); 186 187 $page = intval($mybb->input['page']); 188 if($page && $page > 0) 189 { 190 $start = ($page - 1) * $per_page; 191 } 192 else 193 { 194 $start = 0; 195 $page = 1; 196 } 197 $search_url = htmlspecialchars_uni($search_url); 198 $multipage = multipage($num_users, $per_page, $page, $search_url); 199 200 // Cache a few things 201 $usergroups_cache = $cache->read('usergroups'); 202 $query = $db->simple_select("usertitles", "*", "", array('order_by' => 'posts', 'order_dir' => 'DESC')); 203 while($usertitle = $db->fetch_array($query)) 204 { 205 $usertitles_cache[$usertitle['posts']] = $usertitle; 206 } 207 $query = $db->query(" 208 SELECT u.*, f.* 209 FROM ".TABLE_PREFIX."users u 210 LEFT JOIN ".TABLE_PREFIX."userfields f ON (f.ufid=u.uid) 211 WHERE {$search_query} 212 ORDER BY {$sort_field} {$sort_order} 213 LIMIT {$start}, {$per_page} 214 "); 215 while($user = $db->fetch_array($query)) 216 { 217 $plugins->run_hooks("memberlist_user"); 218 219 $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']); 220 221 $user['profilelink'] = build_profile_link($user['username'], $user['uid']); 222 223 // Get the display usergroup 224 if(!$user['displaygroup']) 225 { 226 $user['displaygroup'] = $user['usergroup']; 227 } 228 $usergroup = $usergroups_cache[$user['displaygroup']]; 229 230 // Work out the usergroup/title stuff 231 if(!empty($usergroup['image'])) 232 { 233 if(!empty($mybb->user['language'])) 234 { 235 $language = $mybb->user['language']; 236 } 237 else 238 { 239 $language = $mybb->settings['bblanguage']; 240 } 241 $usergroup['image'] = str_replace("{lang}", $language, $usergroup['image']); 242 $usergroup['image'] = str_replace("{theme}", $theme['imgdir'], $usergroup['image']); 243 eval("\$usergroup['groupimage'] = \"".$templates->get("memberlist_user_groupimage")."\";"); 244 } 245 246 $has_custom_title = 0; 247 if(trim($user['usertitle']) != "") 248 { 249 $has_custom_title = 1; 250 } 251 252 if($usergroup['usertitle'] != "" && !$has_custom_title) 253 { 254 $user['usertitle'] = $usergroup['usertitle']; 255 } 256 elseif(is_array($usertitles_cache) && !$usergroup['usertitle']) 257 { 258 foreach($usertitles_cache as $posts => $titleinfo) 259 { 260 if($user['postnum'] >= $posts) 261 { 262 if(!$has_custom_title) 263 { 264 $user['usertitle'] = $titleinfo['title']; 265 } 266 $user['stars'] = $titleinfo['stars']; 267 $user['starimage'] = $titleinfo['starimage']; 268 break; 269 } 270 } 271 } 272 273 if($usergroup['stars']) 274 { 275 $user['stars'] = $usergroup['stars']; 276 } 277 278 if(!$user['starimage']) 279 { 280 $user['starimage'] = $usergroup['starimage']; 281 } 282 $user['starimage'] = str_replace("{theme}", $theme['imgdir'], $user['starimage']); 283 284 for($i = 0; $i < $user['stars']; ++$i) 285 { 286 $user['userstars'] .= "<img src=\"".$user['starimage']."\" border=\"0\" alt=\"*\" />"; 287 } 288 289 if($user['userstars'] && $usergroup['groupimage']) 290 { 291 $user['userstars'] = "<br />".$user['userstars']; 292 } 293 294 // Show avatar 295 if($user['avatar'] != '') 296 { 297 $user['avatar'] = htmlspecialchars_uni($user['avatar']); 298 $avatar_dimensions = explode("|", $user['avatardimensions']); 299 300 if($avatar_dimensions[0] && $avatar_dimensions[1]) 301 { 302 list($max_width, $max_height) = explode("x", my_strtolower($mybb->settings['memberlistmaxavatarsize'])); 303 if($avatar_dimensions[0] > $max_width || $avatar_dimensions[1] > $max_height) 304 { 305 require_once MYBB_ROOT."inc/functions_image.php"; 306 $scaled_dimensions = scale_image($avatar_dimensions[0], $avatar_dimensions[1], $max_width, $max_height); 307 $avatar_width_height = "width=\"{$scaled_dimensions['width']}\" height=\"{$scaled_dimensions['height']}\""; 308 } 309 else 310 { 311 $avatar_width_height = "width=\"{$avatar_dimensions[0]}\" height=\"{$avatar_dimensions[1]}\""; 312 } 313 } 314 315 eval("\$user['avatar'] = \"".$templates->get("memberlist_user_avatar")."\";"); 316 } 317 else 318 { 319 $user['avatar'] = ""; 320 } 321 322 $user['regdate'] = my_date($mybb->settings['dateformat'], $user['regdate']).", ".my_date($mybb->settings['timeformat'], $user['regdate']); 323 $user['lastvisit'] = my_date($mybb->settings['dateformat'], $user['lastactive']).", ".my_date($mybb->settings['timeformat'], $user['lastactive']); 324 $user['postnum'] = my_number_format($user['postnum']); 325 $alt_bg = alt_trow(); 326 eval("\$users .= \"".$templates->get("memberlist_user")."\";"); 327 } 328 329 // Do we have no results? 330 if(!$users) 331 { 332 $users = "<tr>\n<td colspan=\"6\" align=\"center\" class=\"trow1\">$lang->error_no_members</td>\n</tr>"; 333 } 334 335 $plugins->run_hooks("memberlist_end"); 336 337 eval("\$memberlist = \"".$templates->get("memberlist")."\";"); 338 output_page($memberlist); 339 } 340 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Apr 19 19:52:21 2010 | Cross-referenced by PHPXref 0.7 |