aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mod/diagnostics/start.php401
1 files changed, 201 insertions, 200 deletions
diff --git a/mod/diagnostics/start.php b/mod/diagnostics/start.php
index 34b86a9cd..76676c6a4 100644
--- a/mod/diagnostics/start.php
+++ b/mod/diagnostics/start.php
@@ -1,217 +1,218 @@
<?php
- /**
- * Elgg diagnostics
- *
- * @package ElggDiagnostics
- * @author Curverider Ltd
- * @link http://elgg.com/
- */
-
- /**
- * Initialise the diagnostics tool
- *
- */
- function diagnostics_init()
- {
+/**
+ * Elgg diagnostics
+ *
+ * @package ElggDiagnostics
+ * @author Curverider Ltd
+ * @link http://elgg.com/
+ */
+
+/**
+ * Initialise the diagnostics tool
+ *
+ */
+function diagnostics_init()
+{
+ global $CONFIG;
+
+ // Register a page handler, so we can have nice URLs
+ register_page_handler('diagnostics','diagnostics_page_handler');
+
+ // Register some actions
+ register_action("diagnostics/download",false, $CONFIG->pluginspath . "diagnostics/actions/download.php");
+}
+
+/**
+ * Adding the diagnostics to the admin menu
+ *
+ */
+function diagnostics_pagesetup()
+{
+ if (get_context() == 'admin' && isadminloggedin()) {
global $CONFIG;
-
- // Register a page handler, so we can have nice URLs
- register_page_handler('diagnostics','diagnostics_page_handler');
-
- // Register some actions
- register_action("diagnostics/download",false, $CONFIG->pluginspath . "diagnostics/actions/download.php");
- }
-
- /**
- * Adding the diagnostics to the admin menu
- *
- */
- function diagnostics_pagesetup()
- {
- if (get_context() == 'admin' && isadminloggedin()) {
- global $CONFIG;
- add_submenu_item(elgg_echo('diagnostics'), $CONFIG->wwwroot . 'pg/diagnostics/');
- }
+ add_submenu_item(elgg_echo('diagnostics'), $CONFIG->wwwroot . 'pg/diagnostics/');
}
-
- /**
- * Diagnostics page.
- *
- * @param array $page Array of page elements, forwarded by the page handling mechanism
- */
- function diagnostics_page_handler($page)
+}
+
+/**
+ * Diagnostics page.
+ *
+ * @param array $page Array of page elements, forwarded by the page handling mechanism
+ */
+function diagnostics_page_handler($page)
+{
+ global $CONFIG;
+
+ if (isset($page[0]))
{
- global $CONFIG;
-
- if (isset($page[0]))
+ switch ($page[0])
{
- switch ($page[0])
- {
- case 'tests' :
- if ((isset($page[1])) && ($page[1])) {
- switch ($page[1])
- {
- case 'all': break;
- default: set_input('test_func', $page[1]);
- }
-
- include($CONFIG->pluginspath . "diagnostics/testreport.php");
+ case 'tests' :
+ if ((isset($page[1])) && ($page[1])) {
+ switch ($page[1])
+ {
+ case 'all': break;
+ default: set_input('test_func', $page[1]);
}
- else
- include($CONFIG->pluginspath . "diagnostics/unittester.php");
- break;
- default: include($CONFIG->pluginspath . "diagnostics/index.php");
- }
- }
- else
- {
- // only interested in one page for now
- include($CONFIG->pluginspath . "diagnostics/index.php");
- }
- }
-
- /**
- * Generate a basic report.
- *
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $returnvalue
- * @param unknown_type $params
- */
- function diagnostics_basic_hook($hook, $entity_type, $returnvalue, $params)
- {
- global $CONFIG;
-
- // Get version information
- $version = get_version();
- $release = get_version(true);
-
- $returnvalue .= sprintf(elgg_echo('diagnostics:report:basic'), $release, $version);
-
- return $returnvalue;
- }
-
- /**
- * Get some information about the plugins installed on the system.
- *
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $returnvalue
- * @param unknown_type $params
- */
- function diagnostics_plugins_hook($hook, $entity_type, $returnvalue, $params)
- {
- $returnvalue .= sprintf(elgg_echo('diagnostics:report:plugins'), print_r(get_installed_plugins(), true));
-
- return $returnvalue;
- }
-
- /**
- * Recursively list through a directory tree producing a hash of all installed files
- *
- * @param starting dir $dir
- * @param buffer $buffer
- */
- function diagnostics_md5_dir($dir)
- {
- //if (is_file(trim($dir, "/"))) {
- $extensions_allowed = array('.php', '.gif', '.png', '.jpg');
-
- $buffer = "";
-
- if (in_array(strrchr(trim($dir, "/"), '.'), $extensions_allowed))
- {
- //$dir = trim($dir, "/");
- $buffer .= md5_file($dir). " " . trim($dir, "/") . "\n";
- } else if ($handle = opendir($dir)) {
- while ($file = readdir($handle)) {
-
- if (($file != '.') && ($file != '..')) {
- $buffer .= diagnostics_md5_dir($dir . $file. "/", $buffer);
+
+ include($CONFIG->pluginspath . "diagnostics/testreport.php");
}
- }
+ else
+ include($CONFIG->pluginspath . "diagnostics/unittester.php");
+ break;
+ default: include($CONFIG->pluginspath . "diagnostics/index.php");
}
-
- return $buffer;
}
-
- /**
- * Get some information about the files installed on a system.
- *
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $returnvalue
- * @param unknown_type $params
- */
- function diagnostics_sigs_hook($hook, $entity_type, $returnvalue, $params)
+ else
{
- global $CONFIG;
-
- $returnvalue .= sprintf(elgg_echo('diagnostics:report:md5'), diagnostics_md5_dir($CONFIG->path));
-
- return $returnvalue;
+ // only interested in one page for now
+ include($CONFIG->pluginspath . "diagnostics/index.php");
}
-
- /**
- * Get some information about the php install
- *
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $returnvalue
- * @param unknown_type $params
- */
- function diagnostics_phpinfo_hook($hook, $entity_type, $returnvalue, $params)
+}
+
+/**
+ * Generate a basic report.
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $entity_type
+ * @param unknown_type $returnvalue
+ * @param unknown_type $params
+ */
+function diagnostics_basic_hook($hook, $entity_type, $returnvalue, $params)
+{
+ global $CONFIG;
+
+ // Get version information
+ $version = get_version();
+ $release = get_version(true);
+
+ $returnvalue .= sprintf(elgg_echo('diagnostics:report:basic'), $release, $version);
+
+ return $returnvalue;
+}
+
+/**
+ * Get some information about the plugins installed on the system.
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $entity_type
+ * @param unknown_type $returnvalue
+ * @param unknown_type $params
+ */
+function diagnostics_plugins_hook($hook, $entity_type, $returnvalue, $params)
+{
+ $returnvalue .= sprintf(elgg_echo('diagnostics:report:plugins'), print_r(get_installed_plugins(), true));
+
+ return $returnvalue;
+}
+
+/**
+ * Recursively list through a directory tree producing a hash of all installed files
+ *
+ * @param starting dir $dir
+ * @param buffer $buffer
+ */
+function diagnostics_md5_dir($dir)
+{
+ //if (is_file(trim($dir, "/"))) {
+ $extensions_allowed = array('.php', '.gif', '.png', '.jpg');
+
+ $buffer = "";
+
+ if (in_array(strrchr(trim($dir, "/"), '.'), $extensions_allowed))
{
- global $CONFIG;
-
- ob_start();
- phpinfo();
- $phpinfo = array('phpinfo' => array());
-
- if(preg_match_all('#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>)?)?</tr>)#s', ob_get_clean(), $matches, PREG_SET_ORDER))
-
- foreach($matches as $match)
- {
- if(strlen($match[1]))
- $phpinfo[$match[1]] = array();
- else if(isset($match[3]))
- $phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
- else
- $phpinfo[end(array_keys($phpinfo))][] = $match[2];
+ //$dir = trim($dir, "/");
+ $buffer .= md5_file($dir). " " . trim($dir, "/") . "\n";
+ } else if ($handle = opendir($dir)) {
+ while ($file = readdir($handle)) {
+
+ if (($file != '.') && ($file != '..')) {
+ $buffer .= diagnostics_md5_dir($dir . $file. "/", $buffer);
+ }
}
-
-
- $returnvalue .= sprintf(elgg_echo('diagnostics:report:php'), print_r($phpinfo, true));
-
- return $returnvalue;
}
-
- /**
- * Get global variables.
- *
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $returnvalue
- * @param unknown_type $params
- * @return unknown
- */
- function diagnostics_globals_hook($hook, $entity_type, $returnvalue, $params)
+
+ return $buffer;
+}
+
+/**
+ * Get some information about the files installed on a system.
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $entity_type
+ * @param unknown_type $returnvalue
+ * @param unknown_type $params
+ */
+function diagnostics_sigs_hook($hook, $entity_type, $returnvalue, $params)
+{
+ global $CONFIG;
+
+ $returnvalue .= sprintf(elgg_echo('diagnostics:report:md5'), diagnostics_md5_dir($CONFIG->path));
+
+ return $returnvalue;
+}
+
+/**
+ * Get some information about the php install
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $entity_type
+ * @param unknown_type $returnvalue
+ * @param unknown_type $params
+ */
+function diagnostics_phpinfo_hook($hook, $entity_type, $returnvalue, $params)
+{
+ global $CONFIG;
+
+ ob_start();
+ phpinfo();
+ $phpinfo = array('phpinfo' => array());
+
+ if(preg_match_all('#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>)?)?</tr>)#s', ob_get_clean(), $matches, PREG_SET_ORDER))
+
+ foreach($matches as $match)
{
- global $CONFIG;
-
- $returnvalue .= sprintf(elgg_echo('diagnostics:report:globals'), print_r($GLOBALS, true));
-
- return $returnvalue;
+ if(strlen($match[1]))
+ $phpinfo[$match[1]] = array();
+ else if(isset($match[3]))
+ $phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
+ else
+ $phpinfo[end(array_keys($phpinfo))][] = $match[2];
}
-
- // Initialise log browser
- register_elgg_event_handler('init','system','diagnostics_init');
- register_elgg_event_handler('pagesetup','system','diagnostics_pagesetup');
-
- register_plugin_hook("diagnostics:report", "all", "diagnostics_basic_hook", 0); // show basics first
- register_plugin_hook("diagnostics:report", "all", "diagnostics_plugins_hook", 2); // Now the plugins
- register_plugin_hook("diagnostics:report", "all", "diagnostics_sigs_hook", 1); // Now the signatures
-
- register_plugin_hook("diagnostics:report", "all", "diagnostics_globals_hook"); // Global variables
- register_plugin_hook("diagnostics:report", "all", "diagnostics_phpinfo_hook"); // PHP info
+
+
+ $returnvalue .= sprintf(elgg_echo('diagnostics:report:php'), print_r($phpinfo, true));
+
+ return $returnvalue;
+}
+
+/**
+ * Get global variables.
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $entity_type
+ * @param unknown_type $returnvalue
+ * @param unknown_type $params
+ * @return unknown
+ */
+function diagnostics_globals_hook($hook, $entity_type, $returnvalue, $params)
+{
+ global $CONFIG;
+
+ $output = str_replace($CONFIG->dbpass, '<<DBPASS>>', print_r($GLOBALS, true));
+ $returnvalue .= sprintf(elgg_echo('diagnostics:report:globals'), $output);
+
+ return $returnvalue;
+}
+
+// Initialise log browser
+register_elgg_event_handler('init','system','diagnostics_init');
+register_elgg_event_handler('pagesetup','system','diagnostics_pagesetup');
+
+register_plugin_hook("diagnostics:report", "all", "diagnostics_basic_hook", 0); // show basics first
+register_plugin_hook("diagnostics:report", "all", "diagnostics_plugins_hook", 2); // Now the plugins
+register_plugin_hook("diagnostics:report", "all", "diagnostics_sigs_hook", 1); // Now the signatures
+
+register_plugin_hook("diagnostics:report", "all", "diagnostics_globals_hook"); // Global variables
+register_plugin_hook("diagnostics:report", "all", "diagnostics_phpinfo_hook"); // PHP info
?>