'UTF-8', 'server_type' => 'production', // 'production' | 'test' 'permissions_for_new_directories' => '0770', 'permissions_for_new_files' => '0660', 'stylesheets' => 'chamilo' ); // Determination of the language during the installation procedure. if (!empty($_POST['language_list'])) { $search = array('../', '\\0'); $install_language = str_replace($search, '', urldecode($_POST['language_list'])); Session::write('install_language',$install_language); } elseif (isset($_SESSION['install_language']) && $_SESSION['install_language']) { $install_language = $_SESSION['install_language']; } else { // Trying to switch to the browser's language, it is covenient for most of the cases. $install_language = detect_browser_language(); } // Language validation. if (!array_key_exists($install_language, get_language_folder_list())) { $install_language = 'english'; } // Loading language files. require api_get_path(SYS_LANG_PATH).'english/trad4all.inc.php'; require api_get_path(SYS_LANG_PATH).'english/admin.inc.php'; require api_get_path(SYS_LANG_PATH).'english/install.inc.php'; if ($install_language != 'english') { include_once api_get_path(SYS_LANG_PATH).$install_language.'/trad4all.inc.php'; include_once api_get_path(SYS_LANG_PATH).$install_language.'/install.inc.php'; include_once api_get_path(SYS_LANG_PATH).$install_language.'/admin.inc.php'; } // These global variables must be set for proper working of the function get_lang(...) during the installation. $language_interface = $install_language; $language_interface_initial_value = $install_language; // Character set during the installation, it is always to be 'UTF-8'. $charset = 'UTF-8'; // 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()); // Setting the error reporting levels. error_reporting(E_ALL); // 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','1.8.7','1.8.7.1','1.8.8','1.8.8.2', '1.8.8.4'); $my_old_version = ''; $tmp_version = get_config_param('dokeos_version'); if (empty($tmp_version)) { $tmp_version = get_config_param('system_version'); } if (!empty($_POST['old_version'])) { $my_old_version = $_POST['old_version']; } elseif (!empty($tmp_version)) { $my_old_version = $tmp_version; } elseif (!empty($dokeos_version)) { //variable coming from installedVersion, normally $my_old_version = $dokeos_version; } $new_version = '1.9.0'; $new_version_stable = false; $new_version_major = true; $software_name = 'Chamilo'; $software_url = 'http://www.chamilo.org/'; // A protection measure for already installed systems. if (is_already_installed_system()) { // The system has already been installed, so block re-installation. $global_error_code = 6; require '../inc/global_error_message.inc.php'; die(); } /* STEP 1 : INITIALIZES FORM VARIABLES IF IT IS THE FIRST VISIT */ // Is valid request $is_valid_request = isset($_REQUEST['is_executable']) ? $_REQUEST['is_executable'] : null; 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; $proposedUpdatePath = ''; 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; } else { $installType = 'update'; if (@$_POST['step2_update_8']) { $emptyUpdatePath = false; $proposedUpdatePath = api_add_trailing_slash(empty($_POST['updatePath']) ? api_get_path(SYS_PATH) : $_POST['updatePath']); if (file_exists($proposedUpdatePath)) { if (in_array($my_old_version, $update_from_version_8)) { $_POST['step2'] = 1; } else { $badUpdatePath = true; } } else { $badUpdatePath = true; } } else { //step2_update_6, presumably if (empty($_POST['updatePath'])) { $_POST['step1'] = 1; } else { $emptyUpdatePath = false; $_POST['updatePath'] = api_add_trailing_slash($_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; $proposedUpdatePath = $_POST['updatePath']; } else { $badUpdatePath = true; } } else { $badUpdatePath = true; } } } } } elseif (@$_POST['step1']) { $_POST['updatePath'] = ''; $installType = ''; $updateFromConfigFile = ''; unset($_GET['running']); } else { $installType = isset($_GET['installType']) ? $_GET['installType'] : null; $updateFromConfigFile = isset($_GET['updateFromConfigFile']) ? $_GET['updateFromConfigFile'] : false; } if ($installType == 'update' && in_array($my_old_version, $update_from_version_8)) { // This is the main configuration file of the system before the upgrade. include api_get_path(CONFIGURATION_PATH).'configuration.php'; // Don't change to include_once } if (!isset($_GET['running'])) { $dbHostForm = 'localhost'; $dbUsernameForm = 'root'; $dbPassForm = ''; $dbPrefixForm = ''; $dbNameForm = 'chamilo'; $dbStatsForm = 'chamilo'; $dbScormForm = 'chamilo'; $dbUserForm = 'chamilo'; // Extract the path to append to the url if Chamilo is not installed on the web root directory. $urlAppendPath = api_remove_trailing_slash(api_get_path(REL_PATH)); $urlForm = api_get_path(WEB_PATH); $pathForm = api_get_path(SYS_PATH); $emailForm = $_SERVER['SERVER_ADMIN']; $email_parts = explode('@', $emailForm); if (isset($email_parts[1]) && $email_parts[1] == 'localhost') { $emailForm .= '.localdomain'; } $adminLastName = 'Doe'; $adminFirstName = 'John'; $loginForm = 'admin'; $passForm = api_generate_password(); $campusForm = 'My campus'; $educationForm = 'Albert Einstein'; $adminPhoneForm = '(000) 001 02 03'; $institutionForm = 'My Organisation'; $institutionUrlForm = 'http://www.chamilo.org'; // TODO: A better choice to be tested: //$languageForm = 'english'; $languageForm = api_get_interface_language(); $checkEmailByHashSent = 0; $ShowEmailnotcheckedToStudent = 1; $userMailCanBeEmpty = 1; $allowSelfReg = 1; $allowSelfRegProf = 1; $enableTrackingForm = 1; $singleDbForm = 0; $encryptPassForm = 'sha1'; $session_lifetime = 360000; } else { foreach ($_POST as $key => $val) { $magic_quotes_gpc = ini_get('magic_quotes_gpc'); 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); } $val2 = trim($val2); $_POST[$key][$key2] = $val2; } } $GLOBALS[$key] = $_POST[$key]; } } /* NEXT STEPS IMPLEMENTATION */ $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; } // Managing the $encryptPassForm if ($encryptPassForm == '1') { $encryptPassForm = 'sha1'; } elseif ($encryptPassForm == '0') { $encryptPassForm = 'none'; } ?> — <?php echo get_lang('ChamiloInstallation').' — '.get_lang('Version_').' '.$new_version; ?>
  1. >
  2. >
  3. >
  4. >
  5. >
  6. >
  7. >

'.get_lang('ChamiloInstallation').' – '.get_lang('Version_').' '.$new_version.'

'; $instalation_type_label = ''; if ($installType == 'new'){ $instalation_type_label = get_lang('NewInstallation'); }elseif ($installType == 'update') { $update_from_version = isset($update_from_version) ? $update_from_version : null; $instalation_type_label = get_lang('UpdateFromDokeosVersion').(is_array($update_from_version) ? implode('|', $update_from_version) : ''); } if (!empty($instalation_type_label)) { echo "

$instalation_type_label


"; } ?>


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

', get_lang('AdminLastName').' : '.$adminLastName, '
'; } else { echo get_lang('AdminLastName').' : '.$adminLastName, '
', get_lang('AdminFirstName').' : '.$adminFirstName, '
'; } echo get_lang('AdminEmail').' : '.$emailForm; ?>






'; ?> '.$dbNameForm; ?> '; echo get_lang('StatDB').' : '.$dbStatsForm.''; if ($installType == 'new') { echo ' ('.get_lang('ReadWarningBelow').')'; } echo '
'; echo get_lang('UserDB').' : '.$dbUserForm.''; if ($installType == 'new') { echo ' ('.get_lang('ReadWarningBelow').')'; } echo '
'; } } //echo get_lang('EnableTracking').' : '.($enableTrackingForm ? get_lang('Yes') : get_lang('No')); ?>








!

=')) { Database::query("SET SESSION character_set_server='utf8';"); Database::query("SET SESSION collation_server='utf8_general_ci';"); //Database::query("SET CHARACTER SET 'utf8';"); // See task #1802. Database::query("SET NAMES 'utf8';"); } switch ($my_old_version) { case '1.6': case '1.6.0': case '1.6.1': case '1.6.2': case '1.6.3': case '1.6.4': case '1.6.5': include 'update-db-1.6.x-1.8.0.inc.php'; include 'update-files-1.6.x-1.8.0.inc.php'; //intentionally no break to continue processing case '1.8': case '1.8.0': include 'update-db-1.8.0-1.8.2.inc.php'; //intentionally no break to continue processing case '1.8.2': include 'update-db-1.8.2-1.8.3.inc.php'; //intentionally no break to continue processing case '1.8.3': include 'update-db-1.8.3-1.8.4.inc.php'; include 'update-files-1.8.3-1.8.4.inc.php'; case '1.8.4': include 'update-db-1.8.4-1.8.5.inc.php'; include 'update-files-1.8.4-1.8.5.inc.php'; case '1.8.5': include 'update-db-1.8.5-1.8.6.inc.php'; include 'update-files-1.8.5-1.8.6.inc.php'; case '1.8.6': include 'update-db-1.8.6-1.8.6.1.inc.php'; include 'update-files-1.8.6-1.8.6.1.inc.php'; case '1.8.6.1': include 'update-db-1.8.6.1-1.8.6.2.inc.php'; include 'update-files-1.8.6.1-1.8.6.2.inc.php'; case '1.8.6.2': include 'update-db-1.8.6.2-1.8.7.inc.php'; include 'update-files-1.8.6.2-1.8.7.inc.php'; // After database conversion to UTF-8, new encoding initialization is necessary // to be used for the next upgrade 1.8.7[.1] -> 1.8.8. Database::query("SET SESSION character_set_server='utf8';"); Database::query("SET SESSION collation_server='utf8_general_ci';"); //Database::query("SET CHARACTER SET 'utf8';"); // See task #1802. Database::query("SET NAMES 'utf8';"); case '1.8.7': case '1.8.7.1': include 'update-db-1.8.7-1.8.8.inc.php'; include 'update-files-1.8.7-1.8.8.inc.php'; case '1.8.8': case '1.8.8.2': //Only updates the configuration.inc.php with the new version include 'update-configuration.inc.php'; case '1.8.8.4': include 'update-db-1.8.8-1.9.0.inc.php'; //include 'update-files-1.8.8-1.9.0.inc.php'; //Only updates the configuration.inc.php with the new version include 'update-configuration.inc.php'; break; default: break; } } else { set_file_folder_permissions(); database_server_connect(); // Initialization of the database encoding to be used. Database::query("SET storage_engine = MYISAM;"); Database::query("SET SESSION character_set_server='utf8';"); Database::query("SET SESSION collation_server='utf8_general_ci';"); //Database::query("SET CHARACTER SET 'utf8';"); // See task #1802. Database::query("SET NAMES 'utf8';"); include 'install_db.inc.php'; include 'install_files.inc.php'; } $current_step = 7; display_after_install_message($installType); } elseif (@$_POST['step1'] || $badUpdatePath) { //STEP 1 : REQUIREMENTS //make sure that proposed path is set, shouldn't be necessary but... if (empty($proposedUpdatePath)) { $proposedUpdatePath = $_POST['updatePath']; } display_requirements($installType, $badUpdatePath, $proposedUpdatePath, $update_from_version_8, $update_from_version_6); } else { // This is the start screen. display_language_selection(); } ?>