From c40eb58b6a8f15e28f4d5150ddb446c64c7ab49f Mon Sep 17 00:00:00 2001 From: "GTDarkNightmare@gmail.com" Date: Sat, 27 Aug 2011 17:25:55 +0000 Subject: [PATCH] r258 git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@258 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293 --- upload/admin/index.php | 729 +++++++++++++++++++++-------------------- 1 file changed, 366 insertions(+), 363 deletions(-) diff --git a/upload/admin/index.php b/upload/admin/index.php index 930f97f0c..175df914d 100644 --- a/upload/admin/index.php +++ b/upload/admin/index.php @@ -1,363 +1,366 @@ -assign_vars(array( - 'TPL_ADMIN_NAVIGATE' => true, - "U_FORUM_INDEX" => append_sid("../index.php"), - "U_ADMIN_INDEX" => append_sid("index.php?pane=right")) - ); - - ksort($module); - - while( list($cat, $action_array) = each($module) ) - { - $cat = ( !empty($lang[strtoupper($cat)]) ) ? $lang[strtoupper($cat)] : preg_replace("/_/", " ", $cat); - - $template->assign_block_vars("catrow", array( - "ADMIN_CATEGORY" => $cat) - ); - - ksort($action_array); - - $row_count = 0; - while( list($action, $file) = each($action_array) ) - { - $row_class = !($row_count % 2) ? 'row1' : 'row2'; - - $action = ( !empty($lang[strtoupper($action)]) ) ? $lang[strtoupper($action)] : preg_replace("/_/", " ", $action); - - $template->assign_block_vars("catrow.modulerow", array( - "ROW_CLASS" => $row_class, - "ADMIN_MODULE" => $action, - "U_ADMIN_MODULE" => append_sid($file)) - ); - $row_count++; - } - } -} -else if( isset($_GET['pane']) && $_GET['pane'] == 'right' ) -{ - $template->assign_vars(array( - 'TPL_ADMIN_MAIN' => true, - )); - - // - // Get forum statistics - // - $total_posts = get_db_stat('postcount'); - $total_users = get_db_stat('usercount'); - $total_topics = get_db_stat('topiccount'); - - $start_date = bb_date($bb_cfg['board_startdate']); - - $boarddays = ( TIMENOW - $bb_cfg['board_startdate'] ) / 86400; - - $posts_per_day = sprintf("%.2f", $total_posts / $boarddays); - $topics_per_day = sprintf("%.2f", $total_topics / $boarddays); - $users_per_day = sprintf("%.2f", $total_users / $boarddays); - - $avatar_dir_size = 0; - - if ($avatar_dir = @opendir(BB_ROOT . $bb_cfg['avatar_path'])) - { - while( $file = @readdir($avatar_dir) ) - { - if( $file != "." && $file != ".." ) - { - $avatar_dir_size += @filesize(BB_ROOT . $bb_cfg['avatar_path'] . "/" . $file); - } - } - @closedir($avatar_dir); - - - if($avatar_dir_size >= 1048576) - { - $avatar_dir_size = round($avatar_dir_size / 1048576 * 100) / 100 . " MB"; - } - else if($avatar_dir_size >= 1024) - { - $avatar_dir_size = round($avatar_dir_size / 1024 * 100) / 100 . " KB"; - } - else - { - $avatar_dir_size = $avatar_dir_size . " Bytes"; - } - - } - else - { - // Couldn't open Avatar dir. - $avatar_dir_size = $lang['NOT_AVAILABLE']; - } - - if(intval($posts_per_day) > $total_posts) - { - $posts_per_day = $total_posts; - } - - if(intval($topics_per_day) > $total_topics) - { - $topics_per_day = $total_topics; - } - - if($users_per_day > $total_users) - { - $users_per_day = $total_users; - } - - // - // DB size ... MySQL only - // - // This code is heavily influenced by a similar routine - // in phpMyAdmin 2.2.0 - // - - $sql = "SELECT VERSION() AS mysql_version"; - if($result = DB()->sql_query($sql)) - { - $row = DB()->sql_fetchrow($result); - $version = $row['mysql_version']; - - if( preg_match("/^(3\.23|4\.|5\.)/", $version) ) - { - $dblist = array(); - foreach($bb_cfg['db'] as $name => $row) - { $sql = "SHOW TABLE STATUS - FROM {$row[1]}"; - if($result = DB()->sql_query($sql)) - { - $tabledata_ary = DB()->sql_fetchrowset($result); - - $dbsize = 0; - for($i = 0; $i < count($tabledata_ary); $i++) - { - if( @$tabledata_ary[$i]['Type'] != "MRG_MyISAM" ) - { - $dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length']; - } - } - $dblist[] = ''. humn_size($dbsize) .''; - } } - $dbsize = implode(' | ', $dblist); - } - else - { - $dbsize = $lang['Not_available']; - } - } - else - { - $dbsize = $lang['Not_available']; - } - - $template->assign_vars(array( - "NUMBER_OF_POSTS" => $total_posts, - "NUMBER_OF_TOPICS" => $total_topics, - "NUMBER_OF_USERS" => $total_users, - "START_DATE" => $start_date, - "POSTS_PER_DAY" => $posts_per_day, - "TOPICS_PER_DAY" => $topics_per_day, - "USERS_PER_DAY" => $users_per_day, - "AVATAR_DIR_SIZE" => $avatar_dir_size, - "DB_SIZE" => $dbsize, - "GZIP_COMPRESSION" => ( $bb_cfg['gzip_compress'] ) ? $lang['ON'] : $lang['OFF']) - ); - // - // End forum statistics - // - if (@$_GET['users_online']) - { - $template->assign_vars(array( - 'SHOW_USERS_ONLINE' => true, - )); - // - // Get users online information. - // - $sql = "SELECT u.user_id, u.username, u.user_rank, s.session_time AS user_session_time, u.user_opt, s.session_logged_in, s.session_ip, s.session_start - FROM " . BB_USERS . " u, " . BB_SESSIONS . " s - WHERE s.session_logged_in = 1 - AND u.user_id = s.session_user_id - AND u.user_id <> " . ANONYMOUS . " - AND s.session_time >= " . ( TIMENOW - 300 ) . " - ORDER BY s.session_ip ASC, s.session_time DESC"; - if(!$result = DB()->sql_query($sql)) - { - message_die(GENERAL_ERROR, "Couldn't obtain regd user/online information.", "", __LINE__, __FILE__, $sql); - } - $onlinerow_reg = DB()->sql_fetchrowset($result); - - $sql = "SELECT session_logged_in, session_time, session_ip, session_start - FROM " . BB_SESSIONS . " - WHERE session_logged_in = 0 - AND session_time >= " . ( TIMENOW - 300 ) . " - ORDER BY session_ip ASC, session_time DESC"; - if(!$result = DB()->sql_query($sql)) - { - message_die(GENERAL_ERROR, "Couldn't obtain guest user/online information.", "", __LINE__, __FILE__, $sql); - } - $onlinerow_guest = DB()->sql_fetchrowset($result); - - $reg_userid_ary = array(); - - if( count($onlinerow_reg) ) - { - $registered_users = 0; - - for($i=0, $cnt=count($onlinerow_reg); $i < $cnt; $i++) - { - if( !inarray($onlinerow_reg[$i]['user_id'], $reg_userid_ary) ) - { - $reg_userid_ary[] = $onlinerow_reg[$i]['user_id']; - - $username = $onlinerow_reg[$i]['username']; - - if( !bf($onlinerow_reg[$i]['user_opt'], 'user_opt', 'allow_viewonline')) - { - $registered_users++; - $hidden = FALSE; - } - else - { - @$hidden_users++; - $hidden = TRUE; - } - - $row_class = 'row1'; - - $reg_ip = decode_ip($onlinerow_reg[$i]['session_ip']); - - $template->assign_block_vars("reg_user_row", array( - "ROW_CLASS" => $row_class, - "USER" => profile_url($onlinerow_reg[$i]), - "STARTED" => bb_date($onlinerow_reg[$i]['session_start'], 'H:i', 'false'), - "LASTUPDATE" => bb_date($onlinerow_reg[$i]['user_session_time'], 'H:i', 'false'), - "IP_ADDRESS" => $reg_ip, - - "U_WHOIS_IP" => "http://ip-whois.net/ip_geo.php?ip=$reg_ip", - )); - } - } - - } - else - { - $template->assign_vars(array( - "L_NO_REGISTERED_USERS_BROWSING" => $lang['NO_USERS_BROWSING']) - ); - } - - // - // Guest users - // - if( count($onlinerow_guest) ) - { - $guest_users = 0; - - for($i = 0; $i < count($onlinerow_guest); $i++) - { - $guest_userip_ary[] = $onlinerow_guest[$i]['session_ip']; - $guest_users++; - - $row_class = 'row2'; - - $guest_ip = decode_ip($onlinerow_guest[$i]['session_ip']); - - $template->assign_block_vars("guest_user_row", array( - "ROW_CLASS" => $row_class, - "USERNAME" => $lang['GUEST'], - "STARTED" => bb_date($onlinerow_guest[$i]['session_start'], 'H:i', 'false'), - "LASTUPDATE" => bb_date($onlinerow_guest[$i]['session_time'], 'H:i' , 'false'), - "IP_ADDRESS" => $guest_ip, - "U_WHOIS_IP" => "http://ip-whois.net/ip_geo.php?ip=$guest_ip", - )); - } - } - } - else - { - $template->assign_vars(array( - 'USERS_ONLINE_HREF' => "index.php?pane=right&users_online=1&sid={$userdata['session_id']}", - )); - } - - $template->assign_vars(array( - 'U_CLEAR_DATASTORE' => "index.php?clear_datastore=1", - 'U_CLEAR_TPL_CACHE' => "xs_cache.php?clear=", - 'U_UPDATE_USER_LEVEL' => "index.php?update_user_level=1", - 'U_SYNC_TOPICS' => "index.php?sync_topics=1", - 'U_SYNC_USER_POSTS' => "index.php?sync_user_posts=1", - )); -} -else if (isset($_REQUEST['clear_datastore'])) -{ - $datastore->clean(); - bb_die($lang['DATASTORE_CLEARED']); -} -else if (isset($_REQUEST['update_user_level'])) -{ - require(INC_DIR .'functions_group.php'); - update_user_level('all'); - bb_die($lang['USER_LEVELS_UPDATED']); -} -else if (isset($_REQUEST['sync_topics'])) -{ - sync('topic', 'all'); - sync('forum', 'all'); - bb_die($lang['TOPICS_DATA_SYNCHRONIZED']); -} -else if (isset($_REQUEST['sync_user_posts'])) -{ - sync('user_posts', 'all'); - bb_die($lang['USER POSTS COUNT SYNCHRONIZED']); -} -else -{ - // - // Generate frameset - // - $template->assign_vars(array( - 'TPL_ADMIN_FRAMESET' => true, - 'S_FRAME_NAV' => "index.php?pane=left", - 'S_FRAME_MAIN' => "index.php?pane=right", - )); - send_no_cache_headers(); - print_page('index.tpl', 'admin', 'no_header'); -} - -print_page('index.tpl', 'admin'); - -// -// Functions -// -function inarray($needle, $haystack) -{ - for($i = 0; $i < sizeof($haystack); $i++ ) - { - if( $haystack[$i] == $needle ) - { - return true; - } - } - return false; -} +assign_vars(array( + 'TPL_ADMIN_NAVIGATE' => true, + "U_FORUM_INDEX" => append_sid("../index.php"), + "U_ADMIN_INDEX" => append_sid("index.php?pane=right")) + ); + + ksort($module); + + while( list($cat, $action_array) = each($module) ) + { + $cat = ( !empty($lang[strtoupper($cat)]) ) ? $lang[strtoupper($cat)] : preg_replace("/_/", " ", $cat); + + $template->assign_block_vars("catrow", array( + "ADMIN_CATEGORY" => $cat) + ); + + ksort($action_array); + + $row_count = 0; + while( list($action, $file) = each($action_array) ) + { + $row_class = !($row_count % 2) ? 'row1' : 'row2'; + + $action = ( !empty($lang[strtoupper($action)]) ) ? $lang[strtoupper($action)] : preg_replace("/_/", " ", $action); + + $template->assign_block_vars("catrow.modulerow", array( + "ROW_CLASS" => $row_class, + "ADMIN_MODULE" => $action, + "U_ADMIN_MODULE" => append_sid($file)) + ); + $row_count++; + } + } +} +else if( isset($_GET['pane']) && $_GET['pane'] == 'right' ) +{ + $template->assign_vars(array( + 'TPL_ADMIN_MAIN' => true, + )); + + // + // Get forum statistics + // + $total_posts = get_db_stat('postcount'); + $total_users = get_db_stat('usercount'); + $total_topics = get_db_stat('topiccount'); + + $start_date = bb_date($bb_cfg['board_startdate']); + + $boarddays = ( TIMENOW - $bb_cfg['board_startdate'] ) / 86400; + + $posts_per_day = sprintf("%.2f", $total_posts / $boarddays); + $topics_per_day = sprintf("%.2f", $total_topics / $boarddays); + $users_per_day = sprintf("%.2f", $total_users / $boarddays); + + $avatar_dir_size = 0; + + if ($avatar_dir = @opendir(BB_ROOT . $bb_cfg['avatar_path'])) + { + while( $file = @readdir($avatar_dir) ) + { + if( $file != "." && $file != ".." ) + { + $avatar_dir_size += @filesize(BB_ROOT . $bb_cfg['avatar_path'] . "/" . $file); + } + } + @closedir($avatar_dir); + + + if($avatar_dir_size >= 1048576) + { + $avatar_dir_size = round($avatar_dir_size / 1048576 * 100) / 100 . " MB"; + } + else if($avatar_dir_size >= 1024) + { + $avatar_dir_size = round($avatar_dir_size / 1024 * 100) / 100 . " KB"; + } + else + { + $avatar_dir_size = $avatar_dir_size . " Bytes"; + } + + } + else + { + // Couldn't open Avatar dir. + $avatar_dir_size = $lang['NOT_AVAILABLE']; + } + + if(intval($posts_per_day) > $total_posts) + { + $posts_per_day = $total_posts; + } + + if(intval($topics_per_day) > $total_topics) + { + $topics_per_day = $total_topics; + } + + if($users_per_day > $total_users) + { + $users_per_day = $total_users; + } + + // + // DB size ... MySQL only + // + // This code is heavily influenced by a similar routine + // in phpMyAdmin 2.2.0 + // + + $sql = "SELECT VERSION() AS mysql_version"; + if($result = DB()->sql_query($sql)) + { + $row = DB()->sql_fetchrow($result); + $version = $row['mysql_version']; + + if( preg_match("/^(3\.23|4\.|5\.)/", $version) ) + { + $dblist = array(); + foreach($bb_cfg['db'] as $name => $row) + { + $sql = "SHOW TABLE STATUS + FROM {$row[1]}"; + if($result = DB()->sql_query($sql)) + { + $tabledata_ary = DB()->sql_fetchrowset($result); + + $dbsize = 0; + for($i = 0; $i < count($tabledata_ary); $i++) + { + if( @$tabledata_ary[$i]['Type'] != "MRG_MyISAM" ) + { + $dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length']; + } + } + $dblist[] = ''. humn_size($dbsize) .''; + } + } + $dbsize = implode(' | ', $dblist); + } + else + { + $dbsize = $lang['Not_available']; + } + } + else + { + $dbsize = $lang['Not_available']; + } + + $template->assign_vars(array( + "NUMBER_OF_POSTS" => $total_posts, + "NUMBER_OF_TOPICS" => $total_topics, + "NUMBER_OF_USERS" => $total_users, + "START_DATE" => $start_date, + "POSTS_PER_DAY" => $posts_per_day, + "TOPICS_PER_DAY" => $topics_per_day, + "USERS_PER_DAY" => $users_per_day, + "AVATAR_DIR_SIZE" => $avatar_dir_size, + "DB_SIZE" => $dbsize, + "GZIP_COMPRESSION" => ( $bb_cfg['gzip_compress'] ) ? $lang['ON'] : $lang['OFF']) + ); + // + // End forum statistics + // + if (@$_GET['users_online']) + { + $template->assign_vars(array( + 'SHOW_USERS_ONLINE' => true, + )); + // + // Get users online information. + // + $sql = "SELECT u.user_id, u.username, u.user_rank, s.session_time AS user_session_time, u.user_opt, s.session_logged_in, s.session_ip, s.session_start + FROM " . BB_USERS . " u, " . BB_SESSIONS . " s + WHERE s.session_logged_in = 1 + AND u.user_id = s.session_user_id + AND u.user_id <> " . ANONYMOUS . " + AND s.session_time >= " . ( TIMENOW - 300 ) . " + ORDER BY s.session_ip ASC, s.session_time DESC"; + if(!$result = DB()->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain regd user/online information.", "", __LINE__, __FILE__, $sql); + } + $onlinerow_reg = DB()->sql_fetchrowset($result); + + $sql = "SELECT session_logged_in, session_time, session_ip, session_start + FROM " . BB_SESSIONS . " + WHERE session_logged_in = 0 + AND session_time >= " . ( TIMENOW - 300 ) . " + ORDER BY session_ip ASC, session_time DESC"; + if(!$result = DB()->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain guest user/online information.", "", __LINE__, __FILE__, $sql); + } + $onlinerow_guest = DB()->sql_fetchrowset($result); + + $reg_userid_ary = array(); + + if( count($onlinerow_reg) ) + { + $registered_users = 0; + + for($i=0, $cnt=count($onlinerow_reg); $i < $cnt; $i++) + { + if( !inarray($onlinerow_reg[$i]['user_id'], $reg_userid_ary) ) + { + $reg_userid_ary[] = $onlinerow_reg[$i]['user_id']; + + $username = $onlinerow_reg[$i]['username']; + + if( !bf($onlinerow_reg[$i]['user_opt'], 'user_opt', 'allow_viewonline')) + { + $registered_users++; + $hidden = FALSE; + } + else + { + @$hidden_users++; + $hidden = TRUE; + } + + $row_class = 'row1'; + + $reg_ip = decode_ip($onlinerow_reg[$i]['session_ip']); + + $template->assign_block_vars("reg_user_row", array( + "ROW_CLASS" => $row_class, + "USER" => profile_url($onlinerow_reg[$i]), + "STARTED" => bb_date($onlinerow_reg[$i]['session_start'], 'H:i', 'false'), + "LASTUPDATE" => bb_date($onlinerow_reg[$i]['user_session_time'], 'H:i', 'false'), + "IP_ADDRESS" => $reg_ip, + + "U_WHOIS_IP" => "http://ip-whois.net/ip_geo.php?ip=$reg_ip", + )); + } + } + + } + else + { + $template->assign_vars(array( + "L_NO_REGISTERED_USERS_BROWSING" => $lang['NO_USERS_BROWSING']) + ); + } + + // + // Guest users + // + if( count($onlinerow_guest) ) + { + $guest_users = 0; + + for($i = 0; $i < count($onlinerow_guest); $i++) + { + $guest_userip_ary[] = $onlinerow_guest[$i]['session_ip']; + $guest_users++; + + $row_class = 'row2'; + + $guest_ip = decode_ip($onlinerow_guest[$i]['session_ip']); + + $template->assign_block_vars("guest_user_row", array( + "ROW_CLASS" => $row_class, + "USERNAME" => $lang['GUEST'], + "STARTED" => bb_date($onlinerow_guest[$i]['session_start'], 'H:i', 'false'), + "LASTUPDATE" => bb_date($onlinerow_guest[$i]['session_time'], 'H:i' , 'false'), + "IP_ADDRESS" => $guest_ip, + "U_WHOIS_IP" => "http://ip-whois.net/ip_geo.php?ip=$guest_ip", + )); + } + } + } + else + { + $template->assign_vars(array( + 'USERS_ONLINE_HREF' => "index.php?pane=right&users_online=1&sid={$userdata['session_id']}", + 'L_SHOW_USERS_ONLINE' => $lang['SHOW_ONLINE_USERLIST'], + )); + } + + $template->assign_vars(array( + 'U_CLEAR_DATASTORE' => "index.php?clear_datastore=1", + 'U_CLEAR_TPL_CACHE' => "xs_cache.php?clear=", + 'U_UPDATE_USER_LEVEL' => "index.php?update_user_level=1", + 'U_SYNC_TOPICS' => "index.php?sync_topics=1", + 'U_SYNC_USER_POSTS' => "index.php?sync_user_posts=1", + )); +} +else if (isset($_REQUEST['clear_datastore'])) +{ + $datastore->clean(); + bb_die($lang['DATASTORE_CLEARED']); +} +else if (isset($_REQUEST['update_user_level'])) +{ + require(INC_DIR .'functions_group.php'); + update_user_level('all'); + bb_die($lang['USER_LEVELS_UPDATED']); +} +else if (isset($_REQUEST['sync_topics'])) +{ + sync('topic', 'all'); + sync('forum', 'all'); + bb_die($lang['TOPICS_DATA_SYNCHRONIZED']); +} +else if (isset($_REQUEST['sync_user_posts'])) +{ + sync('user_posts', 'all'); + bb_die($lang['USER POSTS COUNT SYNCHRONIZED']); +} +else +{ + // + // Generate frameset + // + $template->assign_vars(array( + 'TPL_ADMIN_FRAMESET' => true, + 'S_FRAME_NAV' => "index.php?pane=left", + 'S_FRAME_MAIN' => "index.php?pane=right", + )); + send_no_cache_headers(); + print_page('index.tpl', 'admin', 'no_header'); +} + +print_page('index.tpl', 'admin'); + +// +// Functions +// +function inarray($needle, $haystack) +{ + for($i = 0; $i < sizeof($haystack); $i++ ) + { + if( $haystack[$i] == $needle ) + { + return true; + } + } + return false; +}