'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') && is_array(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'; ?>