);
protected $status = array(
+ 'config' => FALSE,
'database' => FALSE,
'settings' => FALSE,
'admin' => FALSE,
* account. If it fails, an exception is thrown. It does not check any of
* the requirements as the multiple step web installer does.
*
+ * If the settings.php file exists, it will use that rather than the parameters
+ * passed to this function.
+ *
* @param array $params Array of key value pairs
* @param bool $createHtaccess Should .htaccess be created
*
}
}
- if (!$this->createSettingsFile($params)) {
- throw new InstallationException(elgg_echo('install:error:settings'));
+ $this->setInstallStatus();
+
+ if (!$this->status['config']) {
+ if (!$this->createSettingsFile($params)) {
+ throw new InstallationException(elgg_echo('install:error:settings'));
+ }
}
if (!$this->connectToDatabase()) {
throw new InstallationException(elgg_echo('install:error:databasesettings'));
}
- if (!$this->installDatabase()) {
- throw new InstallationException(elgg_echo('install:error:cannotloadtables'));
+
+ if (!$this->status['database']) {
+ if (!$this->installDatabase()) {
+ throw new InstallationException(elgg_echo('install:error:cannotloadtables'));
+ }
}
// load remaining core libraries
$this->loadSettingsFile();
+ $this->status['config'] = TRUE;
+
// must be able to connect to database to jump install steps
$dbSettingsPass = $this->checkDatabaseSettings(
$CONFIG->dbuser,