[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/ -> memberlist.php (source)

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


Generated: Mon Jan 14 19:21:40 2013 Cross-referenced by PHPXref 0.7.1