/**
  * Display a HTML report about systeme information / configuration
  **/
 function showSystemInformations()
 {
     global $DB, $CFG_GLPI;
     if (!Config::canUpdate()) {
         return false;
     }
     echo "<div class='center' id='tabsbody'>";
     echo "<form name='form' action=\"" . Toolbox::getItemTypeFormURL(__CLASS__) . "\" method='post'>";
     echo "<table class='tab_cadre_fixe'>";
     echo "<tr><th colspan='4'>" . __('General setup') . "</th></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . __('Log Level') . "</td><td>";
     $values[1] = __('1- Critical (login error only)');
     $values[2] = __('2- Severe (not used)');
     $values[3] = __('3- Important (successful logins)');
     $values[4] = __('4- Notices (add, delete, tracking)');
     $values[5] = __('5- Complete (all)');
     Dropdown::showFromArray('event_loglevel', $values, array('value' => $CFG_GLPI["event_loglevel"]));
     echo "</td><td>" . __('Maximal number of automatic actions (run by CLI)') . "</td><td>";
     Dropdown::showNumber('cron_limit', array('value' => $CFG_GLPI["cron_limit"], 'min' => 1, 'max' => 30));
     echo "</td></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td> " . __('Logs in files (SQL, email, automatic action...)') . "</td><td>";
     Dropdown::showYesNo("use_log_in_files", $CFG_GLPI["use_log_in_files"]);
     echo "</td><td> " . _n('Mysql replica', 'Mysql replicas', 1) . "</td><td>";
     $active = DBConnection::isDBSlaveActive();
     Dropdown::showYesNo("_dbslave_status", $active);
     echo "</td></tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td colspan='4' class='center b'>" . __('Password security policy');
     echo "</td></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . __('Password security policy validation') . "</td>";
     echo "<td>";
     Dropdown::showYesNo("use_password_security", $CFG_GLPI["use_password_security"]);
     echo "</td>";
     echo "<td>" . __('Password minimum length') . "</td>";
     echo "<td>";
     Dropdown::showNumber('password_min_length', array('value' => $CFG_GLPI["password_min_length"], 'min' => 4, 'max' => 30));
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . __('Password need digit') . "</td>";
     echo "<td>";
     Dropdown::showYesNo("password_need_number", $CFG_GLPI["password_need_number"]);
     echo "</td>";
     echo "<td>" . __('Password need lowercase character') . "</td>";
     echo "<td>";
     Dropdown::showYesNo("password_need_letter", $CFG_GLPI["password_need_letter"]);
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . __('Password need uppercase character') . "</td>";
     echo "<td>";
     Dropdown::showYesNo("password_need_caps", $CFG_GLPI["password_need_caps"]);
     echo "</td>";
     echo "<td>" . __('Password need symbol') . "</td>";
     echo "<td>";
     Dropdown::showYesNo("password_need_symbol", $CFG_GLPI["password_need_symbol"]);
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td colspan='4' class='center b'>" . __('Maintenance mode');
     echo "</td></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . __('Maintenance mode') . "</td>";
     echo "<td>";
     Dropdown::showYesNo("maintenance_mode", $CFG_GLPI["maintenance_mode"]);
     echo "</td>";
     //TRANS: Proxy port
     echo "<td>" . __('Maintenance text') . "</td>";
     echo "<td>";
     echo "<textarea cols='70' rows='4' name='maintenance_text'>" . $CFG_GLPI["maintenance_text"];
     echo "</textarea>";
     echo "</td></tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td colspan='4' class='center b'>" . __('Proxy configuration for upgrade check');
     echo "</td></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . __('Server') . "</td>";
     echo "<td><input type='text' name='proxy_name' value='" . $CFG_GLPI["proxy_name"] . "'></td>";
     //TRANS: Proxy port
     echo "<td>" . __('Port') . "</td>";
     echo "<td><input type='text' name='proxy_port' value='" . $CFG_GLPI["proxy_port"] . "'></td>";
     echo "</tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td>" . __('Login') . "</td>";
     echo "<td><input type='text' name='proxy_user' value='" . $CFG_GLPI["proxy_user"] . "'></td>";
     echo "<td>" . __('Password') . "</td>";
     echo "<td><input type='password' name='proxy_passwd' value='' autocomplete='off'>";
     echo "<br><input type='checkbox' name='_blank_proxy_passwd'>" . __('Clear');
     echo "</td></tr>";
     echo "<tr class='tab_bg_2'>";
     echo "<td colspan='4' class='center'>";
     echo "<input type='submit' name='update' class='submit' value=\"" . _sx('button', 'Save') . "\">";
     echo "</td></tr>";
     echo "</table>";
     Html::closeForm();
     $width = 128;
     echo "<table class='tab_cadre_fixe'>";
     echo "<tr><th>" . __('Information about system installation and configuration') . "</th></tr>";
     $oldlang = $_SESSION['glpilanguage'];
     // Keep this, for some function call which still use translation (ex showAllReplicateDelay)
     Session::loadLanguage('en_GB');
     // No need to translate, this part always display in english (for copy/paste to forum)
     // Try to compute a better version for .git
     if (is_dir(GLPI_ROOT . "/.git")) {
         $dir = getcwd();
         chdir(GLPI_ROOT);
         $returnCode = 1;
         $result = @exec('git describe --tags 2>&1', $output, $returnCode);
         chdir($dir);
         $ver = $returnCode ? $CFG_GLPI['version'] . '-git' : $result;
     } else {
         $ver = $CFG_GLPI['version'];
     }
     echo "<tr class='tab_bg_1'><td><pre>[code]\n&nbsp;\n";
     echo "GLPI {$ver} (" . $CFG_GLPI['root_doc'] . " => " . GLPI_ROOT . ")\n";
     echo "\n</pre></td></tr>";
     echo "<tr><th>Server</th></tr>\n";
     echo "<tr class='tab_bg_1'><td><pre>\n&nbsp;\n";
     echo wordwrap("Operating system: " . php_uname() . "\n", $width, "\n\t");
     $exts = get_loaded_extensions();
     sort($exts);
     echo wordwrap("PHP " . phpversion() . ' ' . php_sapi_name() . " (" . implode(', ', $exts) . ")\n", $width, "\n\t");
     $msg = "Setup: ";
     foreach (array('max_execution_time', 'memory_limit', 'post_max_size', 'safe_mode', 'session.save_handler', 'upload_max_filesize') as $key) {
         $msg .= $key . '="' . ini_get($key) . '" ';
     }
     echo wordwrap($msg . "\n", $width, "\n\t");
     $msg = 'Software: ';
     if (isset($_SERVER["SERVER_SOFTWARE"])) {
         $msg .= $_SERVER["SERVER_SOFTWARE"];
     }
     if (isset($_SERVER["SERVER_SIGNATURE"])) {
         $msg .= ' (' . Html::clean($_SERVER["SERVER_SIGNATURE"]) . ')';
     }
     echo wordwrap($msg . "\n", $width, "\n\t");
     if (isset($_SERVER["HTTP_USER_AGENT"])) {
         echo "\t" . $_SERVER["HTTP_USER_AGENT"] . "\n";
     }
     foreach ($DB->getInfo() as $key => $val) {
         echo "{$key}: {$val}\n\t";
     }
     echo "\n";
     self::checkWriteAccessToDirs(true);
     toolbox::checkSELinux(true);
     echo "\n</pre></td></tr>";
     self::showLibrariesInformation();
     foreach ($CFG_GLPI["systeminformations_types"] as $type) {
         $tmp = new $type();
         $tmp->showSystemInformations($width);
     }
     Session::loadLanguage($oldlang);
     echo "<tr class='tab_bg_1'><td>[/code]\n</td></tr>";
     echo "<tr class='tab_bg_2'><th>" . __('To copy/paste in your support request') . "</th></tr>\n";
     echo "</table></div>\n";
 }