moved code up one level to eliminate the docs subdirectory
[acontent.git] / install / include / ustep2.php
1 <?php
2 /************************************************************************/
3 /* AContent                                                             */
4 /************************************************************************/
5 /* Copyright (c) 2010                                                   */
6 /* Inclusive Design Institute                                           */
7 /*                                                                      */
8 /* This program is free software. You can redistribute it and/or        */
9 /* modify it under the terms of the GNU General Public License          */
10 /* as published by the Free Software Foundation.                        */
11 /************************************************************************/
12
13 ignore_user_abort(true); 
14 @set_time_limit(0); 
15
16 if (!defined('TR_INCLUDE_PATH')) { exit; }
17
18 function update_one_ver($up_file) {
19         global $progress;
20         $update_file = implode('_',$up_file);
21         queryFromFile('db/'.$update_file.'sql');
22         //$progress[] = 'Successful update from version '.$up_file[2].' to '.$up_file[4];
23         return $up_file[4];
24 }
25
26 $_POST['db_login'] = urldecode($_POST['db_login']);
27 $_POST['db_password'] = urldecode($_POST['db_password']);
28
29         unset($errors);
30
31         //check DB & table connection
32
33         $db = @mysql_connect($_POST['db_host'] . ':' . $_POST['db_port'], $_POST['db_login'], urldecode($_POST['db_password']));
34
35         if (!$db) {
36                 $error_no = mysql_errno();
37                 if ($error_no == 2005) {
38                         $errors[] = 'Unable to connect to database server. Database with hostname '.$_POST['db_host'].' not found.';
39                 } else {
40                         $errors[] = 'Unable to connect to database server. Wrong username/password combination.';
41                 }
42         } else {
43                 if (!mysql_select_db($_POST['db_name'], $db)) {
44                         $errors[] = 'Unable to connect to database <b>'.$_POST['db_name'].'</b>.';
45                 }
46
47                 $sql = "SELECT VERSION() AS version";
48                 $result = mysql_query($sql, $db);
49                 $row = mysql_fetch_assoc($result);
50                 if (version_compare($row['version'], '4.0.2', '>=') === FALSE) {
51                         $errors[] = 'MySQL version '.$row['version'].' was detected. AContent requires version 4.0.2 or later.';
52                 }
53
54                 if (!$errors) {
55                         $progress[] = 'Connected to database <b>'.$_POST['db_name'].'</b> successfully.';
56                         unset($errors);
57
58                         //Save all the course primary language into session variables iff it has not been set. 
59 //                      if (!isset($_SESSION['course_info'])){
60 //                              $sql = "SELECT a.course_id, a.title, l.language_code, l.char_set FROM ".$_POST['tb_prefix']."courses a left join ".$_POST['tb_prefix']."languages l ON l.language_code = a.primary_language";
61 //                              $result = mysql_query($sql, $db);
62 //                              while ($row = mysql_fetch_assoc($result)){
63 //                                      $_SESSION['course_info'][$row['course_id']] = array('char_set'=>$row['char_set'], 'language_code'=>$row['language_code']);
64 //                              }
65 //                      }
66
67                         $sql = "DELETE FROM ".$_POST['tb_prefix']."languages WHERE language_code<>'en'";
68                         @mysql_query($sql, $db);
69
70                         //get list of all update scripts minus sql extension
71                         $files = scandir('db'); 
72                         foreach ($files as $file) {
73                                 if(count($file = explode('_',$file))==5) {
74                                         $file[4] = substr($file[4],0,-3);
75                                         $update_files[$file[2]] = $file;
76                                 }
77                         }
78                         
79                         $curr_ver = $_POST['old_version'];
80                         
81                         if (is_array($update_files)) {
82                                 ksort($update_files);
83                                 foreach ($update_files as $up_file) {
84                                         if(version_compare($curr_ver, $up_file[4], '<')) {
85                                                 update_one_ver($up_file);
86                                         }
87                                 }
88                         }
89                         
90                         /* reset all the accounts to English */
91 //                      $sql = "UPDATE ".$_POST['tb_prefix']."users SET language='en', creation_date=creation_date, last_login=last_login";
92 //                      @mysql_query($sql, $db);
93
94                         queryFromFile('db/language_text.sql');
95
96                         if (!$errors) {
97                                 print_progress($step);
98
99                                 unset($_POST['submit']);
100                                 store_steps(1);
101                                 print_feedback($progress);
102
103                                 echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" name="form">
104                                 <input type="hidden" name="step" value="3" />
105                                 <input type="hidden" name="upgrade_action" value="true" />';
106                                 echo '<input type="hidden" name="db_login" value="'.urlencode($_POST['db_login']).'" />';
107                                 echo '<input type="hidden" name="db_password" value="'.urlencode($_POST['db_password']).'" />';
108                                 echo '<input type="hidden" name="db_host" value="'.$_POST['db_host'].'" />';
109                                 echo '<input type="hidden" name="db_name" value="'.$_POST['db_name'].'" />';
110                                 echo '<input type="hidden" name="db_port" value="'.$_POST['db_port'].'" />';
111                                 echo '<input type="hidden" name="tb_prefix" value="'.$_POST['tb_prefix'].'" />';
112                                 echo '<input type="hidden" name="old_version" value="'.$_POST['old_version'].'" />';
113                                 echo '<input type="hidden" name="new_version" value="'.$_POST['new_version'].'" />';
114                                 print_hidden(2);
115                                 echo '<p align="center"><input type="submit" class="button" value=" Next &raquo; " name="submit" /></p></form>';
116                                 return;
117                         }
118                 }
119         }
120
121         print_progress($step);
122
123         unset($_POST['submit']);
124         if (isset($progress)) {
125                 print_feedback($progress);
126         }
127
128         if (isset($errors)) {
129                 print_errors($errors);
130         }
131
132
133         echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" name="form">
134         <input type="hidden" name="step" value="2" />';
135         store_steps(1);
136         print_hidden(2);
137         
138         if ($found_lang) {
139 ?>
140 <table width="60%" class="tableborder" cellspacing="0" cellpadding="1" border="0" align="center">
141 <tr>
142         <td colspan="2" class="row1"><p><small>All installed language packs and changes made to the default English language will be deleted. You will have to re-install any language packs by downloading the latest versions from atutor.ca. Some language packs may not currently be available.</small></p></td>
143 </tr>
144 <tr>
145         <td class="row1"><small><b><label for="dir">Continue with the upgrade?</label></b></small></td>
146                 <td class="row1" valign="middle" nowrap="nowrap"><input type="radio" name="override" value="1" id="c2" /><label for="c2">Yes, Continue</label>, <input type="radio" name="override" value="0" id="c1" checked="checked" /><label for="c1">No, Cancel</label></td>
147 </tr>
148 </table><br />
149         <?php
150         }
151
152         echo '<input type="hidden" name="db_login" value="'.urlencode($_POST['db_login']).'" />';
153         echo '<input type="hidden" name="db_password" value="'.urlencode($_POST['db_password']).'" />';
154         echo '<input type="hidden" name="db_host" value="'.$_POST['db_host'].'" />';
155         echo '<input type="hidden" name="db_name" value="'.$_POST['db_name'].'" />';
156         echo '<input type="hidden" name="db_port" value="'.$_POST['db_port'].'" />';
157         echo '<input type="hidden" name="tb_prefix" value="'.$_POST['tb_prefix'].'" />';
158         echo '<input type="hidden" name="old_version" value="'.$_POST['old_version'].'" />';
159         echo '<input type="hidden" name="new_version" value="'.$_POST['new_version'].'" />';
160
161         echo '<p align="center"><input type="submit" class="button" value=" Retry " name="submit" /></p></form>';
162         return;
163 ?>