diff -r e3d7322305bf -r 5e1f1e916419 punbb/admin/index.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/punbb/admin/index.php Sat Apr 05 23:56:45 2008 -0400 @@ -0,0 +1,244 @@ + $_ ) +{ + $$key =& $GLOBALS[$key]; +} + +$db_name =& $dbname; + +($hook = get_hook('ain_start')) ? eval($hook) : null; + +if (!$pun_user['is_admmod']) + message($lang_common['No permission']); + +// Load the admin.php language file +require PUN_ROOT.'lang/'.$pun_user['language'].'/admin.php'; +$GLOBALS['lang_admin'] = $lang_admin; + +// Show phpinfo() output +if (isset($_GET['action']) && $_GET['action'] == 'phpinfo' && $pun_user['g_id'] == PUN_ADMIN) +{ + ($hook = get_hook('ain_phpinfo_selected')) ? eval($hook) : null; + + // Is phpinfo() a disabled function? + if (strpos(strtolower((string)@ini_get('disable_functions')), 'phpinfo') !== false) + message($lang_admin['phpinfo disabled']); + + phpinfo(); + exit; +} + + +// Generate check for updates text block +if ($pun_config['o_check_for_updates'] == '1') + $punbb_updates = $lang_admin['Check for updates enabled']; +else +{ + // Get a list of installed hotfix extensions + $query = array( + 'SELECT' => 'e.id', + 'FROM' => 'extensions AS e', + 'WHERE' => 'e.id LIKE \'hotfix_%\'' + ); + + ($hook = get_hook('ain_qr_get_hotfixes')) ? eval($hook) : null; + $result = $pun_db->query_build($query) or error(__FILE__, __LINE__); + $num_hotfixes = $pun_db->num_rows($result); + + $hotfixes = array(); + for ($i = 0; $i < $num_hotfixes; ++$i) + $hotfixes[] = urlencode($pun_db->result($result, $i)); + + $punbb_updates = ''.$lang_admin['Check for updates manual'].''; +} + + +// Get the server load averages (if possible) +if (function_exists('sys_getloadavg')) +{ + $load_averages = sys_getloadavg(); + array_walk($load_averages, create_function('&$v', '$v = round($v, 3);')); + $server_load = $load_averages[0].' '.$load_averages[1].' '.$load_averages[2]; +} +else if (@file_exists('/proc/loadavg') && is_readable('/proc/loadavg')) +{ + // We use @ just in case + $fh = @fopen('/proc/loadavg', 'r'); + $load_averages = @fread($fh, 64); + @fclose($fh); + + $load_averages = @explode(' ', $load_averages); + $server_load = isset($load_averages[2]) ? $load_averages[0].' '.$load_averages[1].' '.$load_averages[2] : 'Not available'; +} +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)) + $server_load = $load_averages[1].' '.$load_averages[2].' '.$load_averages[3]; +else + $server_load = $lang_admin['Not available']; + + +// Get number of current visitors +$query = array( + 'SELECT' => 'COUNT(o.user_id)', + 'FROM' => 'online AS o', + 'WHERE' => 'o.idle=0' +); + +($hook = get_hook('ain_qr_get_users_online')) ? eval($hook) : null; +$result = $pun_db->query_build($query) or error(__FILE__, __LINE__); +$num_online = $pun_db->result($result); + + +// Get the database system version +switch ($db_type) +{ + case 'sqlite': + $db_version = 'SQLite '.sqlite_libversion(); + break; + + default: + $result = $pun_db->query('SELECT VERSION()') or error(__FILE__, __LINE__); + $db_version = $pun_db->result($result); + break; +} + + +// Collect some additional info about MySQL +if ($db_type == 'mysql' || $db_type == 'mysqli') +{ + $db_version = 'MySQL '.$db_version; + + // Calculate total db size/row count + $result = $pun_db->query('SHOW TABLE STATUS FROM `'.$db_name.'` LIKE \''.$db_prefix.'%\'') or error(__FILE__, __LINE__); + + $total_records = $total_size = 0; + while ($status = $pun_db->fetch_assoc($result)) + { + $total_records += $status['Rows']; + $total_size += $status['Data_length'] + $status['Index_length']; + } + + $total_size = $total_size / 1024; + + if ($total_size > 1024) + $total_size = round($total_size / 1024, 2).' MB'; + else + $total_size = round($total_size, 2).' KB'; +} + + +// Check for the existance of various PHP opcode caches/optimizers +if (function_exists('mmcache')) + $php_accelerator = 'Turck MMCache'; +else if (isset($_PHPA)) + $php_accelerator = 'ionCube PHP Accelerator'; +else if (ini_get('apc.enabled')) + $php_accelerator ='Alternative PHP Cache (APC)'; +else if (ini_get('zend_optimizer.optimization_level')) + $php_accelerator = 'Zend Optimizer'; +else if (ini_get('eaccelerator.enable')) + $php_accelerator = 'eAccelerator'; +else if (ini_get('xcache.cacher')) + $php_accelerator = 'XCache'; +else + $php_accelerator = 'N/A'; + +$pun_page['item_num'] = 0; + +// Setup breadcrumbs +$pun_page['crumbs'] = array( + array($pun_config['o_board_title'], pun_link($pun_url['index'])), + array($lang_admin['Forum administration'], pun_link($pun_url['admin_index'])), + $lang_admin['Information'] +); + +($hook = get_hook('ain_pre_header_load')) ? eval($hook) : null; + +define('PUN_PAGE_SECTION', 'start'); +define('PUN_PAGE', 'admin-information'); +require PUN_ROOT.'header.php'; + +?> +