From c7559da210c9dba080ff5de243240b3be7f2c857 Mon Sep 17 00:00:00 2001 From: cash Date: Tue, 12 Oct 2010 10:58:36 +0000 Subject: better handling of settings file issues during installation git-svn-id: http://code.elgg.org/elgg/trunk@7063 36083f99-b078-4883-b0ff-0f9b5a30f544 --- install/ElggInstaller.php | 27 ++++++++++++++++++--------- install/languages/en.php | 3 ++- 2 files changed, 20 insertions(+), 10 deletions(-) (limited to 'install') diff --git a/install/ElggInstaller.php b/install/ElggInstaller.php index 57940dda3..e8220ff45 100644 --- a/install/ElggInstaller.php +++ b/install/ElggInstaller.php @@ -5,7 +5,7 @@ * * @package Elgg * @subpackage Installer - * @author Curverider Ltd + * @author Cash Costello and Curverider Ltd * @link http://elgg.org/ */ @@ -141,7 +141,7 @@ class ElggInstaller { $this->checkRewriteRules($report); // check for existence of settings file - if ($this->checkSettingsFile() != TRUE) { + if ($this->checkSettingsFile($report) != TRUE) { // no file, so check permissions on engine directory $this->checkEngineDir($report); } @@ -459,8 +459,7 @@ class ElggInstaller { protected function setInstallStatus() { global $CONFIG; - $settingsCreated = $this->checkSettingsFile(); - if ($settingsCreated == FALSE) { + if (!is_readable("{$CONFIG->path}engine/settings.php")) { return; } @@ -746,7 +745,7 @@ class ElggInstaller { $writable = is_writable("{$CONFIG->path}engine"); if (!$writable) { - $report['engine'] = array( + $report['settings'] = array( array( 'severity' => 'failure', 'message' => elgg_echo('install:check:enginedir'), @@ -760,16 +759,26 @@ class ElggInstaller { /** * Check that the settings file exists + * @param array $report * @return bool */ - protected function checkSettingsFile() { + protected function checkSettingsFile(&$report) { global $CONFIG; - if (is_readable("{$CONFIG->path}engine/settings.php")) { - return TRUE; + if (!file_exists("{$CONFIG->path}engine/settings.php")) { + return FALSE; } - return FALSE; + if (!is_readable("{$CONFIG->path}engine/settings.php")) { + $report['settings'] = array( + array( + 'severity' => 'failure', + 'message' => elgg_echo('install:check:readsettings'), + ) + ); + } + + return TRUE; } /** diff --git a/install/languages/en.php b/install/languages/en.php index 049fd4ad4..455515b61 100644 --- a/install/languages/en.php +++ b/install/languages/en.php @@ -26,7 +26,7 @@ If you are ready to proceed, click the Next button.", 'install:require:php' => 'PHP', 'install:require:rewrite' => 'Web server', - 'install:require:engine' => 'Settings file', + 'install:require:settings' => 'Settings file', 'install:require:database' => 'Database', 'install:check:root' => 'Your web server does not have permission to create an .htaccess file in the root directory of Elgg. You have two choices: @@ -46,6 +46,7 @@ If you are ready to proceed, click the Next button.", 1. Change the permissions on the engine directory 2. Copy the file settings.example.php to settings.php and follow the instructions in it for setting your database parameters.', + 'install:check:readsettings' => 'A settings file exists in the engine directory, but the web server cannot read it. You can delete the file or change the read permissions on it.', 'install:check:php:success' => "Your server's PHP satisfies all of Elgg's requirements.", 'install:check:rewrite:success' => 'The test of the rewrite rules was successful.', -- cgit v1.2.3