From 71f759148251b78901d524abb5467fb0f4ea0cfc Mon Sep 17 00:00:00 2001 From: Ivan Tcholakov Date: Wed, 10 Feb 2010 18:23:51 +0200 Subject: [PATCH] Feature #272 - The installation script: Some minor corrections and cosmetic changes. --- main/install/index.php | 571 +++++++++++++++++++---------------------- 1 file changed, 258 insertions(+), 313 deletions(-) diff --git a/main/install/index.php b/main/install/index.php index 7869e49002..cbbfba0f2b 100755 --- a/main/install/index.php +++ b/main/install/index.php @@ -11,7 +11,7 @@ * * @todo reduce high level of duplication in this code * @todo (busy) organise code into functions -* @package dokeos.install +* @package chamilo.install ============================================================================== */ @@ -24,7 +24,7 @@ // PHP version requirement. define('REQUIRED_PHP_VERSION', '5'); -if ( !function_exists('version_compare') || version_compare( phpversion(), REQUIRED_PHP_VERSION, '<' )) { +if (!function_exists('version_compare') || version_compare( phpversion(), REQUIRED_PHP_VERSION, '<')) { $global_error_code = 1; // Incorrect PHP version. require '../inc/global_error_message.inc.php'; @@ -33,25 +33,29 @@ if ( !function_exists('version_compare') || version_compare( phpversion(), REQUI /* ============================================================================== - INIT SECTION + INITIALIZATION SECTION ============================================================================== */ + session_start(); -// Including necessary files + +// Including necessary core libraries. @include '../inc/installedVersion.inc.php'; require '../inc/lib/main_api.lib.php'; +// Loading language files. require '../lang/english/trad4all.inc.php'; require '../lang/english/install.inc.php'; - if (!empty($_POST['language_list'])) { - $search = array('../','\\0'); - $install_language = str_replace($search,'',urldecode($_POST['language_list'])); - if(!is_dir('../lang/'.$install_language)){$install_language = 'english';} + $search = array('../', '\\0'); + $install_language = str_replace($search, '', urldecode($_POST['language_list'])); + if (!is_dir('../lang/'.$install_language)) { + $install_language = 'english'; + } include_once "../lang/$install_language/trad4all.inc.php"; include_once "../lang/$install_language/install.inc.php"; api_session_register('install_language'); -} elseif ( isset($_SESSION['install_language']) && $_SESSION['install_language'] ) { +} elseif (isset($_SESSION['install_language']) && $_SESSION['install_language']) { $install_language = $_SESSION['install_language']; include_once "../lang/$install_language/trad4all.inc.php"; include_once "../lang/$install_language/install.inc.php"; @@ -64,25 +68,25 @@ $language_interface_initial_value = $install_language; // Character set during the installation, it is always to be 'UTF-8'. $charset = 'UTF-8'; -// Page encoding initialization. -header('Content-Type: text/html; charset='. $charset); - // Initialization of the internationalization library. api_initialize_internationalization(); // Initialization of the default encoding that will be used by the multibyte string routines in the internationalization library. api_set_internationalization_default_encoding($charset); +// Page encoding initialization. +header('Content-Type: text/html; charset='. api_get_system_encoding()); + require_once 'install_upgrade.lib.php'; //also defines constants require_once 'install_functions.inc.php'; // Some constants -define('DOKEOS_INSTALL',1); -define('MAX_COURSE_TRANSFER',100); +define('DOKEOS_INSTALL', 1); +define('MAX_COURSE_TRANSFER', 100); define('INSTALL_TYPE_UPDATE', 'update'); define('FORM_FIELD_DISPLAY_LENGTH', 40); define('DATABASE_FORM_FIELD_DISPLAY_LENGTH', 25); define('MAX_FORM_FIELD_LENGTH', 80); -define('DEFAULT_LANGUAGE', 'english'); +define('DEFAULT_LANGUAGE', 'english'); // TODO: To be examined. // setting the error reporting error_reporting(E_COMPILE_ERROR | E_ERROR | E_CORE_ERROR); @@ -90,25 +94,24 @@ error_reporting(E_COMPILE_ERROR | E_ERROR | E_CORE_ERROR); // overriding the timelimit (for large campusses that have to be migrated) @set_time_limit(0); -//upgrading from any subversion of 1.6 is just like upgrading from 1.6.5 -$update_from_version_6=array('1.6','1.6.1','1.6.2','1.6.3','1.6.4','1.6.5'); -//upgrading from any subversion of 1.8 avoids the additional step of upgrading from 1.6 -$update_from_version_8=array('1.8','1.8.2','1.8.3','1.8.4','1.8.5','1.8.6','1.8.6.1','1.8.6.2'); +// upgrading from any subversion of 1.6 is just like upgrading from 1.6.5 +$update_from_version_6 = array('1.6', '1.6.1', '1.6.2', '1.6.3', '1.6.4', '1.6.5'); +// upgrading from any subversion of 1.8 avoids the additional step of upgrading from 1.6 +$update_from_version_8 = array('1.8', '1.8.2', '1.8.3', '1.8.4', '1.8.5', '1.8.6', '1.8.6.1', '1.8.6.2'); $my_old_version = ''; $tmp_version = get_config_param('dokeos_version'); -if(!empty($_POST['old_version'])) { +if (!empty($_POST['old_version'])) { $my_old_version = $_POST['old_version']; -} elseif(!empty($tmp_version)) { +} elseif (!empty($tmp_version)) { $my_old_version = $tmp_version; -} -elseif(!empty($dokeos_version)) //variable coming from installedVersion, normally -{ +} elseif (!empty($dokeos_version)) { //variable coming from installedVersion, normally $my_old_version = $dokeos_version; } $new_version = '1.8.7'; $new_version_stable = false; $new_version_major = true; + /* ============================================================================== STEP 1 : INITIALIZES FORM VARIABLES IF IT IS THE FIRST VISIT @@ -116,116 +119,86 @@ $new_version_major = true; */ //Is valid request -$is_valid_request=$_REQUEST['is_executable']; -foreach ($_POST as $request_index=>$request_value) { - if (substr($request_index,0,4)=='step') { - if ($request_index<>$is_valid_request) { +$is_valid_request = $_REQUEST['is_executable']; +foreach ($_POST as $request_index => $request_value) { + if (substr($request_index, 0, 4) == 'step') { + if ($request_index != $is_valid_request) { unset($_POST[$request_index]); } } } -$badUpdatePath=false; -$emptyUpdatePath=true; +$badUpdatePath = false; +$emptyUpdatePath = true; $proposedUpdatePath = ''; -if(!empty($_POST['updatePath'])) -{ +if(!empty($_POST['updatePath'])) { $proposedUpdatePath = $_POST['updatePath']; } if ($_POST['step2_install'] || $_POST['step2_update_8'] || $_POST['step2_update_6']) { if ($_POST['step2_install']) { - $installType='new'; - - $_POST['step2']=1; + $installType = 'new'; + $_POST['step2'] = 1; } else { - $installType='update'; - if($_POST['step2_update_8']) - { + $installType = 'update'; + if ($_POST['step2_update_8']) { $emptyUpdatePath = false; - if(empty($_POST['updatePath'])) - { + if(empty($_POST['updatePath'])) { $proposedUpdatePath = $_SERVER['DOCUMENT_ROOT']; - } - else - { + } else { $proposedUpdatePath = $_POST['updatePath']; } - if(substr($proposedUpdatePath,-1) != '/') - { - $proposedUpdatePath.='/'; + if (substr($proposedUpdatePath,-1) != '/') { + $proposedUpdatePath .= '/'; } - if(file_exists($proposedUpdatePath)) - { - if(in_array($my_old_version,$update_from_version_8)) - { - $_POST['step2']=1; + if (file_exists($proposedUpdatePath)) { + if (in_array($my_old_version,$update_from_version_8)) { + $_POST['step2'] = 1; + } else { + $badUpdatePath = true; } - else - { - $badUpdatePath=true; - } - } - else - { - $badUpdatePath=true; - } - } - else //step2_update_6, presumably - { - if(empty($_POST['updatePath'])) - { - $_POST['step1']=1; + } else { + $badUpdatePath = true; } - else - { + } else { //step2_update_6, presumably + if (empty($_POST['updatePath'])) { + $_POST['step1'] = 1; + } else { $emptyUpdatePath = false; - if(substr($_POST['updatePath'],-1) != '/') - { - $_POST['updatePath'].='/'; + if(substr($_POST['updatePath'], -1) != '/') { + $_POST['updatePath'] .= '/'; } - if(file_exists($_POST['updatePath'])) - { + if (file_exists($_POST['updatePath'])) { //1.6.x - $my_old_version = get_config_param('clarolineVersion',$_POST['updatePath']); - if(in_array($my_old_version,$update_from_version_6)) - { - $_POST['step2']=1; + $my_old_version = get_config_param('clarolineVersion', $_POST['updatePath']); + if (in_array($my_old_version, $update_from_version_6)) { + $_POST['step2'] = 1; $proposedUpdatePath = $_POST['updatePath']; + } else { + $badUpdatePath = true; } - else - { - $badUpdatePath=true; - } - } - else - { - $badUpdatePath=true; + } else { + $badUpdatePath = true; } } } } -} -elseif($_POST['step1']) -{ - $_POST['updatePath']=''; - $installType=''; - $updateFromConfigFile=''; +} elseif($_POST['step1']) { + $_POST['updatePath'] = ''; + $installType = ''; + $updateFromConfigFile = ''; unset($_GET['running']); -} -else -{ - $installType=$_GET['installType']; - $updateFromConfigFile=$_GET['updateFromConfigFile']; +} else { + $installType = $_GET['installType']; + $updateFromConfigFile = $_GET['updateFromConfigFile']; } -if($installType=='update' && in_array($my_old_version,$update_from_version_8)) -{ +if ($installType == 'update' && in_array($my_old_version, $update_from_version_8)) { include_once '../inc/conf/configuration.php'; } -if(!isset($_GET['running'])) { +if (!isset($_GET['running'])) { $dbHostForm ='localhost'; $dbUsernameForm ='root'; @@ -237,14 +210,13 @@ if(!isset($_GET['running'])) { $dbUserForm ='chamilo_user'; // extract the path to append to the url if Chamilo is not installed on the web root directory - $urlAppendPath=str_replace('/main/install/index.php','',api_get_self()); - $urlForm='http://'.$_SERVER['HTTP_HOST'].$urlAppendPath.'/'; - $pathForm=str_replace('\\','/',realpath('../..')).'/'; - - $emailForm=$_SERVER['SERVER_ADMIN']; - $email_parts = explode('@',$emailForm); - if($email_parts[1] == 'localhost') - { + $urlAppendPath = str_replace('/main/install/index.php', '', api_get_self()); + $urlForm = 'http://'.$_SERVER['HTTP_HOST'].$urlAppendPath.'/'; + $pathForm = str_replace('\\', '/', realpath('../..')).'/'; + + $emailForm = $_SERVER['SERVER_ADMIN']; + $email_parts = explode('@', $emailForm); + if ($email_parts[1] == 'localhost') { $emailForm .= '.localdomain'; } $adminLastName = 'Doe'; @@ -255,86 +227,61 @@ if(!isset($_GET['running'])) { $campusForm = 'My campus'; $educationForm = 'Albert Einstein'; $adminPhoneForm = '(000) 001 02 03'; - $institutionForm= 'My Organisation'; - $institutionUrlForm= 'http://www.chamilo.org'; - $languageForm = 'english'; - - $checkEmailByHashSent=0; - $ShowEmailnotcheckedToStudent=1; - $userMailCanBeEmpty=1; - $allowSelfReg=1; - $allowSelfRegProf=1; - $enableTrackingForm=1; - $singleDbForm=0; - $encryptPassForm='md5'; - $session_lifetime=360000; + $institutionForm = 'My Organisation'; + $institutionUrlForm = 'http://www.chamilo.org'; + $languageForm = 'english'; + + $checkEmailByHashSent = 0; + $ShowEmailnotcheckedToStudent = 1; + $userMailCanBeEmpty = 1; + $allowSelfReg = 1; + $allowSelfRegProf = 1; + $enableTrackingForm = 1; + $singleDbForm = 0; + $encryptPassForm = 'md5'; + $session_lifetime = 360000; } else { - foreach($_POST as $key=>$val) - { - $magic_quotes_gpc=ini_get('magic_quotes_gpc')?true:false; - - if(is_string($val)) - { - if($magic_quotes_gpc) - { - $val=stripslashes($val); + foreach($_POST as $key => $val) { + $magic_quotes_gpc = ini_get('magic_quotes_gpc') ? true : false; + if (is_string($val)) { + if ($magic_quotes_gpc) { + $val = stripslashes($val); } - - $val=trim($val); - - $_POST[$key]=$val; - } - elseif(is_array($val)) - { - foreach($val as $key2=>$val2) - { - if($magic_quotes_gpc) - { - $val2=stripslashes($val2); + $val = trim($val); + $_POST[$key] = $val; + } elseif(is_array($val)) { + foreach ($val as $key2 => $val2) { + if ($magic_quotes_gpc) { + $val2 = stripslashes($val2); } - - $val2=trim($val2); - - $_POST[$key][$key2]=$val2; + $val2 = trim($val2); + $_POST[$key][$key2] = $val2; } } - - $GLOBALS[$key]=$_POST[$key]; + $GLOBALS[$key] = $_POST[$key]; } } // The Steps -$total_steps=7; -if (!$_POST) -{ - $current_step=1; -} -elseif (!empty($_POST['language_list']) or !empty($_POST['step1']) or ((!empty($_POST['step2_update_8']) or (!empty($_POST['step2_update_6']))) && ($emptyUpdatePath or $badUpdatePath))) -{ - $current_step=2; -} -elseif (!empty($_POST['step2']) or (!empty($_POST['step2_update_8']) or (!empty($_POST['step2_update_6'])) )) -{ - $current_step=3; -} -elseif (!empty($_POST['step3'])) -{ - $current_step=4; -} -elseif (!empty($_POST['step4'])) -{ - $current_step=5; +$total_steps = 7; +if (!$_POST) { + $current_step = 1; +} elseif (!empty($_POST['language_list']) or !empty($_POST['step1']) or ((!empty($_POST['step2_update_8']) or (!empty($_POST['step2_update_6']))) && ($emptyUpdatePath or $badUpdatePath))) { + $current_step = 2; +} elseif (!empty($_POST['step2']) or (!empty($_POST['step2_update_8']) or (!empty($_POST['step2_update_6'])) )) { + $current_step = 3; +} elseif (!empty($_POST['step3'])) { + $current_step = 4; +} elseif (!empty($_POST['step4'])) { + $current_step = 5; +} elseif (!empty($_POST['step5'])) { + $current_step = 6; } -elseif (!empty($_POST['step5'])) -{ - $current_step=6; -} - // Managing the $encryptPassForm -if ($encryptPassForm=='1' ) { +if ($encryptPassForm == '1') { $encryptPassForm = 'md5'; -} elseif ($encryptPassForm=='0') { +} elseif ($encryptPassForm == '0') { $encryptPassForm = 'none'; } @@ -417,11 +364,9 @@ if ($encryptPassForm=='1' ) { } } - - - + - +
@@ -429,13 +374,13 @@ if ($encryptPassForm=='1' ) {
- +
 
    -
  • +
@@ -466,137 +411,138 @@ if ($encryptPassForm=='1' ) { - - - - - - - - - - + + + + + + + + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

- +
- +
@@ -604,22 +550,19 @@ elseif($_POST['step5'])

-
- '; ?> - '.$dbNameForm; ?>'.get_lang('ReadWarningBelow').')'; ?>
+
+ '; ?> + '.$dbNameForm; ?>'.get_lang('ReadWarningBelow').')'; ?>
'.$dbStatsForm.''; - if($installType == 'new') - { + if (!$singleDbForm) { + echo get_lang('StatDB').' : '.$dbStatsForm.''; + if ($installType == 'new') { echo ' ('.get_lang('ReadWarningBelow').')'; } echo '
'; - echo get_lang('UserDB').' : '.$dbUserForm.''; - if($installType == 'new') - { + echo get_lang('UserDB').' : '.$dbUserForm.''; + if ($installType == 'new') { echo ' ('.get_lang('ReadWarningBelow').')'; } echo '
'; @@ -644,8 +587,8 @@ elseif($_POST['step5'])
- '.$loginForm; ?>
- '.$passForm; ?>

+ '.$loginForm; ?>
+ '.$passForm; /* TODO: Maybe this password should be hidden too? */ ?>


@@ -659,10 +602,10 @@ elseif($_POST['step5'])
-

+

!
- -

+ +

@@ -674,20 +617,18 @@ elseif($_POST['step5']) @@ -755,7 +700,7 @@ elseif($_POST['step6'])