[1] | 1 | <?php |
---|
| 2 | |
---|
[3] | 3 | /** |
---|
| 4 | * Copyright (C) 2008-2011 FluxBB |
---|
| 5 | * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB |
---|
| 6 | * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
---|
| 7 | */ |
---|
[1] | 8 | |
---|
| 9 | // Tell header.php to use the admin template |
---|
| 10 | define('PUN_ADMIN_CONSOLE', 1); |
---|
| 11 | |
---|
[3] | 12 | define('PUN_ROOT', dirname(__FILE__).'/'); |
---|
[1] | 13 | require PUN_ROOT.'include/common.php'; |
---|
| 14 | require PUN_ROOT.'include/common_admin.php'; |
---|
| 15 | |
---|
| 16 | |
---|
[3] | 17 | if (!$pun_user['is_admmod']) |
---|
[1] | 18 | message($lang_common['No permission']); |
---|
| 19 | |
---|
[3] | 20 | // Load the admin_index.php language file |
---|
| 21 | require PUN_ROOT.'lang/'.$admin_language.'/admin_index.php'; |
---|
[1] | 22 | |
---|
| 23 | $action = isset($_GET['action']) ? $_GET['action'] : null; |
---|
| 24 | |
---|
| 25 | // Check for upgrade |
---|
| 26 | if ($action == 'check_upgrade') |
---|
| 27 | { |
---|
| 28 | if (!ini_get('allow_url_fopen')) |
---|
[3] | 29 | message($lang_admin_index['fopen disabled message']); |
---|
[1] | 30 | |
---|
[3] | 31 | $latest_version = trim(@file_get_contents('http://fluxbb.org/latest_version')); |
---|
| 32 | if (empty($latest_version)) |
---|
| 33 | message($lang_admin_index['Upgrade check failed message']); |
---|
[1] | 34 | |
---|
[3] | 35 | if (version_compare($pun_config['o_cur_version'], $latest_version, '>=')) |
---|
| 36 | message($lang_admin_index['Running latest version message']); |
---|
[1] | 37 | else |
---|
[3] | 38 | message(sprintf($lang_admin_index['New version available message'], '<a href="http://fluxbb.org/">FluxBB.org</a>')); |
---|
[1] | 39 | } |
---|
| 40 | |
---|
| 41 | |
---|
| 42 | // Show phpinfo() output |
---|
| 43 | else if ($action == 'phpinfo' && $pun_user['g_id'] == PUN_ADMIN) |
---|
| 44 | { |
---|
| 45 | // Is phpinfo() a disabled function? |
---|
[3] | 46 | if (strpos(strtolower((string) ini_get('disable_functions')), 'phpinfo') !== false) |
---|
| 47 | message($lang_admin_index['PHPinfo disabled message']); |
---|
[1] | 48 | |
---|
| 49 | phpinfo(); |
---|
| 50 | exit; |
---|
| 51 | } |
---|
| 52 | |
---|
| 53 | |
---|
| 54 | // Get the server load averages (if possible) |
---|
| 55 | if (@file_exists('/proc/loadavg') && is_readable('/proc/loadavg')) |
---|
| 56 | { |
---|
| 57 | // We use @ just in case |
---|
| 58 | $fh = @fopen('/proc/loadavg', 'r'); |
---|
| 59 | $load_averages = @fread($fh, 64); |
---|
| 60 | @fclose($fh); |
---|
| 61 | |
---|
[3] | 62 | if (($fh = @fopen('/proc/loadavg', 'r'))) |
---|
| 63 | { |
---|
| 64 | $load_averages = fread($fh, 64); |
---|
| 65 | fclose($fh); |
---|
| 66 | } |
---|
| 67 | else |
---|
| 68 | $load_averages = ''; |
---|
| 69 | |
---|
[1] | 70 | $load_averages = @explode(' ', $load_averages); |
---|
[3] | 71 | $server_load = isset($load_averages[2]) ? $load_averages[0].' '.$load_averages[1].' '.$load_averages[2] : $lang_admin_index['Not available']; |
---|
[1] | 72 | } |
---|
[3] | 73 | else if (!in_array(PHP_OS, array('WINNT', 'WIN32')) && preg_match('%averages?: ([0-9\.]+),?\s+([0-9\.]+),?\s+([0-9\.]+)%i', @exec('uptime'), $load_averages)) |
---|
[1] | 74 | $server_load = $load_averages[1].' '.$load_averages[2].' '.$load_averages[3]; |
---|
| 75 | else |
---|
[3] | 76 | $server_load = $lang_admin_index['Not available']; |
---|
[1] | 77 | |
---|
| 78 | |
---|
| 79 | // Get number of current visitors |
---|
[3] | 80 | $result = $db->query('SELECT COUNT(user_id) FROM '.$db->prefix.'online WHERE idle=0') or error('Unable to fetch online count', __FILE__, __LINE__, $db->error()); |
---|
[1] | 81 | $num_online = $db->result($result); |
---|
| 82 | |
---|
| 83 | |
---|
| 84 | // Collect some additional info about MySQL |
---|
[3] | 85 | if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb') |
---|
[1] | 86 | { |
---|
| 87 | // Calculate total db size/row count |
---|
[3] | 88 | $result = $db->query('SHOW TABLE STATUS LIKE \''.$db->prefix.'%\'') or error('Unable to fetch table status', __FILE__, __LINE__, $db->error()); |
---|
[1] | 89 | |
---|
| 90 | $total_records = $total_size = 0; |
---|
| 91 | while ($status = $db->fetch_assoc($result)) |
---|
| 92 | { |
---|
| 93 | $total_records += $status['Rows']; |
---|
| 94 | $total_size += $status['Data_length'] + $status['Index_length']; |
---|
| 95 | } |
---|
| 96 | |
---|
[3] | 97 | $total_size = file_size($total_size); |
---|
[1] | 98 | } |
---|
| 99 | |
---|
| 100 | |
---|
[3] | 101 | // Check for the existence of various PHP opcode caches/optimizers |
---|
[1] | 102 | if (function_exists('mmcache')) |
---|
[3] | 103 | $php_accelerator = '<a href="http://'.$lang_admin_index['Turck MMCache link'].'">'.$lang_admin_index['Turck MMCache'].'</a>'; |
---|
[1] | 104 | else if (isset($_PHPA)) |
---|
[3] | 105 | $php_accelerator = '<a href="http://'.$lang_admin_index['ionCube PHP Accelerator link'].'">'.$lang_admin_index['ionCube PHP Accelerator'].'</a>'; |
---|
| 106 | else if (ini_get('apc.enabled')) |
---|
| 107 | $php_accelerator ='<a href="http://'.$lang_admin_index['Alternative PHP Cache (APC) link'].'">'.$lang_admin_index['Alternative PHP Cache (APC)'].'</a>'; |
---|
| 108 | else if (ini_get('zend_optimizer.optimization_level')) |
---|
| 109 | $php_accelerator = '<a href="http://'.$lang_admin_index['Zend Optimizer link'].'">'.$lang_admin_index['Zend Optimizer'].'</a>'; |
---|
| 110 | else if (ini_get('eaccelerator.enable')) |
---|
| 111 | $php_accelerator = '<a href="http://'.$lang_admin_index['eAccelerator link'].'">'.$lang_admin_index['eAccelerator'].'</a>'; |
---|
| 112 | else if (ini_get('xcache.cacher')) |
---|
| 113 | $php_accelerator = '<a href="http://'.$lang_admin_index['XCache link'].'">'.$lang_admin_index['XCache'].'</a>'; |
---|
[1] | 114 | else |
---|
[3] | 115 | $php_accelerator = $lang_admin_index['NA']; |
---|
[1] | 116 | |
---|
| 117 | |
---|
[3] | 118 | $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Index']); |
---|
| 119 | define('PUN_ACTIVE_PAGE', 'admin'); |
---|
[1] | 120 | require PUN_ROOT.'header.php'; |
---|
| 121 | |
---|
| 122 | generate_admin_menu('index'); |
---|
| 123 | |
---|
| 124 | ?> |
---|
| 125 | <div class="block"> |
---|
[3] | 126 | <h2><span><?php echo $lang_admin_index['Forum admin head'] ?></span></h2> |
---|
[1] | 127 | <div id="adintro" class="box"> |
---|
| 128 | <div class="inbox"> |
---|
[3] | 129 | <p><?php echo $lang_admin_index['Welcome to admin'] ?></p> |
---|
| 130 | <ul> |
---|
| 131 | <li><span><?php echo $lang_admin_index['Welcome 1'] ?></span></li> |
---|
| 132 | <li><span><?php echo $lang_admin_index['Welcome 2'] ?></span></li> |
---|
| 133 | <li><span><?php echo $lang_admin_index['Welcome 3'] ?></span></li> |
---|
| 134 | <li><span><?php echo $lang_admin_index['Welcome 4'] ?></span></li> |
---|
| 135 | <li><span><?php echo $lang_admin_index['Welcome 5'] ?></span></li> |
---|
| 136 | <li><span><?php echo $lang_admin_index['Welcome 6'] ?></span></li> |
---|
| 137 | <li><span><?php echo $lang_admin_index['Welcome 7'] ?></span></li> |
---|
| 138 | <li><span><?php echo $lang_admin_index['Welcome 8'] ?></span></li> |
---|
| 139 | <li><span><?php echo $lang_admin_index['Welcome 9'] ?></span></li> |
---|
| 140 | </ul> |
---|
[1] | 141 | </div> |
---|
| 142 | </div> |
---|
| 143 | |
---|
[3] | 144 | <h2 class="block2"><span><?php echo $lang_admin_index['Statistics head'] ?></span></h2> |
---|
[1] | 145 | <div id="adstats" class="box"> |
---|
| 146 | <div class="inbox"> |
---|
| 147 | <dl> |
---|
[3] | 148 | <dt><?php echo $lang_admin_index['FluxBB version label'] ?></dt> |
---|
[1] | 149 | <dd> |
---|
[3] | 150 | <?php printf($lang_admin_index['FluxBB version data']."\n", $pun_config['o_cur_version'], '<a href="admin_index.php?action=check_upgrade">'.$lang_admin_index['Check for upgrade'].'</a>') ?> |
---|
[1] | 151 | </dd> |
---|
[3] | 152 | <dt><?php echo $lang_admin_index['Server load label'] ?></dt> |
---|
[1] | 153 | <dd> |
---|
[3] | 154 | <?php printf($lang_admin_index['Server load data']."\n", $server_load, $num_online) ?> |
---|
[1] | 155 | </dd> |
---|
[3] | 156 | <?php if ($pun_user['g_id'] == PUN_ADMIN): ?> <dt><?php echo $lang_admin_index['Environment label'] ?></dt> |
---|
[1] | 157 | <dd> |
---|
[3] | 158 | <?php printf($lang_admin_index['Environment data OS'], PHP_OS) ?><br /> |
---|
| 159 | <?php printf($lang_admin_index['Environment data version'], phpversion(), '<a href="admin_index.php?action=phpinfo">'.$lang_admin_index['Show info'].'</a>') ?><br /> |
---|
| 160 | <?php printf($lang_admin_index['Environment data acc']."\n", $php_accelerator) ?> |
---|
[1] | 161 | </dd> |
---|
[3] | 162 | <dt><?php echo $lang_admin_index['Database label'] ?></dt> |
---|
[1] | 163 | <dd> |
---|
[3] | 164 | <?php echo implode(' ', $db->get_version())."\n" ?> |
---|
| 165 | <?php if (isset($total_records) && isset($total_size)): ?> <br /><?php printf($lang_admin_index['Database data rows']."\n", forum_number_format($total_records)) ?> |
---|
| 166 | <br /><?php printf($lang_admin_index['Database data size']."\n", $total_size) ?> |
---|
| 167 | <?php endif; ?> </dd> |
---|
| 168 | <?php endif; ?> |
---|
[1] | 169 | </dl> |
---|
| 170 | </div> |
---|
| 171 | </div> |
---|
| 172 | </div> |
---|
| 173 | <div class="clearer"></div> |
---|
| 174 | </div> |
---|
| 175 | <?php |
---|
| 176 | |
---|
| 177 | require PUN_ROOT.'footer.php'; |
---|