home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 April / PCWorld_2005-04_cd.bin / akce / web / phpbb2plus / phpBB2_plus_1.52.exe / phpBB2 / staff.php < prev    next >
PHP Script  |  2004-07-18  |  10KB  |  225 lines

  1. <?php 
  2. define('IN_PHPBB', true); 
  3. $phpbb_root_path = './';
  4. include($phpbb_root_path . 'extension.inc');
  5. include($phpbb_root_path . 'common.'.$phpEx);
  6. include_once($phpbb_root_path.'includes/functions_color_groups.'.$phpEx);
  7.  
  8. $userdata = session_pagestart($user_ip, PAGE_STAFF);
  9. init_userprefs($userdata); 
  10.  
  11. $page_title = $lang['Staff'];
  12. include('includes/page_header.'.$phpEx); 
  13.  
  14. $template->set_filenames(array(
  15.     'body' => 'staff_body.tpl',
  16. ));
  17.  
  18. $is_auth_ary = array();
  19. $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);
  20.  
  21. $sql_forums = "SELECT ug.user_id, f.forum_id, f.forum_name 
  22.         FROM ". AUTH_ACCESS_TABLE ." aa, ". USER_GROUP_TABLE ." ug, ". FORUMS_TABLE ." f 
  23.         WHERE aa.auth_mod = ". TRUE . " 
  24.             AND ug.group_id = aa.group_id 
  25.             AND f.forum_id = aa.forum_id";
  26. if( !$result_forums = $db->sql_query($sql_forums) ) 
  27.     message_die(GENERAL_ERROR, 'Could not query forums.', '', __LINE__, __FILE__, $sql_forums); 
  28. while( $row = $db->sql_fetchrow($result_forums) ) 
  29.     $display_forums = ( $is_auth_ary[$row['forum_id']]['auth_view'] ) ? true : false;
  30.     if( $display_forums )
  31.     {
  32.         $forum_id = $row['forum_id'];
  33.         $staff2[$row['user_id']][$row['forum_id']] = '<a href="'. append_sid("viewforum.$phpEx?f=$forum_id") .'" class="genmed">'. $row['forum_name'] .'</a><br />'; 
  34.     }
  35.  
  36. $sql_ranks = "SELECT * FROM ". RANKS_TABLE ." ORDER BY rank_special, rank_min";
  37. if( !($results_ranks = $db->sql_query($sql_ranks)) )
  38. {
  39.     message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql_ranks);
  40. }
  41. $ranksrow = array();
  42. while( $row = $db->sql_fetchrow($results_ranks) )
  43. {
  44.     $ranksrow[] = $row;
  45. }
  46. $db->sql_freeresult($result);
  47.  
  48. $level_cat = $lang['Staff_level'];
  49. for( $i = 0; $i < count($level_cat); $i++ )
  50. {
  51.     $user_level = $level_cat[$i];
  52.     $template->assign_block_vars('user_level', array(
  53.         'USER_LEVEL' => $user_level,
  54.     ));
  55.  
  56.     if( $level_cat['0'] )
  57.     {
  58.         $where = 'user_level = '. ADMIN;
  59.     }
  60.     else if( $level_cat['1'] )
  61.     {
  62.         $where = 'user_level = '. MOD;
  63.     }
  64.     $level_cat[$i] = '';
  65.  
  66.     $sql_user = "SELECT * FROM ". USERS_TABLE ." WHERE $where";
  67.     if( !($result_user = $db->sql_query($sql_user)) ) 
  68.     { 
  69.         message_die(GENERAL_ERROR, 'Could not obtain user information.', '', __LINE__, __FILE__, $sql_user); 
  70.     } 
  71.     if( $staff = $db->sql_fetchrow($result_user) )
  72.     {
  73.         $k = 0;
  74.         do
  75.         {
  76.             $row_class = ( !($k % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
  77.             $user_id = $staff['user_id'];
  78.  
  79.             $rank = '';
  80.             $rank_image = '';
  81.             if( $staff['user_rank'] )
  82.             {
  83.                 for( $j = 0; $j < count($ranksrow); $j++ )
  84.                 {
  85.                     if( $staff['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] )
  86.                     {
  87.                         $rank = $ranksrow[$j]['rank_title'];
  88.                         $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="'. $ranksrow[$j]['rank_image'] .'" alt="'. $rank .'" title="'. $rank .'" border="0" />' : '';
  89.                     }
  90.                 }
  91.             }
  92.             else
  93.             {
  94.                 for( $j = 0; $j < count($ranksrow); $j++ )
  95.                 {
  96.                     if( $staff['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] )
  97.                     {
  98.                         $rank = $ranksrow[$j]['rank_title'];
  99.                         $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="'. $ranksrow[$j]['rank_image'] .'" alt="'. $rank .'" title="'. $rank .'" border="0" />' : '';
  100.                     }
  101.                 }
  102.             }
  103.  
  104.             $avatar = '';
  105.             if( $staff['user_avatar'] )
  106.             {
  107.                 switch( $staff['user_avatar_type'] )
  108.                 {
  109.                     case USER_AVATAR_UPLOAD:
  110.                         $size = check_avatar_size($board_config['avatar_path'] . '/' . $staff['user_avatar'], $board_config['avatar_max_width']);
  111.                         $avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="'. $board_config['avatar_path'] .'/'. $staff['user_avatar'] .'" '.$size.' border="0" />' : '';
  112.                         break;
  113.                     case USER_AVATAR_REMOTE:
  114.                         $size = check_avatar_size($staff['user_avatar'], $board_config['avatar_max_width']);
  115.                         $avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="'. $staff['user_avatar'] .'" '.$size.' border="0" />' : '';
  116.                         break;
  117.                     case USER_AVATAR_GALLERY:
  118.                         $size = check_avatar_size($board_config['avatar_gallery_path'] . '/' . $staff['user_avatar'], $board_config['avatar_max_width']);
  119.                         $avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="'. $board_config['avatar_gallery_path'] .'/'. $staff['user_avatar'] .'" '.$size.' border="0" />' : '';
  120.                         break;
  121.                 }
  122.             }
  123.  
  124.             $forums = '';
  125.             if( !empty($staff2[$staff['user_id']]) ) 
  126.             {  
  127.                 asort($staff2[$staff['user_id']]);
  128.                 $forums = implode(' ',$staff2[$staff['user_id']]); 
  129.             }
  130.  
  131.             $sql_posts = "SELECT DISTINCT p.post_time, p.post_id, count(DISTINCT t.topic_id) AS user_topics
  132.                         FROM ". POSTS_TABLE ." p, ". TOPICS_TABLE ." t
  133.                         WHERE p.poster_id = '$user_id' AND t.topic_poster = '$user_id'
  134.                         GROUP BY p.post_time
  135.                         ORDER BY p.post_time DESC LIMIT 1";
  136.             if( !($results_posts = $db->sql_query($sql_posts)) ) 
  137.             { 
  138.                 message_die(GENERAL_ERROR, 'Error getting user last post.', '', __LINE__, __FILE__, $sql_posts); 
  139.             }
  140.             $row = $db->sql_fetchrow($results_posts); 
  141.             $last_post = ( isset($row['post_time']) ) ? '<a href="'. append_sid("viewtopic.$phpEx?". POST_POST_URL ."=$row[post_id]#$row[post_id]") .'" class="gensmall">'. create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']) .'</a>' : $lang['None']; 
  142.             $user_topics = $row['user_topics']; 
  143.  
  144.             $memberdays = max(1, round( ( time() - $staff['user_regdate'] ) / 86400 ));
  145.             $posts_per_day = $staff['user_posts'] / $memberdays;
  146.             $topics_per_day = $user_topics / $memberdays;
  147.             if( $staff['user_posts'] != '0' )
  148.             {
  149.                 $total_posts = get_db_stat('postcount');
  150.                 $total_topics = get_db_stat('topiccount');
  151.                 $post_percent = ( $total_posts ) ? min(100, ($staff['user_posts'] / $total_posts) * 100) : 0;
  152.                 $topic_percent = ( $total_topics ) ? min(100, ($user_topics / $total_topics) * 100) : 0;
  153.             }
  154.             else
  155.             {
  156.                 $post_percent = 0;
  157.                 $topic_percent = 0;
  158.             }
  159.  
  160.             $pmto = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$staff[user_id]");
  161.             $pm = '<a href="' . $pmto . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
  162.             $mailto = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $staff['user_id']) : 'mailto:' . $staff['user_email'];
  163.             $mail = ( $staff['user_email'] ) ? '<a href="' . $mailto . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>' : '';
  164.  
  165.             $msn = ( $staff['user_msnm'] ) ? '<a href="mailto: '.$staff['user_msnm'].'"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['MSNM'] . '" title="' . $lang['MSNM'] . '" border="0" /></a>' : '';
  166.             $yim = ( $staff['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $staff['user_yim'] . '&.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a>' : '';
  167.             $aim = ( $staff['user_aim'] ) ? '<a href="aim:goim?screenname=' . $staff['user_aim'] . '&message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a>' : '';
  168.             $icq = ( $staff['user_icq'] ) ? '<a href="http://wwp.icq.com/scripts/contact.dll?msgto=' . $staff['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>' : '';
  169.  
  170.             $www = ( $staff['user_website'] ) ? '<a href="' . $staff['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
  171.             if ( $staff['user_absence'] == TRUE )
  172.             {
  173.                 $absence_mode = create_absence_mode($staff['user_absence_mode'], $pm_img, $pm, $mail, $email, $staff[username]);
  174.             }
  175.             $template->assign_block_vars('user_level.staff', array(
  176.                 'ROW_CLASS' => $row_class,
  177.                 'USERNAME' => color_group_colorize_name($staff['user_id'],true),
  178.                 'U_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$staff[user_id]"),
  179.                 'RANK' => $rank,
  180.                 'RANK_IMAGE' => $rank_image,
  181.                 'AVATAR' => $avatar,
  182.                 'FORUMS' => $forums,
  183.                 'POSTS' => $staff['user_posts'],
  184.                 'POST_PERCENT' => sprintf($lang['User_post_pct_stats'], $post_percent), 
  185.                 'POSTS_PER_DAY' => sprintf($lang['User_post_day_stats'], $posts_per_day), 
  186.                 'TOPICS' => $user_topics,
  187.                 'TOPIC_PERCENT' => sprintf($lang['User_post_pct_stats'], $topic_percent), 
  188.                 'TOPICS_PER_DAY' => sprintf($lang['Staff_user_topic_day_stats'], $topics_per_day), 
  189.                 'LAST_POST' => $last_post, 
  190.                 'JOINED' => create_date($board_config['default_dateformat'], $staff['user_regdate'], $board_config['board_timezone']),
  191.                 'PERIOD' => sprintf($lang['Staff_period'], $memberdays),
  192.                 'PM' => $pm,
  193.                 'EMAIL' => $mail,
  194.                 'MSN' => $msn,
  195.                 'YIM' => $yim,
  196.                 'AIM' => $aim,
  197.                 'ICQ' => $icq,
  198.                 'WWW' => $www,
  199.             ));
  200.             $k++;
  201.         }
  202.         while( $staff = $db->sql_fetchrow($result_user) );
  203.     }
  204. }
  205.  
  206. $template->assign_vars(array( 
  207.     'L_USERNAME' => $lang['Username'], 
  208.     'L_FORUMS' => $lang['Staff_forums'], 
  209.     'L_STATS' => $lang['Staff_stats'], 
  210.     'L_POSTS' => $lang['Posts'], 
  211.     'L_TOPICS' => $lang['Topics'], 
  212.     'L_LAST_POST' => $lang['Last_Post'], 
  213.     'L_JOINED' => $lang['Joined'], 
  214.     'L_CONTACT' => $lang['Staff_contact'],
  215.     'L_MESSENGER' => $lang['Staff_messenger'],
  216.     'L_WWW' => $lang['Website'],
  217. ));
  218.  
  219. $template->pparse('body');
  220. include('includes/page_tail.'.$phpEx); 
  221. ?>