31f0900c |
1 | <?PHP //$Id$ |
2 | // |
3 | // This file keeps track of upgrades to Moodle. |
4 | // |
5 | // Sometimes, changes between versions involve |
6 | // alterations to database structures and other |
7 | // major things that may break installations. |
8 | // |
9 | // The upgrade function in this file will attempt |
10 | // to perform all the necessary actions to upgrade |
11 | // your older installtion to the current version. |
12 | // |
13 | // If there's something it cannot do itself, it |
14 | // will tell you what you need to do. |
15 | // |
16 | // Versions are defined by /version.php |
17 | // |
18 | // This file is tailored to MySQL |
19 | |
e7311a0a |
20 | function main_upgrade($oldversion=0) { |
31f0900c |
21 | |
7beb45d8 |
22 | global $CFG; |
23 | |
31f0900c |
24 | if ($oldversion == 0) { |
25 | execute_sql(" |
26 | CREATE TABLE `config` ( |
27 | `id` int(10) unsigned NOT NULL auto_increment, |
28 | `name` varchar(255) NOT NULL default '', |
29 | `value` varchar(255) NOT NULL default '', |
30 | PRIMARY KEY (`id`), |
31 | UNIQUE KEY `name` (`name`) |
32 | ) COMMENT='Moodle configuration variables';"); |
33 | notify("Created a new table 'config' to hold configuration data"); |
34 | } |
35 | if ($oldversion < 2002073100) { |
36 | execute_sql(" DELETE FROM `modules` WHERE `name` = 'chat' "); |
37 | } |
38 | if ($oldversion < 2002080200) { |
39 | execute_sql(" ALTER TABLE `modules` DROP `fullname` "); |
40 | execute_sql(" ALTER TABLE `modules` DROP `search` "); |
41 | } |
42 | if ($oldversion < 2002080300) { |
43 | execute_sql(" ALTER TABLE `log_display` CHANGE `table` `mtable` VARCHAR( 20 ) NOT NULL "); |
44 | execute_sql(" ALTER TABLE `user_teachers` CHANGE `authority` `authority` TINYINT( 3 ) DEFAULT '3' NOT NULL "); |
45 | } |
46 | if ($oldversion < 2002082100) { |
47 | execute_sql(" ALTER TABLE `course` CHANGE `guest` `guest` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL "); |
48 | } |
49 | if ($oldversion < 2002082101) { |
50 | execute_sql(" ALTER TABLE `user` ADD `maildisplay` TINYINT(2) UNSIGNED DEFAULT '2' NOT NULL AFTER `mailformat` "); |
51 | } |
52 | if ($oldversion < 2002090100) { |
53 | execute_sql(" ALTER TABLE `course_sections` CHANGE `summary` `summary` TEXT NOT NULL "); |
54 | } |
55 | if ($oldversion < 2002090701) { |
56 | execute_sql(" ALTER TABLE `user_teachers` CHANGE `authority` `authority` TINYINT( 10 ) DEFAULT '3' NOT NULL "); |
57 | execute_sql(" ALTER TABLE `user_teachers` ADD `role` VARCHAR(40) NOT NULL AFTER `authority` "); |
58 | } |
59 | if ($oldversion < 2002090800) { |
60 | execute_sql(" ALTER TABLE `course` ADD `teachers` VARCHAR( 100 ) DEFAULT 'Teachers' NOT NULL AFTER `teacher` "); |
61 | execute_sql(" ALTER TABLE `course` ADD `students` VARCHAR( 100 ) DEFAULT 'Students' NOT NULL AFTER `student` "); |
62 | } |
63 | if ($oldversion < 2002091000) { |
64 | execute_sql(" ALTER TABLE `user` CHANGE `personality` `secret` VARCHAR( 15 ) DEFAULT NULL "); |
65 | } |
66 | if ($oldversion < 2002091400) { |
67 | execute_sql(" ALTER TABLE `user` ADD `lang` VARCHAR( 3 ) DEFAULT 'en' NOT NULL AFTER `country` "); |
68 | } |
69 | if ($oldversion < 2002091900) { |
70 | notify("Most Moodle configuration variables have been moved to the database and can now be edited via the admin page."); |
71 | notify("Although it is not vital that you do so, you might want to edit <U>config.php</U> and remove all the unused settings (except the database, URL and directory definitions). See <U>config-dist.php</U> for an example of how your new slim config.php should look."); |
72 | } |
73 | if ($oldversion < 2002092000) { |
74 | execute_sql(" ALTER TABLE `user` CHANGE `lang` `lang` VARCHAR(5) DEFAULT 'en' NOT NULL "); |
75 | } |
76 | if ($oldversion < 2002092100) { |
77 | execute_sql(" ALTER TABLE `user` ADD `deleted` TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL AFTER `confirmed` "); |
78 | } |
0095d5cd |
79 | if ($oldversion < 2002101001) { |
80 | execute_sql(" ALTER TABLE `user` ADD `htmleditor` TINYINT(1) UNSIGNED DEFAULT '1' NOT NULL AFTER `maildisplay` "); |
81 | } |
2a439ba7 |
82 | if ($oldversion < 2002101701) { |
83 | execute_sql(" ALTER TABLE `reading` RENAME `resource` "); // Small line with big consequences! |
84 | execute_sql(" DELETE FROM `log_display` WHERE module = 'reading'"); |
85 | execute_sql(" INSERT INTO log_display VALUES ('resource', 'view', 'resource', 'name') "); |
86 | execute_sql(" UPDATE log SET module = 'resource' WHERE module = 'reading' "); |
87 | execute_sql(" UPDATE modules SET name = 'resource' WHERE name = 'reading' "); |
88 | } |
31f0900c |
89 | |
7beb45d8 |
90 | if ($oldversion < 2002102503) { |
91 | require_once("$CFG->dirroot/mod/forum/lib.php"); |
92 | require_once("$CFG->dirroot/course/lib.php"); |
93 | |
94 | if (! $module = get_record("modules", "name", "forum")) { |
95 | notify("Could not find forum module!!"); |
96 | return false; |
97 | } |
98 | |
99 | // First upgrade the site forums |
100 | if ($site = get_site()) { |
101 | print_heading("Making News forums editable for main site (moving to section 1)..."); |
102 | if ($news = forum_get_course_forum($site->id, "news")) { |
103 | $mod->course = $site->id; |
104 | $mod->module = $module->id; |
105 | $mod->instance = $news->id; |
106 | $mod->section = 1; |
107 | if (! $mod->coursemodule = add_course_module($mod) ) { |
108 | notify("Could not add a new course module to the site"); |
109 | return false; |
110 | } |
111 | if (! $sectionid = add_mod_to_section($mod) ) { |
112 | notify("Could not add the new course module to that section"); |
113 | return false; |
114 | } |
115 | if (! set_field("course_modules", "section", $sectionid, "id", $mod->coursemodule)) { |
116 | notify("Could not update the course module with the correct section"); |
117 | return false; |
118 | } |
119 | } |
120 | } |
121 | |
122 | |
123 | // Now upgrade the courses. |
124 | if ($courses = get_records_sql("SELECT * FROM course WHERE category > 0")) { |
125 | print_heading("Making News and Social forums editable for each course (moving to section 0)..."); |
126 | foreach ($courses as $course) { |
127 | if ($course->format == "social") { // we won't touch them |
128 | continue; |
129 | } |
130 | if ($news = forum_get_course_forum($course->id, "news")) { |
131 | $mod->course = $course->id; |
132 | $mod->module = $module->id; |
133 | $mod->instance = $news->id; |
134 | $mod->section = 0; |
135 | if (! $mod->coursemodule = add_course_module($mod) ) { |
136 | notify("Could not add a new course module to the course '$course->fullname'"); |
137 | return false; |
138 | } |
139 | if (! $sectionid = add_mod_to_section($mod) ) { |
140 | notify("Could not add the new course module to that section"); |
141 | return false; |
142 | } |
143 | if (! set_field("course_modules", "section", $sectionid, "id", $mod->coursemodule)) { |
144 | notify("Could not update the course module with the correct section"); |
145 | return false; |
146 | } |
147 | } |
148 | if ($social = forum_get_course_forum($course->id, "social")) { |
149 | $mod->course = $course->id; |
150 | $mod->module = $module->id; |
151 | $mod->instance = $social->id; |
152 | $mod->section = 0; |
153 | if (! $mod->coursemodule = add_course_module($mod) ) { |
154 | notify("Could not add a new course module to the course '$course->fullname'"); |
155 | return false; |
156 | } |
157 | if (! $sectionid = add_mod_to_section($mod) ) { |
158 | notify("Could not add the new course module to that section"); |
159 | return false; |
160 | } |
161 | if (! set_field("course_modules", "section", $sectionid, "id", $mod->coursemodule)) { |
162 | notify("Could not update the course module with the correct section"); |
163 | return false; |
164 | } |
165 | } |
166 | } |
167 | } |
168 | } |
169 | |
31f0900c |
170 | return true; |
171 | } |
172 | |
173 | ?> |