diff options
Diffstat (limited to 'engine/lib/install.php')
-rw-r--r-- | engine/lib/install.php | 233 |
1 files changed, 112 insertions, 121 deletions
diff --git a/engine/lib/install.php b/engine/lib/install.php index 03abede14..1b363b950 100644 --- a/engine/lib/install.php +++ b/engine/lib/install.php @@ -1,126 +1,117 @@ <?php - /** - * Elgg installation - * Various functions to assist with installing and upgrading the system - * - * @package Elgg - * @subpackage Core - - * @author Curverider Ltd - - * @link http://elgg.org/ - */ - - /** - * Check that the installed version of PHP meets the minimum requirements (currently 5.2 or greater). - * - * @return bool - */ - function php_check_version() - { - /* - if ( // TODO: Remove this when Redhat pulls its finger out - (version_compare(phpversion(), '5.1.6', '>=')) && - (version_compare(phpversion(), '5.2.0', '<')) - ) - register_error(elgg_echo('configurationwarning:phpversion')); - */ - - if (version_compare(phpversion(), '5.1.2', '>=')) - return true; - +/** + * Elgg installation + * Various functions to assist with installing and upgrading the system + * + * @package Elgg + * @subpackage Core + * @author Curverider Ltd + * @link http://elgg.org/ + */ + +/** + * Check that the installed version of PHP meets the minimum requirements (currently 5.2 or greater). + * + * @return bool + */ +function php_check_version() { + if (version_compare(phpversion(), '5.1.2', '>=')) { + return true; + } + + return false; +} + +/** + * Validate the platform Elgg is being installed on. + * + * @throws ConfigurationException if the validation fails. + * @return bool + */ +function validate_platform() { + // Get database version + if (!db_check_version()) { + throw new ConfigurationException(elgg_echo('ConfigurationException:BadDatabaseVersion')); + } + + // Now check PHP + if (!php_check_version()) { + throw new ConfigurationException(elgg_echo('ConfigurationException:BadPHPVersion')); + } + + // TODO: Consider checking for installed modules etc + return true; +} + +/** + * Returns whether or not the database has been installed + * + * @return true|false Whether the database has been installed + */ +function is_db_installed() { + global $CONFIG; + + if (isset($CONFIG->db_installed)) { + return $CONFIG->db_installed; + } + + if ($dblink = get_db_link('read')) { + mysql_query("select name from {$CONFIG->dbprefix}datalists limit 1", $dblink); + if (mysql_errno($dblink) > 0) { return false; } - - /** - * Validate the platform Elgg is being installed on. - * - * @throws ConfigurationException if the validation fails. - * @return bool - */ - function validate_platform() - { - // Get database version - if (!db_check_version()) - throw new ConfigurationException(elgg_echo('ConfigurationException:BadDatabaseVersion')); - - // Now check PHP - if (!php_check_version()) - throw new ConfigurationException(elgg_echo('ConfigurationException:BadPHPVersion')); - - // TODO: Consider checking for installed modules etc - - return true; - } + } else { + return false; + } - /** - * Returns whether or not the database has been installed - * - * @return true|false Whether the database has been installed - */ - function is_db_installed() { - - global $CONFIG; - - if (isset($CONFIG->db_installed)) { - return $CONFIG->db_installed; - } - - if ($dblink = get_db_link('read')) { - mysql_query("select name from {$CONFIG->dbprefix}datalists limit 1",$dblink); - if (mysql_errno($dblink) > 0) return false; - } else return false; - - $CONFIG->db_installed = true; // Set flag if db is installed (if false then we want to check every time) - - return true; - - } - - /** - * Returns whether or not other settings have been set - * - * @return true|false Whether or not the rest of the installation has been followed through with - */ - function is_installed() { - - global $CONFIG; - return datalist_get('installed'); - - } - - /** - * Copy and create a new settings.php from settings.example.php, substituting the variables in - * $vars where appropriate. - * - * $vars is an associate array of $key => $value, where $key is the variable text you wish to substitute (eg - * CONFIG_DBNAME will replace {{CONFIG_DBNAME}} in the settings file. - * - * @param array $vars The array of vars - * @param string $in_file Optional input file (if not settings.example.php) - * @return string The file containing substitutions. - */ - function create_settings(array $vars, $in_file="engine/settings.example.php") - { - $file = file_get_contents($in_file); - - if (!$file) return false; - - foreach ($vars as $k => $v) - $file = str_replace("{{".$k."}}", $v, $file); - - return $file; - } - - /** - * Initialisation for installation functions - * - */ - function install_init() { - register_action("systemsettings/install",true); - } - - register_elgg_event_handler("boot","system","install_init"); - -?>
\ No newline at end of file + // Set flag if db is installed (if false then we want to check every time) + $CONFIG->db_installed = true; + + return true; +} + +/** + * Returns whether or not other settings have been set + * + * @return true|false Whether or not the rest of the installation has been followed through with + */ +function is_installed() { + global $CONFIG; + return datalist_get('installed'); +} + +/** + * Copy and create a new settings.php from settings.example.php, substituting the variables in + * $vars where appropriate. + * + * $vars is an associate array of $key => $value, where $key is the variable text you wish to substitute (eg + * CONFIG_DBNAME will replace {{CONFIG_DBNAME}} in the settings file. + * + * @param array $vars The array of vars + * @param string $in_file Optional input file (if not settings.example.php) + * @return string The file containing substitutions. + */ +function create_settings(array $vars, $in_file="engine/settings.example.php") { + $file = file_get_contents($in_file); + + if (!$file) { + return false; + } + + foreach ($vars as $k => $v) { + $file = str_replace("{{".$k."}}", $v, $file); + } + + return $file; +} + +/** + * Initialisation for installation functions + * + */ +function install_init() { + register_action("systemsettings/install",true); +} + +register_elgg_event_handler("boot","system","install_init");
\ No newline at end of file |