1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150 |
- <?php
- function step_active($param) {
- global $current_step;
- if ($param == $current_step) {
- echo 'class="current_step" ';
- }
- }
- function display_step_sequence() {
- global $current_step;
- global $total_steps;
- return get_lang('Step'.$current_step).' – ';
- }
- function check_extension($extension_name, $return_success = 'Yes', $return_failure = 'No', $optional = false) {
- if (extension_loaded($extension_name)) {
- return '<strong><font color="green">'.$return_success.'</font></strong>';
- } else {
- if ($optional) {
- return '<strong><font color="#ff9900">'.$return_failure.'</font></strong>';
- } else {
- return '<strong><font color="red">'.$return_failure.'</font></strong>';
- }
- }
- }
- function check_php_setting($php_setting, $recommended_value, $return_success = false, $return_failure = false) {
- $current_php_value = get_php_setting($php_setting);
- if ($current_php_value == $recommended_value) {
- return '<strong><font color="green">'.$current_php_value.' '.$return_success.'</font></strong>';
- } else {
- return '<strong><font color="red">'.$current_php_value.' '.$return_failure.'</font></strong>';
- }
- }
- function get_php_setting($val) {
- $r = ini_get($val) == '1' ? 1 : 0;
- return $r ? 'ON' : 'OFF';
- }
- function check_writable($folder, $suggestion = false) {
- if (is_writable('../'.$folder)) {
- return '<strong><font color="green">'.get_lang('Writable').'</font></strong>';
- } else {
- if ($suggestion) {
- return '<strong><font color="#ff9900">'.get_lang('NotWritable').'</font></strong>';
- } else {
- return '<strong><font color="red">'.get_lang('NotWritable').'</font></strong>';
- }
- }
- }
- function trueFalse($var) {
- return $var ? 'true' : 'false';
- }
- function file_to_array($filename) {
- $fp = fopen($filename, 'rb');
- $buffer = fread($fp, filesize($filename));
- fclose($fp);
- return explode('<br />', nl2br($buffer));
- }
- function get_config_param($param, $updatePath = '') {
- global $configFile, $updateFromConfigFile;
-
- if (is_array($configFile) && isset($configFile[$param])) {
- return $configFile[$param];
- }
- if (empty($updatePath) && !empty($_POST['updatePath'])) {
- $updatePath = $_POST['updatePath'];
- }
- $updatePath = realpath($updatePath).'/';
- $updateFromInstalledVersionFile = '';
- if (empty($updateFromConfigFile)) {
-
- if (file_exists($updatePath.'main/inc/conf/configuration.php')) {
- $updateFromConfigFile='main/inc/conf/configuration.php';
- } elseif (file_exists($updatePath.'claroline/inc/conf/claro_main.conf.php')) {
- $updateFromConfigFile='claroline/inc/conf/claro_main.conf.php';
- } else {
- error_log('Could not find config file in '.$updatePath.' in get_config_param()',0);
- return null;
- }
- }
- if (file_exists($updatePath.'main/inc/installedVersion.inc.php')) {
- $updateFromInstalledVersionFile = $updatePath.'main/inc/installedVersion.inc.php';
- } elseif (file_exists($updatePath.$updateFromConfigFile)) {
-
-
- $temp2 = array();
- if (file_exists($updatePath.$updateFromInstalledVersionFile)) {
- $temp2 = file_to_array($updatePath.$updateFromInstalledVersionFile);
- }
- $configFile = array();
- $temp = file_to_array($updatePath.$updateFromConfigFile);
- $temp = array_merge($temp, $temp2);
- $val = '';
-
- foreach ($temp as $enreg) {
- if (strstr($enreg, '=')) {
- $enreg = explode('=', $enreg);
- $enreg[0] = trim($enreg[0]);
- if ($enreg[0][0] == '$') {
- list($enreg[1]) = explode(' //', $enreg[1]);
- $enreg[0] = trim(str_replace('$', '', $enreg[0]));
- $enreg[1] = str_replace('\"', '"', ereg_replace('(^"|"$)', '', substr(trim($enreg[1]), 0, -1)));
- $enreg[1] = str_replace('\'', '"', ereg_replace('(^\'|\'$)', '', $enreg[1]));
- if (strtolower($enreg[1]) == 'true') {
- $enreg[1] = 1;
- }
- if (strtolower($enreg[1]) == 'false') {
- $enreg[1] = 0;
- } else {
- $implode_string=' ';
- if (!strstr($enreg[1], '." ".') && strstr($enreg[1], '.$')) {
- $enreg[1] = str_replace('.$', '." ".$', $enreg[1]);
- $implode_string = '';
- }
- $tmp = explode('." ".', $enreg[1]);
- foreach ($tmp as $tmp_key => $tmp_val) {
- if (eregi('^\$[a-z_][a-z0-9_]*$', $tmp_val)) {
- $tmp[$tmp_key] = get_config_param(str_replace('$', '', $tmp_val));
- }
- }
- $enreg[1] = implode($implode_string, $tmp);
- }
- $configFile[$enreg[0]] = $enreg[1];
- $a = explode("'", $enreg[0]);
- $key_tmp = $a[1];
- if ($key_tmp == $param) {
- $val = $enreg[1];
- }
- }
- }
- }
- return $val;
- } else {
- error_log('Config array could not be found in get_config_param()', 0);
- return null;
- }
- }
- function get_config_param_from_db($host, $login, $pass, $db_name, $param = '') {
- $mydb = mysql_connect($host, $login, $pass);
- @mysql_query("set session sql_mode='';");
- $myconnect = mysql_select_db($db_name);
- $sql = "SELECT * FROM settings_current WHERE variable = '$param'";
- $res = mysql_query($sql);
- if ($res === false) {
- return null;
- }
- if (mysql_num_rows($res) > 0) {
- $row = mysql_fetch_array($res);
- $value = $row['selected_value'];
- return $value;
- }
- return null;
- }
- function get_language_folder_list($dirname) {
- if ($dirname[strlen($dirname) - 1] != '/') {
- $dirname .= '/';
- }
- $handle = opendir($dirname);
- $language_list = array();
- while ($entries = readdir($handle)) {
- if ($entries == '.' || $entries == '..' || $entries=='CVS' || $entries == '.svn') {
- continue;
- }
- if (is_dir($dirname.$entries)) {
- $language_list[] = $entries;
- }
- }
- closedir($handle);
- return $language_list;
- }
- function display_language_selection_box() {
-
- $dirname = '../lang/';
- $language_list = get_language_folder_list($dirname);
- sort($language_list);
-
-
-
- $language_to_display = array('asturian', 'bulgarian', 'english', 'italian', 'french', 'slovenian', 'slovenian_unicode', 'spanish');
-
- echo "\t\t<select name=\"language_list\">\n";
- $default_language = 'english';
- foreach ($language_to_display as $key => $value) {
- if ($value == $default_language) {
- $option_end = ' selected="selected">';
- } else {
- $option_end = '>';
- }
- echo "\t\t\t<option value=\"$value\"$option_end";
- echo api_ucfirst($value);
- echo "</option>\n";
- }
- echo "\t\t</select>\n";
- }
- function display_language_selection() { ?>
- <h1><?php get_lang('WelcomeToTheDokeosInstaller'); ?></h1>
- <h2><?php echo display_step_sequence(); ?><?php echo get_lang('InstallationLanguage'); ?></h2>
- <p><?php echo get_lang('PleaseSelectInstallationProcessLanguage'); ?>:</p>
- <form id="lang_form" method="post" action="<?php echo api_get_self(); ?>">
- <?php display_language_selection_box(); ?>
- <button type="submit" name="step1" class="next" value="<?php get_lang('Next'); ?> >"><?php echo get_lang('Next'); ?></button>
- <input type="hidden" name="is_executable" id="is_executable" value="-" />
- </form>
- <?php
- }
- /**
- * This function displays the requirements for installing Dokeos.
- *
- * @param string $installType
- * @param boolean $badUpdatePath
- * @param string The updatePath given (if given)
- * @param array $update_from_version_8 The different subversions from version 1.8
- * @param array $update_from_version_6 The different subversions from version 1.6
- *
- * @author unknow
- * @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
- */
- function display_requirements($installType, $badUpdatePath, $updatePath = '', $update_from_version_8 = array(), $update_from_version_6 = array()) {
- echo '<h2>'.display_step_sequence().get_lang('Requirements')."</h2>\n";
- echo '<strong>'.get_lang('ReadThoroughly').'</strong><br />';
- echo get_lang('MoreDetails').' <a href="../../documentation/installation_guide.html" target="_blank">'.get_lang('ReadTheInstallGuide').'</a>.<br />'."\n";
-
- echo '<div class="RequirementHeading"><h1>'.get_lang('ServerRequirements').'</h1>';
- echo '<div class="RequirementText">'.get_lang('ServerRequirementsInfo').'</div>';
- echo '<div class="RequirementContent">';
- echo '<table class="requirements">
- <tr>
- <td class="requirements-item">'.get_lang('PHPVersion').'>= 5.0</td>
- <td class="requirements-value">';
- if (phpversion() < '5.0') {
- echo '<strong><font color="red">'.get_lang('PHPVersionError').'</font></strong>';
- } else {
- echo '<strong><font color="green">'.get_lang('PHPVersionOK'). ' '.phpversion().'</font></strong>';
- }
- echo ' </td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.session.php" target="_blank">Session</a> '.get_lang('support').'</td>
- <td class="requirements-value">'.check_extension('session', get_lang('Yes'), get_lang('ExtensionSessionsNotAvailable')).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.mysql.php" target="_blank">MySQL</a> '.get_lang('support').'</td>
- <td class="requirements-value">'.check_extension('mysql', get_lang('Yes'), get_lang('ExtensionMySQLNotAvailable')).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.zlib.php" target="_blank">Zlib</a> '.get_lang('support').'</td>
- <td class="requirements-value">'.check_extension('zlib', get_lang('Yes'), get_lang('ExtensionZlibNotAvailable')).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.pcre.php" target="_blank">Perl-compatible regular expressions</a> '.get_lang('support').'</td>
- <td class="requirements-value">'.check_extension('pcre', get_lang('Yes'), get_lang('ExtensionPCRENotAvailable')).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.xml.php" target="_blank">XML</a> '.get_lang('support').'</td>
- <td class="requirements-value">'.check_extension('xml', get_lang('Yes'), get_lang('No')).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.mbstring.php" target="_blank">Multibyte string</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
- <td class="requirements-value">'.check_extension('mbstring', get_lang('Yes'), get_lang('ExtensionMBStringNotAvailable'), true).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.iconv.php" target="_blank">Iconv</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
- <td class="requirements-value">'.check_extension('iconv', get_lang('Yes'), get_lang('No'), true).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.intl.php" target="_blank">Internationalization</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
- <td class="requirements-value">'.check_extension('intl', get_lang('Yes'), get_lang('No'), true).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.image.php" target="_blank">GD</a> '.get_lang('support').'</td>
- <td class="requirements-value">'.check_extension('gd', get_lang('Yes'), get_lang('ExtensionGDNotAvailable')).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.json.php" target="_blank">JSON</a> '.get_lang('support').'</td>
- <td class="requirements-value">'.check_extension('json', get_lang('Yes'), get_lang('No')).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/en/book.ldap.php" target="_blank">LDAP</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
- <td class="requirements-value">'.check_extension('ldap', get_lang('Yes'), get_lang('ExtensionLDAPNotAvailable'), true).'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://xapian.org/" target="_blank">Xapian</a> '.get_lang('support').' ('.get_lang('Optional').')</td>
- <td class="requirements-value">'.check_extension('xapian', get_lang('Yes'), get_lang('No'), true).'</td>
- </tr>
- </table>';
- echo ' </div>';
- echo '</div>';
-
-
-
- echo '<div class="RequirementHeading"><h1>'.get_lang('RecommendedSettings').'</h1>';
- echo '<div class="RequirementText">'.get_lang('RecommendedSettingsInfo').'</div>';
- echo '<div class="RequirementContent">';
- echo '<table class="requirements">
- <tr>
- <th>'.get_lang('Setting').'</th>
- <th>'.get_lang('Recommended').'</th>
- <th>'.get_lang('Actual').'</th>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/features.safe-mode.php">Safe Mode</a></td>
- <td class="requirements-recommended">OFF</td>
- <td class="requirements-value">'.check_php_setting('safe_mode','OFF').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ref.errorfunc.php#ini.display-errors">Display Errors</a></td>
- <td class="requirements-recommended">OFF</td>
- <td class="requirements-value">'.check_php_setting('display_errors','OFF').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.file-uploads">File Uploads</a></td>
- <td class="requirements-recommended">ON</td>
- <td class="requirements-value">'.check_php_setting('file_uploads','ON').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-gpc">Magic Quotes GPC</a></td>
- <td class="requirements-recommended">OFF</td>
- <td class="requirements-value">'.check_php_setting('magic_quotes_gpc','OFF').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-runtime">Magic Quotes Runtime</a></td>
- <td class="requirements-recommended">OFF</td>
- <td class="requirements-value">'.check_php_setting('magic_quotes_runtime','OFF').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/security.globals.php">Register Globals</a></td>
- <td class="requirements-recommended">OFF</td>
- <td class="requirements-value">'.check_php_setting('register_globals','OFF').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ref.session.php#ini.session.auto-start">Session auto start</a></td>
- <td class="requirements-recommended">OFF</td>
- <td class="requirements-value">'.check_php_setting('session.auto_start','OFF').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.short-open-tag">Short Open Tag</a></td>
- <td class="requirements-recommended">OFF</td>
- <td class="requirements-value">'.check_php_setting('short_open_tag','OFF').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.upload-max-filesize">Maximum upload file size</a></td>
- <td class="requirements-recommended">10M-100M</td>
- <td class="requirements-value">'.ini_get('upload_max_filesize').'</td>
- </tr>
- <tr>
- <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.post-max-size">Maximum post size</a></td>
- <td class="requirements-recommended">10M-100M</td>
- <td class="requirements-value">'.ini_get('post_max_size').'</td>
- </tr>
- </table>';
- echo ' </div>';
- echo '</div>';
-
- echo '<div class="RequirementHeading"><h1>'.get_lang('DirectoryAndFilePermissions').'</h1>';
- echo '<div class="RequirementText">'.get_lang('DirectoryAndFilePermissionsInfo').'</div>';
- echo '<div class="RequirementContent">';
- echo '<table class="requirements">
- <tr>
- <td class="requirements-item">chamilo/main/inc/conf/</td>
- <td class="requirements-value">'.check_writable('inc/conf/').'</td>
- </tr>
- <tr>
- <td class="requirements-item">chamilo/main/upload/users/</td>
- <td class="requirements-value">'.check_writable('upload/users/').'</td>
- </tr>
- <tr>
- <td class="requirements-item">chamilo/main/default_course_document/images/</td>
- <td class="requirements-value">'.check_writable('default_course_document/images/').'</td>
- </tr>
- <tr>
- <td class="requirements-item">chamilo/archive/</td>
- <td class="requirements-value">'.check_writable('../archive/').'</td>
- </tr>
- <tr>
- <td class="requirements-item">chamilo/courses/</td>
- <td class="requirements-value">'.check_writable('../courses/').'</td>
- </tr>
- <tr>
- <td class="requirements-item">chamilo/home/</td>
- <td class="requirements-value">'.check_writable('../home/').'</td>
- </tr>
- <tr>
- <td class="requirements-item">chamilo/main/css/</td>
- <td class="requirements-value">'.check_writable('css/',true).' ('.get_lang('SuggestionOnlyToEnableCSSUploadFeature').')</td>
- </tr>
- <tr>
- <td class="requirements-item">chamilo/main/lang/</td>
- <td class="requirements-value">'.check_writable('lang/',true).' ('.get_lang('SuggestionOnlyToEnableSubLanguageFeature').')</td>
- </tr>'.
-
-
-
-
-
-
-
-
-
-
- '';
- echo ' </table>';
- echo ' </div>';
- echo '</div>';
- if ($installType == 'update' && (empty($updatePath) || $badUpdatePath)) {
- if ($badUpdatePath) { ?>
- <div style="color:red; background-color:white; font-weight:bold; text-align:center;">
- <?php echo get_lang('Error'); ?>!<br />
- Chamilo <?php echo (isset($_POST['step2_update_6']) ? implode('|', $update_from_version_6) : implode('|', $update_from_version_8)).' '.get_lang('HasNotBeenFoundInThatDir'); ?>.
- </div>
- <?php }
- else {
- echo '<br />';
- }
- ?>
- <table border="0" cellpadding="5" align="center">
- <tr>
- <td><?php echo get_lang('OldVersionRootPath'); ?>:</td>
- <td><input type="text" name="updatePath" size="50" value="<?php echo ($badUpdatePath && !empty($updatePath)) ? htmlentities($updatePath) : $_SERVER['DOCUMENT_ROOT'].'/old_version/'; ?>" /></td>
- </tr>
- <tr>
- <td colspan="2" align="center">
- <button type="submit" class="back" name="step1" value="< <?php echo get_lang('Back'); ?>" ><?php echo get_lang('Back'); ?></button>
- <input type="hidden" name="is_executable" id="is_executable" value="-" />
- <button type="submit" class="next" name="<?php echo (isset($_POST['step2_update_6']) ? 'step2_update_6' : 'step2_update_8'); ?>" value="<?php echo get_lang('Next'); ?> >" ><?php echo get_lang('Next'); ?></button>
- </td>
- </tr>
- </table>
- <?php
- } else {
- $error = false;
-
- $perm = api_get_permissions_for_new_directories();
- $perm_file = api_get_permissions_for_new_files();
- $notwritable = array();
- $curdir = getcwd();
- if (!is_writable('../inc/conf')) {
- $notwritable[] = realpath($curdir.'/../inc/conf');
- @chmod('../inc/conf',$perm);
- }
- if (!is_writable('../upload/users')) {
- $notwritable[] = realpath($curdir.'/../upload/users');
- @chmod('../upload/users', $perm);
- }
- if (!is_writable('../default_course_document/images/')) {
- $notwritable[] = realpath($curdir.'/../default_course_document/images/');
- @chmod('../default_course_document/images/', $perm);
- }
- if (!is_writable('../../archive')) {
- $notwritable[] = realpath($curdir.'/../../archive');
- @chmod('../../archive',$perm);
- }
- if (!is_writable('../../courses')) {
- $notwritable[] = realpath($curdir.'/../../courses');
- @chmod('../../courses',$perm);
- }
- if (!is_writable('../../home')) {
- $notwritable[] = realpath($curdir.'/../../home');
- @chmod('../../home',$perm);
- }
- if (file_exists('../inc/conf/configuration.php') && !is_writable('../inc/conf/configuration.php')) {
- $notwritable[]= realpath($curdir.'/../inc/conf/configuration.php');
- @chmod('../inc/conf/configuration.php',$perm_file);
- }
-
-
- if (count($notwritable) > 0) {
- $error = true;
- echo '<div style="color:red; background-color:white; font-weight:bold; text-align:center;">';
- echo get_lang('Warning').':<br />';
- printf(get_lang('NoWritePermissionPleaseReadInstallGuide'), '</font><a href="../../documentation/installation_guide.html" target="blank">', '</a> <font color="red">');
- echo '<ul>';
- foreach ($notwritable as $value) {
- echo '<li>'.$value.'</li>';
- }
- echo '</ul>';
- echo '</div>';
- }
-
- elseif (file_exists('../inc/conf/configuration.php')) {
- echo '<div style="color:red; background-color:white; font-weight:bold; text-align:center;">';
- echo get_lang('WarningExistingDokeosInstallationDetected');
- echo '</div>';
- }
-
- ?>
- <p align="center">
- <button type="submit" name="step1" class="back" onclick="window.location='index.php';return false;" value="< <?php echo get_lang('Previous'); ?>" ><?php echo get_lang('Previous'); ?></button>
- <button type="submit" name="step2_install" class="add" value="<?php echo get_lang("NewInstallation"); ?>" <?php if ($error) echo 'disabled="disabled"'; ?> ><?php echo get_lang('NewInstallation'); ?></button>
- <input type="hidden" name="is_executable" id="is_executable" value="-" />
- <?php
- //real code
- echo '<button type="submit" class="save" name="step2_update_8" value="Upgrade from Dokeos 1.8.x"';
- if ($error) echo ' disabled="disabled"';
- //temporary code for alpha version, disabling upgrade
- //echo '<input type="submit" name="step2_update" value="Upgrading is not possible in this beta version"';
- //echo ' disabled="disabled"';
- //end temp code
- echo ' >'.get_lang('UpgradeFromDokeos18x').'</button>';
- echo '<button type="submit" class="save" name="step2_update_6" value="Upgrade from Dokeos 1.6.x"';
- if ($error) echo ' disabled="disabled"';
- echo ' >'.get_lang('UpgradeFromDokeos16x').'</button>';
- echo '</p>';
- }
- }
- /**
- * Displays the license (GNU GPL) as step 2, with
- * - an "I accept" button named step3 to proceed to step 3;
- * - a "Back" button named step1 to go back to the first step.
- */
- function display_license_agreement() {
- echo '<h2>'.display_step_sequence().get_lang('Licence').'</h2>';
- echo '<p>'.get_lang('DokeosLicenseInfo').'</p>';
- echo '<p><a href="../../documentation/license.html" target="_blank">'.get_lang('PrintVers').'</a></p>';
- ?>
- <table><tr><td>
- <p><textarea cols="75" rows="15" ><?php htmlentities(include('../../documentation/license.txt')); ?></textarea></p>
- </td>
- </tr>
- <tr>
- <td>
- <p><?php echo get_lang('DokeosArtLicense');?></p>
- </td>
- </tr>
- <td>
- <table width="100%">
- <tr>
- <td></td>
- <td align="center">
- <button type="submit" class="back" name="step1" value="< <?php echo get_lang('Previous'); ?>" ><?php echo get_lang('Previous'); ?></button>
- <input type="hidden" name="is_executable" id="is_executable" value="-" />
- <button type="submit" class="next" name="step3" value="<?php echo get_lang('IAccept'); ?> >" ><?php echo get_lang('IAccept'); ?></button>
- </td>
- </tr>
- </table>
- </td></tr></table>
- <?php
- }
- /**
- * Displays a parameter in a table row.
- * Used by the display_database_settings_form function.
- * @param string Type of install
- * @param string Name of parameter
- * @param string Field name (in the HTML form)
- * @param string Field value
- * @param string Extra notice (to show on the right side)
- * @param boolean Whether to display in update mode
- * @param string Additional attribute for the <tr> element
- * @return void Direct output
- */
- function display_database_parameter($install_type, $parameter_name, $form_field_name, $parameter_value, $extra_notice, $display_when_update = true, $tr_attribute = '') {
- echo "<tr ".$tr_attribute.">\n";
- echo "<td>$parameter_name </td>\n";
- if ($install_type == INSTALL_TYPE_UPDATE && $display_when_update) {
- echo '<td><input type="hidden" name="'.$form_field_name.'" id="'.$form_field_name.'" value="'.api_htmlentities($parameter_value).'" />'.$parameter_value."</td>\n";
- } else {
- $inputtype = $form_field_name == 'dbPassForm' ? 'password' : 'text';
-
- $maxlength = $form_field_name == 'dbPrefixForm' ? '15' : MAX_FORM_FIELD_LENGTH;
- echo '<td><input type="'.$inputtype.'" size="'.DATABASE_FORM_FIELD_DISPLAY_LENGTH.'" maxlength="'.$maxlength.'" name="'.$form_field_name.'" id="'.$form_field_name.'" value="'.api_htmlentities($parameter_value).'" />'."</td>\n";
- echo "<td>$extra_notice</td>\n";
- }
- echo "</tr>\n";
- }
- function display_database_settings_form($installType, $dbHostForm, $dbUsernameForm, $dbPassForm, $dbPrefixForm, $enableTrackingForm, $singleDbForm, $dbNameForm, $dbStatsForm, $dbScormForm, $dbUserForm) {
- if ($installType == 'update') {
- global $_configuration, $update_from_version_6;
- if (in_array($_POST['old_version'], $update_from_version_6)) {
- $dbHostForm = get_config_param('dbHost');
- $dbUsernameForm = get_config_param('dbLogin');
- $dbPassForm = get_config_param('dbPass');
- $dbPrefixForm = get_config_param('dbNamePrefix');
- $enableTrackingForm = get_config_param('is_trackingEnabled');
- $singleDbForm = get_config_param('singleDbEnabled');
- $dbNameForm = get_config_param('mainDbName');
- $dbStatsForm = get_config_param('statsDbName');
- $dbScormForm = get_config_param('scormDbName');
- $dbUserForm = get_config_param('user_personal_database');
- $dbScormExists = true;
- } else {
- $dbHostForm = $_configuration['db_host'];
- $dbUsernameForm = $_configuration['db_user'];
- $dbPassForm = $_configuration['db_password'];
- $dbPrefixForm = $_configuration['db_prefix'];
- $enableTrackingForm = $_configuration['tracking_enabled'];
- $singleDbForm = $_configuration['single_database'];
- $dbNameForm = $_configuration['main_database'];
- $dbStatsForm = $_configuration['statistics_database'];
- $dbScormForm = $_configuration['scorm_database'];
- $dbUserForm = $_configuration['user_personal_database'];
- $dbScormExists = true;
- }
- if (empty($dbScormForm)) {
- if ($singleDbForm) {
- $dbScormForm = $dbNameForm;
- } else {
- $dbScormForm = $dbPrefixForm.'scorm';
- $dbScormExists = false;
- }
- }
- if (empty($dbUserForm)) {
- $dbUserForm = $singleDbForm ? $dbNameForm : $dbPrefixForm.'chamilo_user';
- }
- echo '<h2>' . display_step_sequence() .get_lang('DBSetting') . '</h2>';
- echo get_lang('DBSettingUpgradeIntro');
- } else {
- if (empty($dbPrefixForm)) {
- $dbPrefixForm = 'chamilo_';
- }
- echo '<h2>' . display_step_sequence() .get_lang('DBSetting') . '</h2>';
- echo get_lang('DBSettingIntro');
- }
- ?>
- <br /><br />
- </td>
- </tr>
- <tr>
- <td>
- <table width="100%">
- <tr>
- <td width="40%"><?php echo get_lang('DBHost'); ?> </td>
- <?php if ($installType == 'update'): ?>
- <td width="30%"><input type="hidden" name="dbHostForm" value="<?php echo htmlentities($dbHostForm); ?>" /><?php echo $dbHostForm; ?></td>
- <td width="30%"> </td>
- <?php else: ?>
- <td width="30%"><input type="text" size="25" maxlength="50" name="dbHostForm" value="<?php echo htmlentities($dbHostForm); ?>" /></td>
- <td width="30%"><?php echo get_lang('EG').' localhost'; ?></td>
- <?php endif; ?>
- </tr>
- <?php
-
- $example_login = get_lang('EG').' root';
- display_database_parameter($installType, get_lang('DBLogin'), 'dbUsernameForm', $dbUsernameForm, $example_login);
-
- $example_password = get_lang('EG').' '.api_generate_password();
- display_database_parameter($installType, get_lang('DBPassword'), 'dbPassForm', $dbPassForm, $example_password);
-
- display_database_parameter($installType, get_lang('DbPrefixForm'), 'dbPrefixForm', $dbPrefixForm, get_lang('DbPrefixCom'));
-
- echo '<tr><td colspan="3"><a href="" onclick="javascript: show_hide_option();return false;" id="optionalparameters"><img style="vertical-align:middle;" src="../img/div_show.gif" alt="show-hide" /> '.get_lang('OptionalParameters', '').'</a></td></tr>';
- display_database_parameter($installType, get_lang('MainDB'), 'dbNameForm', $dbNameForm, ' ', null, 'id="optional_param1" style="display:none;"');
- display_database_parameter($installType, get_lang('StatDB'), 'dbStatsForm', $dbStatsForm, ' ', null, 'id="optional_param2" style="display:none;"');
- if ($installType == 'update' && in_array($_POST['old_version'], $update_from_version_6)) {
- display_database_parameter($installType, get_lang('ScormDB'), 'dbScormForm', $dbScormForm, ' ', null, 'id="optional_param3" style="display:none;"');
- }
- display_database_parameter($installType, get_lang('UserDB'), 'dbUserForm', $dbUserForm, ' ', null, 'id="optional_param4" style="display:none;"');
- ?>
- <tr id="optional_param5" style="display:none;">
- <td><?php echo get_lang('EnableTracking'); ?> </td>
- <?php if ($installType == 'update'): ?>
- <td><input type="hidden" name="enableTrackingForm" value="<?php echo $enableTrackingForm; ?>" /><?php echo $enableTrackingForm ? get_lang('Yes') : get_lang('No'); ?></td>
- <?php else: ?>
- <td>
- <input class="checkbox" type="radio" name="enableTrackingForm" value="1" id="enableTracking1" <?php echo $enableTrackingForm ? 'checked="checked" ' : ''; ?>/> <label for="enableTracking1"><?php echo get_lang('Yes'); ?></label>
- <input class="checkbox" type="radio" name="enableTrackingForm" value="0" id="enableTracking0" <?php echo $enableTrackingForm ? '' : 'checked="checked" '; ?>/> <label for="enableTracking0"><?php echo get_lang('No'); ?></label>
- </td>
- <?php endif; ?>
- <td> </td>
- </tr>
- <tr id="optional_param6" style="display:none;">
- <td><?php echo get_lang('SingleDb'); ?> </td>
- <?php if ($installType == 'update'): ?>
- <td><input type="hidden" name="singleDbForm" value="<?php echo $singleDbForm; ?>" /><?php echo $singleDbForm ? get_lang('One') : get_lang('Several'); ?></td>
- <?php else: ?>
- <td>
- <input class="checkbox" type="radio" name="singleDbForm" value="1" id="singleDb1" <?php echo $singleDbForm ? 'checked="checked" ' : ''; ?> onclick="javascript: show_hide_tracking_and_user_db(this.id);" /> <label for="singleDb1"><?php echo get_lang('One'); ?></label>
- <input class="checkbox" type="radio" name="singleDbForm" value="0" id="singleDb0" <?php echo $singleDbForm ? '' : 'checked="checked" '; ?> onclick="javascript: show_hide_tracking_and_user_db(this.id);" /> <label for="singleDb0"><?php echo get_lang('Several'); ?></label>
- </td>
- <?php endif; ?>
- <td> </td>
- </tr>
- </div>
- <tr>
- <td><button type="submit" class="login" name="step3" value="<?php echo get_lang('CheckDatabaseConnection'); ?>" ><?php echo get_lang('CheckDatabaseConnection'); ?></button></td>
- <?php
- $dbConnect = test_db_connect($dbHostForm, $dbUsernameForm, $dbPassForm, $singleDbForm, $dbPrefixForm);
- if ($dbConnect == 1): ?>
- <td colspan="2">
- <div class="confirmation-message">
- <!--<div style="float:left; margin-right:10px;">
- <img src="../img/message_confirmation.png" alt="Confirmation" />
- </div>-->
- <!--<div style="float:left;">-->
- Database host info: <strong><?php echo Database::get_host_info(); ?></strong><br />
- Database server version: <strong><?php echo Database::get_server_info(); ?></strong><br />
- Database client version: <strong><?php echo Database::get_client_info(); ?></strong><br />
- Database protocol version: <strong><?php echo Database::get_proto_info(); ?></strong>
- <!--</div>-->
- <div style="clear:both;"></div>
- </div>
- </td>
- <?php else: ?>
- <td colspan="2">
- <div style="float:left;" class="error-message">
- <!--<div style="float:left; margin-right:10px;">
- <img src="../img/message_error.png" alt="Error" />
- </div>-->
- <div style="float:left;">
- <strong>Database error: <?php echo Database::errno(); ?></strong><br />
- <?php echo Database::error().'<br />'; ?>
- <strong><?php echo get_lang('Details').': '. get_lang('FailedConectionDatabase'); ?></strong><br />
- </div>
- </div>
- </td>
- <?php endif; ?>
- </tr>
- <tr>
- <td><button type="submit" name="step2" class="back" value="< <?php echo get_lang('Previous'); ?>" ><?php echo get_lang('Previous'); ?></button></td>
- <td> </td>
- <td align="right"><input type="hidden" name="is_executable" id="is_executable" value="-" /><button type="submit" class="next" name="step4" value="<?php echo get_lang('Next'); ?> >" /><?php echo get_lang('Next'); ?></button></td>
- </tr>
- </table>
- <?php
- }
- /**
- * Displays a parameter in a table row.
- * Used by the display_configuration_settings_form function.
- */
- function display_configuration_parameter($install_type, $parameter_name, $form_field_name, $parameter_value, $display_when_update = 'true') {
- echo "<tr>\n";
- echo "<td>$parameter_name </td>\n";
- if ($install_type == INSTALL_TYPE_UPDATE && $display_when_update) {
- echo '<td><input type="hidden" name="'.$form_field_name.'" value="'.api_htmlentities($parameter_value, ENT_QUOTES).'" />'.$parameter_value."</td>\n";
- } else {
- echo '<td><input type="text" size="'.FORM_FIELD_DISPLAY_LENGTH.'" maxlength="'.MAX_FORM_FIELD_LENGTH.'" name="'.$form_field_name.'" value="'.api_htmlentities($parameter_value, ENT_QUOTES).'" />'."</td>\n";
- }
- echo "</tr>\n";
- }
- function display_configuration_settings_form($installType, $urlForm, $languageForm, $emailForm, $adminFirstName, $adminLastName, $adminPhoneForm, $campusForm, $institutionForm, $institutionUrlForm, $encryptPassForm, $allowSelfReg, $allowSelfRegProf, $loginForm, $passForm) {
- if ($installType != 'update' && empty($languageForm)) {
- $languageForm = $_SESSION['install_language'];
- }
- echo "<h2>" . display_step_sequence() . get_lang("CfgSetting") . "</h2>";
- echo '<p>'.get_lang('ConfigSettingsInfo').' <strong>main/inc/conf/configuration.php</strong></p>';
- echo "</td></tr>\n<tr><td>";
- echo "<table width=\"100%\">";
-
- echo "<tr>\n";
- echo '<td>'.get_lang('MainLang')." </td>\n";
- if ($installType == 'update') {
- echo '<td><input type="hidden" name="languageForm" value="'.api_htmlentities($languageForm, ENT_QUOTES).'" />'.$languageForm."</td>\n";
- } else {
- echo '<td>';
- $array_lang = array('asturian', 'bulgarian', 'english', 'italian', 'french', 'slovenian', 'spanish');
-
- echo "\t\t<select name=\"languageForm\">\n";
- foreach ($array_lang as $key => $value) {
- echo '<option value="'.$value.'"';
- if ($value == $languageForm) {
- echo ' selected="selected"';
- }
- echo ">$value</option>\n";
- }
- echo "\t\t</select>\n";
-
-
- echo "</td>\n";
- }
- echo "</tr>\n";
-
- echo "<tr>\n";
- echo '<td>'.get_lang('ChamiloURL').' (<font color="red">'.get_lang('ThisFieldIsRequired')."</font>) </td>\n";
- if ($installType == 'update') {
- echo '<td>'.api_htmlentities($urlForm, ENT_QUOTES)."</td>\n";
- } else {
- echo '<td><input type="text" size="40" maxlength="100" name="urlForm" value="'.api_htmlentities($urlForm, ENT_QUOTES).'" />'."</td>\n";
- }
- echo "</tr>\n";
-
- display_configuration_parameter($installType, get_lang('AdminEmail'), 'emailForm', $emailForm);
-
- if (api_is_western_name_order()) {
- display_configuration_parameter($installType, get_lang('AdminFirstName'), 'adminFirstName', $adminFirstName);
- display_configuration_parameter($installType, get_lang('AdminLastName'), 'adminLastName', $adminLastName);
- } else {
- display_configuration_parameter($installType, get_lang('AdminLastName'), 'adminLastName', $adminLastName);
- display_configuration_parameter($installType, get_lang('AdminFirstName'), 'adminFirstName', $adminFirstName);
- }
-
- display_configuration_parameter($installType, get_lang('AdminPhone'), 'adminPhoneForm', $adminPhoneForm);
-
- display_configuration_parameter($installType, get_lang('AdminLogin'), 'loginForm', $loginForm, $installType == 'update');
-
- if ($installType != 'update') {
- display_configuration_parameter($installType, get_lang('AdminPass'), 'passForm', $passForm, false);
- }
-
- display_configuration_parameter($installType, get_lang('CampusName'), 'campusForm', $campusForm);
-
- display_configuration_parameter($installType, get_lang('InstituteShortName'), 'institutionForm', $institutionForm);
-
- display_configuration_parameter($installType, get_lang('InstituteURL'), 'institutionUrlForm', $institutionUrlForm);
-
- ?>
- <tr>
- <td><?php echo get_lang("EncryptMethodUserPass"); ?> :</td>
- <?php if ($installType == 'update'): ?>
- <td><input type="hidden" name="encryptPassForm" value="<?php echo $encryptPassForm; ?>" /><?php echo $encryptPassForm; ?></td>
- <?php else: ?>
- <td>
- <input class="checkbox" type="radio" name="encryptPassForm" value="md5" id="encryptPass0" <?php echo $encryptPassForm ? 'checked="checked" ' : ''; ?>/> <label for="encryptPass0"><?php echo 'md5'; ?></label>
- <input class="checkbox" type="radio" name="encryptPassForm" value="sha1" id="encryptPass1" <?php echo $encryptPassForm ? '' : 'checked="checked" '; ?>/> <label for="encryptPass1"><?php echo 'sha1'; ?></label>
- <input class="checkbox" type="radio" name="encryptPassForm" value="none" id="encryptPass2" <?php echo $encryptPassForm ? '' : 'checked="checked" '; ?>/> <label for="encryptPass2"><?php echo get_lang('None'); ?></label>
- </td>
- <?php endif; ?>
- </tr>
- <tr>
- <td><?php echo get_lang('AllowSelfReg'); ?> :</td>
- <?php if ($installType == 'update'): ?>
- <td><input type="hidden" name="allowSelfReg" value="<?php echo $allowSelfReg; ?>" /><?php echo $allowSelfReg ? get_lang('Yes') : get_lang('No'); ?></td>
- <?php else: ?>
- <td>
- <input class="checkbox" type="radio" name="allowSelfReg" value="1" id="allowSelfReg1" <?php echo $allowSelfReg ? 'checked="checked" ' : ''; ?>/> <label for="allowSelfReg1"><?php echo get_lang('Yes').' '.get_lang('Recommended'); ?></label>
- <input class="checkbox" type="radio" name="allowSelfReg" value="0" id="allowSelfReg0" <?php echo $allowSelfReg ? '' : 'checked="checked" '; ?>/> <label for="allowSelfReg0"><?php echo get_lang('No'); ?></label>
- </td>
- <?php endif; ?>
- </tr>
- <tr>
- <td><?php echo get_lang('AllowSelfRegProf'); ?> :</td>
- <?php if ($installType == 'update'): ?>
- <td><input type="hidden" name="allowSelfRegProf" value="<?php echo $allowSelfRegProf; ?>" /><?php echo $allowSelfRegProf? get_lang('Yes') : get_lang('No'); ?></td>
- <?php else: ?>
- <td>
- <input class="checkbox" type="radio" name="allowSelfRegProf" value="1" id="allowSelfRegProf1" <?php echo $allowSelfRegProf ? 'checked="checked" ' : ''; ?>/> <label for="allowSelfRegProf1"><?php echo get_lang('Yes'); ?></label>
- <input class="checkbox" type="radio" name="allowSelfRegProf" value="0" id="allowSelfRegProf0" <?php echo $allowSelfRegProf ? '' : 'checked="checked" '; ?>/> <label for="allowSelfRegProf0"><?php echo get_lang('No'); ?></label>
- </td>
- <?php endif; ?>
- </tr>
- <tr>
- <td><button type="submit" class="back" name="step3" value="< <?php echo get_lang('Previous'); ?>" /><?php echo get_lang('Previous'); ?></button></td>
- <td align="right"><input type="hidden" name="is_executable" id="is_executable" value="-" /><button class="next" type="submit" name="step5" value="<?php echo get_lang('Next'); ?> >" /><?php echo get_lang('Next'); ?></button></td>
- </tr>
- </table>
- <?php
- }
- /**
- * After installation is completed (step 6), this message is displayed.
- */
- function display_after_install_message($installType, $nbr_courses) {
- ?>
- <h2><?php echo display_step_sequence() . get_lang("CfgSetting"); ?></h2>
- <?php echo get_lang('FirstUseTip'); ?>
- <?php if ($installType == 'update' && $nbr_courses > MAX_COURSE_TRANSFER): ?>
- <br /><br />
- <font color="red"><strong><?php echo get_lang('Warning'); ?> :</strong> <?php printf(get_lang('YouHaveMoreThanXCourses'), MAX_COURSE_TRANSFER, MAX_COURSE_TRANSFER,'<a href="update_courses.php"><font color="red">', '</font></a>'); ?></font>
- <?php endif; ?>
- <br /><br />
- <?php
- echo '<div class="warning-message">';
-
- echo '<strong>'.get_lang('SecurityAdvice').'</strong>';
- echo ': ';
- printf(get_lang('ToProtectYourSiteMakeXAndYReadOnly'), 'main/inc/conf/configuration.php', 'main/install/index.php');
- echo '</div>';
- ?>
- </form>
- <a class="portal" href="../../index.php"><?php echo get_lang('GoToYourNewlyCreatedPortal'); ?></a>
- <?php
- }
- /**
- * In step 3. Tests establishing connection to the database server. Tests also the possibility for multiple databases configuration.
- * @return int 1 when there is no problem;
- * 0 when a new database is impossible to be created, then the multiple databases configuration is impossible too;
- * -1 when there is no connection established.
- */
- function test_db_connect($dbHostForm, $dbUsernameForm, $dbPassForm, $singleDbForm, $dbPrefixForm) {
- $dbConnect = -1;
- if ($singleDbForm == 1) {
- if(@mysql_connect($dbHostForm, $dbUsernameForm, $dbPassForm) !== false) {
- $dbConnect = 1;
- } else {
- $dbConnect = -1;
- }
- } elseif ($singleDbForm == 0) {
- $res = @mysql_connect($dbHostForm, $dbUsernameForm, $dbPassForm);
- if ($res !== false) {
- @mysql_query("set session sql_mode='';");
- $multipleDbCheck = @mysql_query("CREATE DATABASE ".$dbPrefixForm."test_chamilo_connection");
- if ($multipleDbCheck !== false) {
- $multipleDbCheck = @mysql_query("DROP DATABASE IF EXISTS ".$dbPrefixForm."test_chamilo_connection");
- if ($multipleDbCheck !== false) {
- $dbConnect = 1;
- } else {
- $dbConnect = 0;
- }
- } else {
- $dbConnect = 0;
- }
- } else {
- $dbConnect = -1;
- }
- }
- return $dbConnect;
- }
|