/** * 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 \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 \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"; }