Split out functionality that gathers system specs
authorpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Thu, 6 May 2004 19:28:17 +0000 (19:28 +0000)
committerpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Thu, 6 May 2004 19:28:17 +0000 (19:28 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@7392 7612ce4b-ef26-0410-bec9-ea0150e637f0

plugins/bug_report/bug_report.php
plugins/bug_report/setup.php
plugins/bug_report/show_system_specs.php [new file with mode: 0644]
plugins/bug_report/system_specs.php [new file with mode: 0644]

index d7c890c..f75d69f 100644 (file)
@@ -30,34 +30,8 @@ require_once(SM_PATH . 'functions/forms.php');
 
 displayPageHeader($color, 'None');
 
-/**
- * converts array to string
- *
- * @param array $array array that has to be displayed
- * @return string
- * @access private
- */
-function Show_Array($array) {
-    $str = '';
-    foreach ($array as $key => $value) {
-        if ($key != 0 || $value != '') {
-        $str .= "    * $key = $value\n";
-        }
-    }
-    if ($str == '') {
-        return "    * Nothing listed\n";
-    }
-    return $str;
-}
-
-$browscap = ini_get('browscap');
-if(!empty($browscap)) {
-    $browser = get_browser();
-}
-
-sqgetGlobalVar('HTTP_USER_AGENT', $HTTP_USER_AGENT, SQ_SERVER);
-if ( ! sqgetGlobalVar('HTTP_USER_AGENT', $HTTP_USER_AGENT, SQ_SERVER) )
-    $HTTP_USER_AGENT="Browser information is not available.";
+include_once(SM_PATH . 'plugins/bug_report/system_specs.php');
+global $body;
 
 $body_top = "I subscribe to the squirrelmail-users mailing list.\n" .
                 "  [ ]  True - No need to CC me when replying\n" .
@@ -72,81 +46,9 @@ $body_top = "I subscribe to the squirrelmail-users mailing list.\n" .
                 "I can reproduce the bug by:\n\n\n" .
                 "(Optional) I got bored and found the bug occurs in:\n\n\n" .
                 "(Optional) I got really bored and here's a fix:\n\n\n" .
-                "----------------------------------------------\n" .
-            "\nMy browser information:\n" .
-            '  '.$HTTP_USER_AGENT . "\n" ;
-           if(isset($browser)) {
-                $body_top .= "  get_browser() information (List)\n" .
-                Show_Array((array) $browser);
-            }
-            $body_top .= "\nMy web server information:\n" .
-            "  PHP Version " . phpversion() . "\n" .
-            "  PHP Extensions (List)\n" .
-            Show_Array(get_loaded_extensions()) .
-            "\nSquirrelMail-specific information:\n" .
-            "  Version:  $version\n" .
-            "  Plugins (List)\n" .
-            Show_Array($plugins);
-if (isset($ldap_server) && $ldap_server[0] && ! extension_loaded('ldap')) {
-    $warning = 1;
-    $warnings['ldap'] = "LDAP server defined in SquirrelMail config, " .
-        "but the module is not loaded in PHP";
-    $corrections['ldap'][] = "Reconfigure PHP with the option '--with-ldap'";
-    $corrections['ldap'][] = "Then recompile PHP and reinstall";
-    $corrections['ldap'][] = "-- OR --";
-    $corrections['ldap'][] = "Reconfigure SquirrelMail to not use LDAP";
-}
-
-$body = "\nMy IMAP server information:\n" .
-            "  Server type:  $imap_server_type\n";
-$imap_stream = fsockopen ($imapServerAddress, $imapPort, $error_number, $error_string);
-$server_info = fgets ($imap_stream, 1024);
-if ($imap_stream) {
-    // SUPRESS HOST NAME
-    $list = explode(' ', $server_info);
-    $list[2] = '[HIDDEN]';
-    $server_info = implode(' ', $list);
-    $body .=  "  Server info:  $server_info";
-    fputs ($imap_stream, "a001 CAPABILITY\r\n");
-    $read = fgets($imap_stream, 1024);
-    $list = explode(' ', $read);
-    array_shift($list);
-    array_shift($list);
-    $read = implode(' ', $list);
-    $body .= "  Capabilities:  $read";
-    fputs ($imap_stream, "a002 LOGOUT\r\n");
-    fclose($imap_stream);
-} else {
-    $body .= "  Unable to connect to IMAP server to get information.\n";
-    $warning = 1;
-    $warnings['imap'] = "Unable to connect to IMAP server";
-    $corrections['imap'][] = "Make sure you specified the correct mail server";
-    $corrections['imap'][] = "Make sure the mail server is running IMAP, not POP";
-    $corrections['imap'][] = "Make sure the server responds to port $imapPort";
-}
-$warning_html = '';
-$warning_num = 0;
-if (isset($warning) && $warning) {
-    foreach ($warnings as $key => $value) {
-        if ($warning_num == 0) {
-            $body_top .= "WARNINGS WERE REPORTED WITH YOUR SETUP:\n";
-            $body_top = "WARNINGS WERE REPORTED WITH YOUR SETUP -- SEE BELOW\n\n$body_top";
-            $warning_html = "<h1>Warnings were reported with your setup:</h1>\n<dl>\n";
-        }
-        $warning_num ++;
-        $warning_html .= "<dt><b>$value</b></dt>\n";
-        $body_top .= "\n$value\n";
-        foreach ($corrections[$key] as $corr_val) {
-            $body_top .= "  * $corr_val\n";
-            $warning_html .= "<dd>* $corr_val</dd>\n";
-        }
-    }
-    $warning_html .= "</dl>\n<p>$warning_num warning(s) reported.</p>\n<hr>\n";
-    $body_top .= "\n$warning_num warning(s) reported.\n";
-    $body_top .= "----------------------------------------------\n";
-}
-
-$body = htmlspecialchars($body_top . $body);
+                "----------------------------------------------\n\n";
+
+$body = htmlspecialchars($body_top) . $body;
 
 ?>
    <br>
index cba0638..793f0e7 100644 (file)
@@ -85,6 +85,9 @@ function bug_report_options() {
         echo ' checked';
     }
     echo ' /> ' . _("Show button in toolbar") . "</td></tr>\n";
+
+    echo '<tr><td></td>' .
+         '<td><a href="' . SM_PATH . 'plugins/bug_report/show_system_specs.php" target="_new"><small>' . _("Show system specs") . '</small></a></td></tr>';
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/plugins/bug_report/show_system_specs.php b/plugins/bug_report/show_system_specs.php
new file mode 100644 (file)
index 0000000..83e22b0
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * This shows system specification details.
+ *
+ * Copyright (c) 1999-2004 The SquirrelMail development team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
+ * This is a standard Squirrelmail-1.2 API for plugins.
+ *
+ * $Id$
+ */
+
+
+define('SM_PATH','../../');
+include_once(SM_PATH . 'include/validate.php');
+
+
+?>
+<html>
+<body>
+<pre>
+
+<?php
+
+include_once(SM_PATH . 'plugins/bug_report/system_specs.php');
+global $body;
+echo $body;
+
+?>
+</pre>
+</body>
+</html>
diff --git a/plugins/bug_report/system_specs.php b/plugins/bug_report/system_specs.php
new file mode 100644 (file)
index 0000000..6e1c1bb
--- /dev/null
@@ -0,0 +1,124 @@
+<?php
+
+/**
+ * This gathers system specification details for use with bug reporting
+ * and anyone else who needs it.
+ *
+ * Copyright (c) 1999-2004 The SquirrelMail development team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
+ * This is a standard Squirrelmail-1.2 API for plugins.
+ *
+ * $Id$
+ */
+
+
+include_once(SM_PATH . 'include/validate.php');
+global $body;
+
+
+/**
+ * converts array to string
+ *
+ * @param array $array array that has to be displayed
+ * @return string
+ * @access private
+ */
+function Show_Array($array) {
+    $str = '';
+    foreach ($array as $key => $value) {
+        if ($key != 0 || $value != '') {
+        $str .= "    * $key = $value\n";
+        }
+    }
+    if ($str == '') {
+        return "    * Nothing listed\n";
+    }
+    return $str;
+}
+
+$browscap = ini_get('browscap');
+if(!empty($browscap)) {
+    $browser = get_browser();
+}
+
+sqgetGlobalVar('HTTP_USER_AGENT', $HTTP_USER_AGENT, SQ_SERVER);
+if ( ! sqgetGlobalVar('HTTP_USER_AGENT', $HTTP_USER_AGENT, SQ_SERVER) )
+    $HTTP_USER_AGENT="Browser information is not available.";
+
+$body_top = "My browser information:\n" .
+            '  '.$HTTP_USER_AGENT . "\n" ;
+            if(isset($browser)) {
+                $body_top .= "  get_browser() information (List)\n" .
+                Show_Array((array) $browser);
+            }
+            $body_top .= "\nMy web server information:\n" .
+            "  PHP Version " . phpversion() . "\n" .
+            "  PHP Extensions (List)\n" .
+            Show_Array(get_loaded_extensions()) .
+            "\nSquirrelMail-specific information:\n" .
+            "  Version:  $version\n" .
+            "  Plugins (List)\n" .
+            Show_Array($plugins);
+if (isset($ldap_server) && $ldap_server[0] && ! extension_loaded('ldap')) {
+    $warning = 1;
+    $warnings['ldap'] = "LDAP server defined in SquirrelMail config, " .
+        "but the module is not loaded in PHP";
+    $corrections['ldap'][] = "Reconfigure PHP with the option '--with-ldap'";
+    $corrections['ldap'][] = "Then recompile PHP and reinstall";
+    $corrections['ldap'][] = "-- OR --";
+    $corrections['ldap'][] = "Reconfigure SquirrelMail to not use LDAP";
+}
+
+$body = "\nMy IMAP server information:\n" .
+            "  Server type:  $imap_server_type\n";
+$imap_stream = fsockopen ($imapServerAddress, $imapPort, $error_number, $error_string);
+$server_info = fgets ($imap_stream, 1024);
+if ($imap_stream) {
+    // SUPRESS HOST NAME
+    $list = explode(' ', $server_info);
+    $list[2] = '[HIDDEN]';
+    $server_info = implode(' ', $list);
+    $body .=  "  Server info:  $server_info";
+    fputs ($imap_stream, "a001 CAPABILITY\r\n");
+    $read = fgets($imap_stream, 1024);
+    $list = explode(' ', $read);
+    array_shift($list);
+    array_shift($list);
+    $read = implode(' ', $list);
+    $body .= "  Capabilities:  $read";
+    fputs ($imap_stream, "a002 LOGOUT\r\n");
+    fclose($imap_stream);
+} else {
+    $body .= "  Unable to connect to IMAP server to get information.\n";
+    $warning = 1;
+    $warnings['imap'] = "Unable to connect to IMAP server";
+    $corrections['imap'][] = "Make sure you specified the correct mail server";
+    $corrections['imap'][] = "Make sure the mail server is running IMAP, not POP";
+    $corrections['imap'][] = "Make sure the server responds to port $imapPort";
+}
+$warning_html = '';
+$warning_num = 0;
+if (isset($warning) && $warning) {
+    foreach ($warnings as $key => $value) {
+        if ($warning_num == 0) {
+            $body_top .= "WARNINGS WERE REPORTED WITH YOUR SETUP:\n";
+            $body_top = "WARNINGS WERE REPORTED WITH YOUR SETUP -- SEE BELOW\n\n$body_top";
+            $warning_html = "<h1>Warnings were reported with your setup:</h1>\n<dl>\n";
+        }
+        $warning_num ++;
+        $warning_html .= "<dt><b>$value</b></dt>\n";
+        $body_top .= "\n$value\n";
+        foreach ($corrections[$key] as $corr_val) {
+            $body_top .= "  * $corr_val\n";
+            $warning_html .= "<dd>* $corr_val</dd>\n";
+        }
+    }
+    $warning_html .= "</dl>\n<p>$warning_num warning(s) reported.</p>\n<hr>\n";
+    $body_top .= "\n$warning_num warning(s) reported.\n";
+    $body_top .= "----------------------------------------------\n";
+}
+
+$body = htmlspecialchars($body_top . $body);
+
+?>