2004-06-02 12:45:55 +00:00
|
|
|
<?PHP
|
|
|
|
|
2006-10-26 22:39:10 +00:00
|
|
|
// THIS FILE IS DEPRECATED! PLEASE DO NOT MAKE CHANGES TO IT!
|
|
|
|
//
|
|
|
|
// IT IS USED ONLY FOR UPGRADES FROM BEFORE MOODLE 1.7, ALL
|
|
|
|
// LATER CHANGES SHOULD USE upgrade.php IN THIS DIRECTORY.
|
|
|
|
|
2004-06-02 12:45:55 +00:00
|
|
|
function wiki_upgrade($oldversion) {
|
|
|
|
/// This function does anything necessary to upgrade
|
|
|
|
/// older versions to match current functionality
|
|
|
|
|
2004-08-23 09:04:30 +00:00
|
|
|
global $CFG, $db;
|
2004-06-02 12:45:55 +00:00
|
|
|
|
|
|
|
if ($oldversion < 2004040200) {
|
|
|
|
execute_sql('ALTER TABLE `'.$CFG->prefix.'wiki` DROP `allowstudentstowiki`');
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($oldversion < 2004040700) {
|
|
|
|
execute_sql('ALTER TABLE `'.$CFG->prefix.'wiki` CHANGE `ewikiallowsafehtml` `htmlmode` TINYINT( 4 ) DEFAULT \'0\' NOT NULL');
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($oldversion < 2004042100) {
|
|
|
|
execute_sql('ALTER TABLE `'.$CFG->prefix.'wiki` ADD `pagename` VARCHAR( 255 ) AFTER `summary`');
|
|
|
|
execute_sql('ALTER TABLE `'.$CFG->prefix.'wiki_entries` CHANGE `name` `pagename` VARCHAR( 255 ) NOT NULL');
|
|
|
|
if ($wikis = get_records('wiki')) {
|
|
|
|
foreach ($wikis as $wiki) {
|
|
|
|
if (empty($wiki->pagename)) {
|
|
|
|
set_field('wiki', 'pagename', $wiki->name, 'id', $wiki->id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($oldversion < 2004053100) {
|
2006-04-26 05:48:04 +00:00
|
|
|
execute_sql('ALTER TABLE `'.$CFG->prefix.'wiki` CHANGE `initialcontent` `initialcontent` VARCHAR( 255 ) NOT NULL DEFAULT \'\'');
|
2004-06-02 12:45:55 +00:00
|
|
|
// Remove obsolete 'initialcontent' values.
|
|
|
|
if ($wikis = get_records('wiki')) {
|
|
|
|
foreach ($wikis as $wiki) {
|
|
|
|
if (!empty($wiki->initialcontent)) {
|
|
|
|
set_field('wiki', 'initialcontent', null, 'id', $wiki->id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-06-13 19:41:47 +00:00
|
|
|
if ($oldversion < 2004061300) {
|
|
|
|
execute_sql('ALTER TABLE `'.$CFG->prefix.'wiki`'
|
|
|
|
.' ADD `setpageflags` TINYINT DEFAULT \'1\' NOT NULL AFTER `ewikiacceptbinary`,'
|
|
|
|
.' ADD `strippages` TINYINT DEFAULT \'1\' NOT NULL AFTER `setpageflags`,'
|
|
|
|
.' ADD `removepages` TINYINT DEFAULT \'1\' NOT NULL AFTER `strippages`,'
|
|
|
|
.' ADD `revertchanges` TINYINT DEFAULT \'1\' NOT NULL AFTER `removepages`');
|
|
|
|
}
|
|
|
|
|
2004-06-24 15:56:01 +00:00
|
|
|
if ($oldversion < 2004062400) {
|
|
|
|
execute_sql('ALTER TABLE `'.$CFG->prefix.'wiki`'
|
|
|
|
.' ADD `disablecamelcase` TINYINT DEFAULT \'0\' NOT NULL AFTER `ewikiacceptbinary`');
|
|
|
|
}
|
|
|
|
|
2004-08-22 16:41:54 +00:00
|
|
|
if ($oldversion < 2004082200) {
|
|
|
|
table_column('wiki_pages', '', 'userid', "integer", "10", "unsigned", "0", "not null", "author");
|
|
|
|
}
|
|
|
|
|
2004-08-23 09:04:30 +00:00
|
|
|
if ($oldversion < 2004082303) { // Try to update userid for old records
|
|
|
|
if ($pages = get_records('wiki_pages', 'userid', 0, 'pagename', 'lastmodified,author,pagename,version')) {
|
|
|
|
foreach ($pages as $page) {
|
|
|
|
$name = explode('(', $page->author);
|
|
|
|
$name = trim($name[0]);
|
|
|
|
$name = explode(' ', $name);
|
|
|
|
$firstname = $name[0];
|
|
|
|
unset($name[0]);
|
|
|
|
$lastname = trim(implode(' ', $name));
|
|
|
|
if ($user = get_record('user', 'firstname', $firstname, 'lastname', $lastname)) {
|
|
|
|
set_field('wiki_pages', 'userid', $user->id, 'pagename', addslashes($page->pagename), 'version', $page->version);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-11-21 21:16:41 +00:00
|
|
|
if ($oldversion < 2004111200) {
|
|
|
|
execute_sql("ALTER TABLE {$CFG->prefix}wiki DROP INDEX course;",false);
|
|
|
|
execute_sql("ALTER TABLE {$CFG->prefix}wiki_entries DROP INDEX course;",false);
|
|
|
|
execute_sql("ALTER TABLE {$CFG->prefix}wiki_entries DROP INDEX userid;",false);
|
|
|
|
execute_sql("ALTER TABLE {$CFG->prefix}wiki_entries DROP INDEX groupid;",false);
|
|
|
|
execute_sql("ALTER TABLE {$CFG->prefix}wiki_entries DROP INDEX wikiid;",false);
|
|
|
|
execute_sql("ALTER TABLE {$CFG->prefix}wiki_entries DROP INDEX pagename;",false);
|
|
|
|
|
|
|
|
modify_database('','ALTER TABLE prefix_wiki ADD INDEX course (course);');
|
|
|
|
modify_database('','ALTER TABLE prefix_wiki_entries ADD INDEX course (course);');
|
|
|
|
modify_database('','ALTER TABLE prefix_wiki_entries ADD INDEX userid (userid);');
|
|
|
|
modify_database('','ALTER TABLE prefix_wiki_entries ADD INDEX groupid (groupid);');
|
|
|
|
modify_database('','ALTER TABLE prefix_wiki_entries ADD INDEX wikiid (wikiid);');
|
|
|
|
modify_database('','ALTER TABLE prefix_wiki_entries ADD INDEX pagename (pagename);');
|
|
|
|
}
|
|
|
|
|
2005-02-21 17:55:54 +00:00
|
|
|
if ($oldversion < 2005022000) {
|
|
|
|
// recreating the wiki_pages table completelly (missing id, bug 2608)
|
|
|
|
if ($rows = count_records("wiki_pages")) {
|
|
|
|
// we need to use the temp stuff
|
|
|
|
modify_database("","CREATE TABLE `prefix_wiki_pages_tmp` (
|
|
|
|
`pagename` VARCHAR(160) NOT NULL,
|
|
|
|
`version` INT(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
`flags` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`content` MEDIUMTEXT,
|
|
|
|
`author` VARCHAR(100) DEFAULT 'ewiki',
|
|
|
|
`userid` INT(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
`created` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`lastmodified` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`refs` MEDIUMTEXT,
|
|
|
|
`meta` MEDIUMTEXT,
|
|
|
|
`hits` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`wiki` INT(10) UNSIGNED NOT NULL);");
|
|
|
|
|
|
|
|
execute_sql("INSERT INTO {$CFG->prefix}wiki_pages_tmp (pagename, version, flags, content,
|
|
|
|
author, userid, created, lastmodified,
|
|
|
|
refs, meta, hits, wiki)
|
|
|
|
SELECT pagename, version, flags, content,
|
|
|
|
author, userid, created, lastmodified,
|
|
|
|
refs, meta, hits, wiki
|
|
|
|
FROM {$CFG->prefix}wiki_pages");
|
|
|
|
|
|
|
|
$insertafter = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
execute_sql("DROP TABLE {$CFG->prefix}wiki_pages");
|
|
|
|
|
|
|
|
modify_database("","CREATE TABLE `prefix_wiki_pages` (
|
|
|
|
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
|
|
`pagename` VARCHAR(160) NOT NULL,
|
|
|
|
`version` INT(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
`flags` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`content` MEDIUMTEXT,
|
|
|
|
`author` VARCHAR(100) DEFAULT 'ewiki',
|
|
|
|
`userid` INT(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
`created` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`lastmodified` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`refs` MEDIUMTEXT,
|
|
|
|
`meta` MEDIUMTEXT,
|
|
|
|
`hits` INT(10) UNSIGNED DEFAULT 0,
|
|
|
|
`wiki` INT(10) UNSIGNED NOT NULL,
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
UNIQUE KEY `wiki_pages_uk` (`pagename`,`version`,`wiki`))
|
|
|
|
TYPE=MyISAM COMMENT='Holds the Wiki-Pages';");
|
|
|
|
|
|
|
|
if (!empty($insertafter)) {
|
|
|
|
execute_sql("INSERT INTO {$CFG->prefix}wiki_pages (pagename, version, flags, content,
|
|
|
|
author, userid, created, lastmodified,
|
|
|
|
refs, meta, hits, wiki)
|
|
|
|
SELECT pagename, version, flags, content,
|
|
|
|
author, userid, created, lastmodified,
|
|
|
|
refs, meta, hits, wiki
|
|
|
|
FROM {$CFG->prefix}wiki_pages_tmp");
|
|
|
|
|
|
|
|
execute_sql("DROP TABLE {$CFG->prefix}wiki_pages_tmp");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-04-28 03:18:56 +00:00
|
|
|
if ($oldversion < 2006042800) {
|
2006-04-26 05:48:04 +00:00
|
|
|
|
2006-04-28 03:18:56 +00:00
|
|
|
execute_sql("UPDATE {$CFG->prefix}wiki SET summary='' WHERE summary IS NULL");
|
2006-04-26 05:48:04 +00:00
|
|
|
table_column('wiki','summary','summary','text','','','','not null');
|
2006-04-28 03:18:56 +00:00
|
|
|
|
|
|
|
execute_sql("UPDATE {$CFG->prefix}wiki SET pagename='' WHERE pagename IS NULL");
|
2006-04-26 05:48:04 +00:00
|
|
|
table_column('wiki','pagename','pagename','varchar','255','','','not null');
|
2006-04-28 03:18:56 +00:00
|
|
|
|
|
|
|
execute_sql("UPDATE {$CFG->prefix}wiki SET initialcontent='' WHERE initialcontent IS NULL");
|
2006-04-26 05:48:04 +00:00
|
|
|
table_column('wiki','initialcontent','initialcontent','varchar','255','','','not null');
|
|
|
|
}
|
2006-09-25 17:42:32 +00:00
|
|
|
if ($oldversion < 2006092502) {
|
|
|
|
modify_database("","
|
|
|
|
CREATE TABLE prefix_wiki_locks
|
|
|
|
(
|
|
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
|
|
wikiid INT(10) UNSIGNED NOT NULL,
|
|
|
|
pagename VARCHAR(160) NOT NULL DEFAULT '',
|
|
|
|
lockedby INT(10) NOT NULL DEFAULT 0,
|
|
|
|
lockedsince INT(10) NOT NULL DEFAULT 0,
|
|
|
|
lockedseen INT(10) NOT NULL DEFAULT 0,
|
|
|
|
PRIMARY KEY(id),
|
2006-09-25 17:49:33 +00:00
|
|
|
UNIQUE INDEX wiki_locks_uk(wikiid,pagename),
|
2006-09-25 17:42:32 +00:00
|
|
|
INDEX wiki_locks_ix(lockedseen)
|
|
|
|
);");
|
|
|
|
}
|
2006-10-26 22:39:10 +00:00
|
|
|
|
|
|
|
////// DO NOT ADD NEW THINGS HERE!! USE upgrade.php and the lib/ddllib.php functions.
|
|
|
|
|
2004-06-02 12:45:55 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|