aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/acp/acp_php_info.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/acp/acp_php_info.php')
-rw-r--r--phpBB/includes/acp/acp_php_info.php105
1 files changed, 105 insertions, 0 deletions
diff --git a/phpBB/includes/acp/acp_php_info.php b/phpBB/includes/acp/acp_php_info.php
new file mode 100644
index 0000000000..19e4d81348
--- /dev/null
+++ b/phpBB/includes/acp/acp_php_info.php
@@ -0,0 +1,105 @@
+<?php
+/**
+*
+* @package acp
+* @version $Id$
+* @copyright (c) 2005 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+/**
+* @package acp
+*/
+class acp_php_info
+{
+ function main($id, $mode)
+ {
+ global $db, $user, $auth, $template;
+ global $config, $SID, $phpbb_root_path, $phpbb_admin_path, $phpEx;
+
+ if ($mode != 'info')
+ {
+ trigger_error('NO_MODE');
+ }
+
+ $this->tpl_name = 'acp_php_info';
+
+ ob_start();
+ phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES | INFO_VARIABLES);
+ $phpinfo = ob_get_contents();
+ ob_end_clean();
+
+ // Get used layout
+ $layout = (preg_match('#bgcolor#i', $phpinfo)) ? 'old' : 'new';
+
+ // Here we play around a little with the PHP Info HTML to try and stylise
+ // it along phpBB's lines ... hopefully without breaking anything. The idea
+ // for this was nabbed from the PHP annotated manual
+ preg_match_all('#<body[^>]*>(.*)</body>#siU', $phpinfo, $output);
+
+ switch ($layout)
+ {
+ case 'old':
+ $output = preg_replace('#<table#', '<table', $output[1][0]);
+ $output = preg_replace('# bgcolor="\#(\w){6}"#', '', $output);
+ $output = preg_replace('#(\w),(\w)#', '\1, \2', $output);
+ $output = preg_replace('#border="0" cellpadding="3" cellspacing="1" width="600"#', 'border="0" cellspacing="1" cellpadding="4" width="95%"', $output);
+ $output = preg_replace('#<tr valign="top"><td align="left">(.*?<a .*?</a>)(.*?)</td></tr>#s', '<tr class="row1"><td style="{background-color: #9999cc;}"><table width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td style="{background-color: #9999cc;}">\2</td><td style="{background-color: #9999cc;}">\1</td></tr></table></td></tr>', $output);
+ $output = preg_replace('#<tr valign="baseline"><td[ ]{0,1}><b>(.*?)</b>#', '<tr><td class="row1" nowrap="nowrap">\1', $output);
+ $output = preg_replace('#<td align="(center|left)">#', '<td class="row2">', $output);
+ $output = preg_replace('#<td>#', '<td class="row2">', $output);
+ $output = preg_replace('#valign="middle"#', '', $output);
+ $output = preg_replace('#<tr >#', '<tr>', $output);
+ $output = preg_replace('#<hr(.*?)>#', '', $output);
+ $output = preg_replace('#<h1 align="center">#i', '<h1>', $output);
+ $output = preg_replace('#<h2 align="center">#i', '<h2>', $output);
+ break;
+
+ case 'new':
+ $output = preg_replace('#(\w),(\w)#', '\1, \2', $output[1][0]);
+ $output = preg_replace('#<tr class="v"><td>(.*?<a .*?</a>)(.*?)</td></tr>#s', '<tr class="row1"><td><table class="type2"><tr><td>\2</td><td>\1</td></tr></table></td></tr>', $output);
+ $output = preg_replace('#class="e"#', 'class="row1"', $output);
+ $output = preg_replace('#class="v"#', 'class="row2"', $output);
+ $output = preg_replace('#class="h"#', '', $output);
+ $output = preg_replace('#<hr />#', '', $output);
+ $output = preg_replace('#<table [^<]+>#i', '<table>', $output);
+ $output = preg_replace('#<img border="0"#i', '<img', $output);
+ $output = str_replace(array('<font', '</font>'), array('<span', '</span>'), $output);
+
+ preg_match_all('#<div class="center">(.*)</div>#siU', $output, $output);
+ $output = $output[1][0];
+ break;
+ }
+
+ $template->assign_var('PHPINFO', $output);
+ }
+}
+
+/**
+* @package module_install
+*/
+class acp_php_info_info
+{
+ function module()
+ {
+ return array(
+ 'filename' => 'acp_php_info',
+ 'title' => 'ACP_PHP_INFO',
+ 'version' => '1.0.0',
+ 'modes' => array(
+ 'info' => array('title' => 'ACP_PHP_INFO', 'auth' => 'acl_a_server'),
+ ),
+ );
+ }
+
+ function install()
+ {
+ }
+
+ function uninstall()
+ {
+ }
+}
+
+?> \ No newline at end of file