From 772d883290d211db067357ecdde54b929a38e26b Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 20 Jun 2006 23:00:55 +0000 Subject: [PATCH] check_install reads now further checks from the setup.inc.php file of the apps --- setup/check_install.php | 104 +++++++++++++++++++++++++++++---------- setup/lang/phpgw_de.lang | 6 +-- setup/lang/phpgw_en.lang | 6 +-- 3 files changed, 85 insertions(+), 31 deletions(-) diff --git a/setup/check_install.php b/setup/check_install.php index ce33b43ecd..af7c230ee0 100644 --- a/setup/check_install.php +++ b/setup/check_install.php @@ -56,9 +56,9 @@ $checks = array( 'phpversion' => array( 'func' => 'php_version', - 'value' => 4.3, - 'verbose_value' => '4.3+', - 'recommended' => '5.0', + 'value' => $GLOBALS['egw_setup']->required_php_version, + 'verbose_value' => $GLOBALS['egw_setup']->required_php_version.'+', + 'recommended' => $GLOBALS['egw_setup']->recommended_php_version, ), 'safe_mode' => array( 'func' => 'php_ini_check', @@ -109,28 +109,28 @@ ), 'mysql' => array( 'func' => 'extension_check', - 'warning' => "
" . lang('The %1 extension is needed, if you plan to use a %2 database.','mysql','MySQL').'
' + 'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','mysql','MySQL') ), 'pgsql' => array( 'func' => 'extension_check', - 'warning' => '
' . lang('The %1 extension is needed, if you plan to use a %2 database.','pgsql','pgSQL').'
' + 'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','pgsql','pgSQL') ), 'mssql' => array( 'func' => 'extension_check', - 'warning' => '
' . lang('The %1 extension is needed, if you plan to use a %2 database.','mssql','MsSQL') . '
', + 'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','mssql','MsSQL'), 'win_only' => True ), 'odbc' => array( 'func' => 'extension_check', - 'warning' => '
' . lang('The %1 extension is needed, if you plan to use a %2 database.','odbc','MaxDB, MsSQL or Oracle') . '
', + 'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','odbc','MaxDB, MsSQL or Oracle'), ), 'oci8' => array( 'func' => 'extension_check', - 'warning' => '
' . lang('The %1 extension is needed, if you plan to use a %2 database.','oci','Oracle') . '
', + 'warning' => lang('The %1 extension is needed, if you plan to use a %2 database.','oci','Oracle'), ), 'mbstring' => array( 'func' => 'extension_check', - 'warning' => '
' . lang('The mbstring extension is needed to fully support unicode (utf-8) or other multibyte-charsets.') . "
" + 'warning' => lang('The mbstring extension is needed to fully support unicode (utf-8) or other multibyte-charsets.') ), 'mbstring.func_overload' => array( 'func' => 'php_ini_check', @@ -138,21 +138,18 @@ 'warning' => '
' . lang('The mbstring.func_overload = 7 is needed to fully support unicode (utf-8) or other multibyte-charsets.') . "
", 'change' => extension_loaded('mbstring') || function_exists('dl') && @dl(PHP_SHLIB_PREFIX.'mbstring.'.PHP_SHLIB_SUFFIX) ? 'mbstring.func_overload = 7' : '', ), - 'imap' => array( - 'func' => 'extension_check', - 'warning' => '
' . lang('The imap extension is needed by the two email apps (even if you use email with pop3 as protocoll).') . '
' - ), 'session' => array( 'func' => 'extension_check', - 'warning' => '
' . lang('The session extension is needed to use php sessions (db-sessions work without).') . "
" + 'warning' => lang('The session extension is needed to use php sessions (db-sessions work without).') ), + // leave SyncML checks here for now, as it is no app atm. '' => array( 'func' => 'pear_check', - 'warning' => '
' . lang('PEAR is needed by SyncML or the iCal import+export of calendar.') . "
" + 'from' => 'SyncML', ), 'Log' => array( 'func' => 'pear_check', - 'warning' => '
' . lang('PEAR::Log is needed by SyncML.').' '.lang('You can install it by running:').' pear install Log' . "
" + 'from' => 'SyncML', ), 'gd' => array( 'func' => 'gd_check', @@ -167,13 +164,53 @@ 'is_world_readable' => False, 'only_if_exists' => @$GLOBALS['egw_info']['setup']['stage']['header'] != 10 ), - 'fudforum' => array( - 'func' => 'permission_check', - 'is_writable' => True, - 'only_if_exists' => True - ), ); + $setup_info = $GLOBALS['egw_setup']->detection->get_versions(); + foreach($setup_info as $app => $app_data) + { + if (!isset($app_data['check_install'])) continue; + foreach ($app_data['check_install'] as $name => $data) + { + if (isset($checks[$name])) + { + if ($checks[$name] == $data) continue; // identical check --> ignore it + + if ($data['func'] == 'pear_check' || $data['func'] == 'extension_check' && !isset($args['warning'])) + { + if ($checks[$name]['from'] && !is_array($checks[$name]['from'])) + { + $checks[$name]['from'] = array($checks[$name]['from']); + } + $checks[$name]['from'][] = $data['from'] ? $data['from'] : $app; + } + else + { + $checks[$app.'_'.$name] = $data; + } + } + else + { + $checks[$name] = $data; + } + //echo "added check $data[func]($name) for $app"; _debug_array($data); + } + } + $sorted_checks = array(); + foreach(array('php_version','php_ini_check','extension_check','pear_check','gd_check','permission_check') as $func) + { + foreach($checks as $name => $data) + { + if ($data['func'] == $func) + { + $sorted_checks[$name] = $data; + unset($checks[$name]); + } + } + } + if ($checks) $sorted_checks += $checks; + $checks =& $sorted_checks; + // some constants for pre php4.3 if (!defined('PHP_SHLIB_SUFFIX')) { @@ -211,7 +248,8 @@ } if ($pear_available && $package) { - $available = @include($package.'.php'); + $file = str_replace('_','/',$package).'.php'; + $available = @include($file); if (!class_exists($package)) $available = false; @@ -219,10 +257,21 @@ lang('Checking PEAR%1 is installed','::'.$package).': '.($available ? lang('True') : lang('False'))."\n"; } $available = $pear_available && (!$package || $available); - + if (!$available) { - echo $args['warning']; + echo '
' . lang('PEAR%1 is needed by: %2.',$package ? '::'.$package : '', + is_array($args['from']) ? implode(', ',$args['from']) : $args['from']); + if ($package) + { + echo ' '.lang('You can install it by running:').' pear install '.$package; + } + else + { + echo ' '.lang('PEAR (%1) is a PHP repository and is usually in a package called %2.', + 'pear.php.net','php-pear'); + } + echo "
"; } echo "\n"; @@ -244,7 +293,12 @@ if (!$available) { - echo $args['warning']; + if (!isset($args['warning'])) + { + $args['warning'] = lang('The %1 extension is needed from: %2.',$name, + is_array($args['from'] ? implode(', ',$args['from']) : $args['from'])); + } + echo "
".$args['warning'].'
'; } echo "\n"; diff --git a/setup/lang/phpgw_de.lang b/setup/lang/phpgw_de.lang index 7ea754c371..a6b0b73a9a 100644 --- a/setup/lang/phpgw_de.lang +++ b/setup/lang/phpgw_de.lang @@ -389,8 +389,8 @@ path information setup de Pfadinformationen path of egroupware install directory (default auto-detected) setup de Pfad des eGroupWare Installationsverzeichnis (Vorgabe wird automatisch erkannt) path to user and group files has to be outside of the webservers document-root!!! setup de Pfad zu Benutzer und Gruppen Dateien MUSS AUSSERHALB des Wurzelverzeichnisses (document root) des Webservers sein!!! path to various directories: have to exist and be writeable by the webserver setup de Pfade zu verschiedenen Verzeichnissen: Diese müssen vorhanden sein und vom Webserver beschreibbar -pear is needed by syncml or the ical import+export of calendar. setup de PEAR wird von SyncML oder dem iCal Import+Export des Kalenders benötigt. -pear::log is needed by syncml. setup de PEAR::Log wird von SyncML benötigt. +pear (%1) is a php repository and is usually in a package called %2. setup de PEAR (%1) ist eine PHP Sammlung und ist überlicherweise in einem Packet namens %2. +pear%1 is needed by: %2. setup de PEAR%1 wird benötigt von: %2. persistent connections setup de Permanente Verbindungen php plus restore setup de PHP plus Wiederherstellen php plus restore gives by far the best performance, as it stores the egw enviroment completly in the session. setup de PHP plus Wiederherstellen gibt bei weitem die beste Performanze. Es speichert die eGW Umgebung komplett in der Session. @@ -502,12 +502,12 @@ tables upgraded setup de Tabellen wurden aktualisiert target version setup de Ziel Version tcp port number of database server setup de TCP-Port des Datenbank-Servers text entry setup de Texteingabe +the %1 extension is needed from: %2. setup de Die %1 Erweiterung (php-extension) wird benötigt von: %2. the %1 extension is needed, if you plan to use a %2 database. setup de Die %1 Erweiterung (php extension) wird benötigt, wenn Sie die %2 Datenbank einsetzen wollen. the db_type in defaults (%1) is not supported on this server. using first supported type. setup de Der Datenbanktyp in den Vorgaben (%1) wird von diesem Server nicht unterstützt, verwende ersten unterstützten Typ. the file setup de der Datei the first step in installing egroupware is to ensure your environment has the necessary settings to correctly run the application. setup de Der erste Schritt bei Installation von eGroupWare ist sicherzustellen, dass Ihre Umgebung die notwendigen Einstellungen hat, um die Anwendung korrekt auszuführen. the following applications need to be upgraded: setup de Die folgenden Anwendungen müssen aktualisiert werden: -the imap extension is needed by the two email apps (even if you use email with pop3 as protocoll). setup de Die imap Erweiterung (php extension) wird von den beiden Email Applikationen benötigt (auch wenn Sie das POP3-Protokoll verwenden). the mbstring extension is needed to fully support unicode (utf-8) or other multibyte-charsets. setup de Die mbstring Erweiterung (php extension) ist notwendig um Unicode (utf-8) oder andere mehr-byte (multibyte) Zeichensätze vollständig zu unterstützen. the mbstring.func_overload = 7 is needed to fully support unicode (utf-8) or other multibyte-charsets. setup de Die Einstellung mbstring.func_overload = 7 ist notwendig um Unicode (utf-8) oder andere mehr-byte (multibyte) Zeichensätze vollständig zu unterstützen. the session extension is needed to use php sessions (db-sessions work without). setup de Die session Erweiterung (php extension) ist notwendig für PHP Sessions (Datenbank Sessions arbeiten ohne diese). diff --git a/setup/lang/phpgw_en.lang b/setup/lang/phpgw_en.lang index dc80a82df5..721832f415 100644 --- a/setup/lang/phpgw_en.lang +++ b/setup/lang/phpgw_en.lang @@ -387,8 +387,8 @@ path information setup en Path information path of egroupware install directory (default auto-detected) setup en path of eGroupWare install directory (default auto-detected) path to user and group files has to be outside of the webservers document-root!!! setup en Path to user and group files HAS TO BE OUTSIDE of the webservers document-root!!! path to various directories: have to exist and be writeable by the webserver setup en path to various directories: have to exist and be writeable by the webserver -pear is needed by syncml or the ical import+export of calendar. setup en PEAR is needed by SyncML or the iCal import+export of calendar. -pear::log is needed by syncml. setup en PEAR::Log is needed by SyncML. +pear (%1) is a php repository and is usually in a package called %2. setup en PEAR (%1) is a PHP repository and is usually in a package called %2. +pear%1 is needed by: %2. setup en PEAR%1 is needed by: %2. persistent connections setup en Persistent connections php plus restore setup en PHP plus restore php plus restore gives by far the best performance, as it stores the egw enviroment completly in the session. setup en PHP plus restore gives by far the best performance, as it stores the eGW enviroment completly in the session. @@ -500,12 +500,12 @@ tables upgraded setup en tables upgraded target version setup en Target Version tcp port number of database server setup en TCP port number of database server text entry setup en Text Entry +the %1 extension is needed from: %2. setup en The %1 extension is needed from: %2. the %1 extension is needed, if you plan to use a %2 database. setup en The %1 extension is needed, if you plan to use a %2 database. the db_type in defaults (%1) is not supported on this server. using first supported type. setup en The db_type in defaults (%1) is not supported on this server. using first supported type. the file setup en the file the first step in installing egroupware is to ensure your environment has the necessary settings to correctly run the application. setup en The first step in installing eGroupWare is to ensure your environment has the necessary settings to correctly run the application. the following applications need to be upgraded: setup en The following applications need to be upgraded: -the imap extension is needed by the two email apps (even if you use email with pop3 as protocoll). setup en The imap extension is needed by the two email apps (even if you use email with pop3 as protocoll). the mbstring extension is needed to fully support unicode (utf-8) or other multibyte-charsets. setup en The mbstring extension is needed to fully support unicode (utf-8) or other multibyte-charsets. the mbstring.func_overload = 7 is needed to fully support unicode (utf-8) or other multibyte-charsets. setup en The mbstring.func_overload = 7 is needed to fully support unicode (utf-8) or other multibyte-charsets. the session extension is needed to use php sessions (db-sessions work without). setup en The session extension is needed to use php sessions (db-sessions work without).