aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--install/ElggInstaller.php21
-rw-r--r--install/cli/sample_installer.php1
2 files changed, 18 insertions, 4 deletions
diff --git a/install/ElggInstaller.php b/install/ElggInstaller.php
index 59ac44dc6..657f0907f 100644
--- a/install/ElggInstaller.php
+++ b/install/ElggInstaller.php
@@ -39,6 +39,7 @@ class ElggInstaller {
);
protected $status = array(
+ 'config' => FALSE,
'database' => FALSE,
'settings' => FALSE,
'admin' => FALSE,
@@ -119,6 +120,9 @@ class ElggInstaller {
* 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
*
@@ -169,15 +173,22 @@ class ElggInstaller {
}
}
- 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
@@ -597,6 +608,8 @@ class ElggInstaller {
$this->loadSettingsFile();
+ $this->status['config'] = TRUE;
+
// must be able to connect to database to jump install steps
$dbSettingsPass = $this->checkDatabaseSettings(
$CONFIG->dbuser,
diff --git a/install/cli/sample_installer.php b/install/cli/sample_installer.php
index 10838b562..954169a6a 100644
--- a/install/cli/sample_installer.php
+++ b/install/cli/sample_installer.php
@@ -15,6 +15,7 @@ $params = array(
// site settings
'sitename' => '',
+ 'siteemail' => '',
'wwwroot' => '',
'dataroot' => '',