function tst_mysql()
{
- $test['descr'] = _('MySQL version'). ' >3.23.58';
+ $test['descr'] = _('MySQL version'). ' >=4.1';
$test['type'] = 3;
$test['test'] = mysql_get_server_info();
- $test['result'] = $test['test']>'3.23.58';
- $test['comments'] = _('Upgrade MySQL server to version at least 3.23.58');
+ $test['result'] = $test['test']>='4.1';
+ $test['comments'] = _('Upgrade MySQL server to version at least 4.1');
return $test;
}
function tst_php()
{
- $test['descr'] = _('PHP version').' >4.3.2';
+ $test['descr'] = _('PHP version').' >=4.3.3';
$test['type'] = 3;
$test['test'] = phpversion();
- $test['result'] = $test['test']>'4.3.2';
- $test['comments'] = _('Upgrade PHP to version at least 4.3.2');
+ $test['result'] = $test['test']>='4.3.3';
+ $test['comments'] = _('Upgrade PHP to version at least 4.3.3');
return $test;
}
$test['type'] = 0;
$test['test'] = $go_debug ? _("Yes") : _("No");
$test['result'] = $go_debug != 0;
- $test['comments'] = _('To switch debugging on set $go_debug=1 in config.php file');
+ $test['comments'] = _('To switch debugging on set $go_debug>0 in config.php file');
return $test;
}
function tst_subdirs()
{
- global $db_connections, $comp_path;
+ global $db_connections;
$comp_subdirs = array('images', 'pdf_files', 'backup','js_cache');
$test['descr'] = _('Company subdirectories consistency');
$test['type'] = 3;
- $test['test'] = array($comp_path.'/*');
+ $test['test'] = array(company_path().'/*');
foreach($comp_subdirs as $sub) {
- $test['test'][] = $comp_path.'/*/'.$sub;
+ $test['test'][] = company_path().'/*/'.$sub;
}
$test['result'] = true;
-
+
+ $comp_path = company_path();
if (!is_dir($comp_path) || !is_writable($comp_path) ) {
$test['result'] = false;
$test['comments'][] = sprintf(_("'%s' is not writeable"), $comp_path);
return $test;
};
foreach ($db_connections as $n => $comp) {
- $path = "$comp_path/$n";
+ $path = company_path($n);
if (!is_dir($path) || !is_writable($path) ) {
$test['result'] = false;
$test['comments'][] = sprintf(_("'%s' is not writeable"), $path);
if (!is_dir($spath) || !is_writable($spath) ) {
$test['result'] = false;
$test['comments'][] = sprintf(_("'%s' is not writeable"), $spath);
+ } else {
+ $dir = opendir($spath);
+ while (false !== ($fname = readdir($dir))) {
+ // check only *.js files. Manually installed package can contain other
+ // non-writable files which are non-crucial for normal operations
+ if (preg_match('/.*(\.js)/', $fname) && !is_writable("$spath/$fname")) {
+ $test['result'] = false;
+ $test['comments'][] = sprintf(_("'%s' is not writeable"), "$spath/$fname");
+ }
+ }
}
}
}
$test['result'] = true;
$test['comments'] = array();
- $old = setlocale(LC_MESSAGES, '0');
+ $fname = $path_to_root.'/lang';
+ $test['test'][] = $fname;
+ if (!(is_dir($fname) && is_writable($fname))) {
+ $test['result'] = false;
+ $test['comments'][] = _("Languages folder should be writeable.");
+ }
+ $fname = $path_to_root.'/lang/installed_languages.inc';
+ $test['test'][] = $fname;
+ if (!(is_file($fname) && is_writable($fname))) {
+ $test['result'] = false;
+ $test['comments'][] = _("Languages configuration file should be writeable.");
+ }
+
$langs = array();
foreach ($installed_languages as $lang) {
$langs[] = $lang['code'];
if ($lang['code'] == 'en_GB') continue; // native FA language
-
+
$file = $path_to_root.'/lang/'.$lang['code'].'/LC_MESSAGES/'.$lang['code'];
- $file .= function_exists('gettext') ? '.mo' : '.po';
+ if (@$lang['version'])
+ $file .= '-'.$lang['version'];
+ $file .= function_exists('gettext') ? '.mo' : '.po';
if (!is_file($file)) {
$test['result'] = false;
$test['comments'][] = sprintf( _('Missing %s translation file.'), $file);
}
if (!$_SESSION['get_text']->check_support($lang['code'], $lang['encoding']))
- {
+ {
$test['result'] = false;
$test['comments'][] = sprintf(_('Missing system locale: %s'), $lang['code'].".".$lang['encoding']);
- };
+ };
}
-
- setlocale(LC_MESSAGES, $old);
$test['test'] = $langs;
function tst_extconfig()
{
- global $path_to_root, $db_connections, $comp_path;
+ global $path_to_root, $db_connections;
- $test['descr'] = _('Extensions configuration files');
+ $test['descr'] = _('Extensions system');
$test['type'] = 3;
- $test['test'] = $path_to_root.'/installed_extensions.php';
- $test['result'] = is_file($test['test']) && is_writable($test['test']);
- $test['test'] . ','.$comp_path.'/*/installed_extensions.php';
- $test['comments'][] = sprintf(_("'%s' file should be writeable"), $test['test']);
+ $fname = $path_to_root.'/installed_extensions.php';
+ $test['test'][] = $fname;
+ $test['result'] = is_file($fname) && is_writable($fname);
+ $test['test'][] = company_path().'/*/installed_extensions.php';
foreach ($db_connections as $n => $comp) {
- $path = "$comp_path/$n";
+ $path = company_path($n);
if (!is_dir($path)) continue;
$path .= "/installed_extensions.php";
continue;
};
}
+ $fname = $path_to_root.'/modules';
+ $test['test'][] = $fname;
+ $test['result'] &= is_dir($fname) && is_writable($fname);
+ $fname = $path_to_root.'/modules/_cache';
+
+ $test['test'][] = $fname;
+ $test['result'] &= is_dir($fname) && is_writable($fname);
+ $fname = $path_to_root.'/themes';
+
+ $test['test'][] = $fname;
+ $test['result'] &= is_dir($fname) && is_writable($fname);
+ if(!$test['result'])
+ $test['comments'][] = _("Extensions configuration files and directories should be writeable");
+
+ $themedir = opendir($fname);
+ while (false !== ($fname = readdir($themedir)))
+ {
+ if ($fname!='.' && $fname!='..' && $fname!='CVS' && is_dir($path_to_root.'/themes/'.$fname)
+ && !in_array($fname, array('aqua', 'cool', 'default')))
+ {
+ $test['test'][] = $fname;
+ $test['result'] = is_writable($path_to_root.'/themes/'.$fname);
+ if (!$test['result']) {
+ $test['comments'][] =
+ sprintf(_("Non-standard theme directory '%s' is not writable"), $fname);
+ break;
+ }
+ }
+ }
+ closedir($themedir);
+
+ $test['test'][] = 'OpenSSL PHP extension';
+ if (!extension_loaded('openssl')) {
+ $test['result'] = false;
+ $test['comments'][] = _("OpenSSL PHP extension have to be enabled to use extension repository system.");
+ } elseif (!function_exists('openssl_verify')) {
+ $test['result'] = false;
+ $test['comments'][] = _("OpenSSL have to be available on your server to use extension repository system.");
+ }
return $test;
}
//-------------------------------------------------------------------------------------------------
-start_table("$table_style width=80%");
+start_table(TABLESTYLE, "width=80%");
$th = array(_("Test"), _('Test type'), _("Value"), _("Comments"));
table_header($th);
$comm = is_array(@$result['comments']) ? implode('<br>', $result['comments'])
: @$result['comments'];
- label_cell($result['result'] ? _('Ok') : '<b>'.$comm.'</b>');
+ $color = ($result['result'] ? 'green':
+ ($result['type']==3 ? 'red' :
+ ($result['type']==2 ? 'orange' : 'green')));
+ label_cell("<span style='color:$color'>".
+ ($result['result'] ? _('Ok') : '<b>'.$comm.'</b>').'</span>');
end_row();
}