495 lines
26 KiB
PHP
495 lines
26 KiB
PHP
<?PHP //$Id$
|
|
|
|
// This file keeps track of upgrades to Moodle.
|
|
//
|
|
// Sometimes, changes between versions involve
|
|
// alterations to database structures and other
|
|
// major things that may break installations.
|
|
//
|
|
// The upgrade function in this file will attempt
|
|
// to perform all the necessary actions to upgrade
|
|
// your older installtion to the current version.
|
|
//
|
|
// If there's something it cannot do itself, it
|
|
// will tell you what you need to do.
|
|
//
|
|
// The commands in here will all be database-neutral,
|
|
// using the functions defined in lib/ddllib.php
|
|
|
|
|
|
function xmldb_main_upgrade($oldversion=0) {
|
|
|
|
global $CFG, $THEME, $USER, $db;
|
|
|
|
$result = true;
|
|
|
|
if ($oldversion < 2006100401) {
|
|
/// Only for those tracking Moodle 1.7 dev, others will have these dropped in moodle_install_roles()
|
|
if (!empty($CFG->rolesactive)) {
|
|
drop_table(new XMLDBTable('user_students'));
|
|
drop_table(new XMLDBTable('user_teachers'));
|
|
drop_table(new XMLDBTable('user_coursecreators'));
|
|
drop_table(new XMLDBTable('user_admins'));
|
|
}
|
|
}
|
|
|
|
if ($oldversion < 2006100601) { /// Disable the exercise module because it's unmaintained
|
|
if ($module = get_record('modules', 'name', 'exercise')) {
|
|
if ($module->visible) {
|
|
// Hide/disable the module entry
|
|
set_field('modules', 'visible', '0', 'id', $module->id);
|
|
// Save existing visible state for all activities
|
|
set_field('course_modules', 'visibleold', '1', 'visible' ,'1', 'module', $module->id);
|
|
set_field('course_modules', 'visibleold', '0', 'visible' ,'0', 'module', $module->id);
|
|
// Hide all activities
|
|
set_field('course_modules', 'visible', '0', 'module', $module->id);
|
|
|
|
require_once($CFG->dirroot.'/course/lib.php');
|
|
rebuild_course_cache(); // Rebuld cache for all modules because they might have changed
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($oldversion < 2006101001) { /// Disable the LAMS module by default
|
|
if (!count_records('lams')) {
|
|
set_field('modules', 'visible', 0, 'name', 'lams'); // Disable it by default
|
|
}
|
|
}
|
|
|
|
if ($result && $oldversion < 2006102600) {
|
|
|
|
/// Define fields to be added to user_info_field
|
|
$table = new XMLDBTable('user_info_field');
|
|
$field = new XMLDBField('description');
|
|
$field->setAttributes(XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null, 'categoryid');
|
|
$field1 = new XMLDBField('param1');
|
|
$field1->setAttributes(XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null, 'defaultdata');
|
|
$field2 = new XMLDBField('param2');
|
|
$field2->setAttributes(XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null, 'param1');
|
|
$field3 = new XMLDBField('param3');
|
|
$field3->setAttributes(XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null, 'param2');
|
|
$field4 = new XMLDBField('param4');
|
|
$field4->setAttributes(XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null, 'param3');
|
|
$field5 = new XMLDBField('param5');
|
|
$field5->setAttributes(XMLDB_TYPE_TEXT, 'big', null, null, null, null, null, null, 'param4');
|
|
|
|
/// Launch add fields
|
|
$result = $result && add_field($table, $field);
|
|
$result = $result && add_field($table, $field1);
|
|
$result = $result && add_field($table, $field2);
|
|
$result = $result && add_field($table, $field3);
|
|
$result = $result && add_field($table, $field4);
|
|
$result = $result && add_field($table, $field5);
|
|
}
|
|
|
|
if ($result && $oldversion < 2006112000) {
|
|
|
|
/// Define field attachment to be added to post
|
|
$table = new XMLDBTable('post');
|
|
$field = new XMLDBField('attachment');
|
|
$field->setAttributes(XMLDB_TYPE_CHAR, '100', null, null, null, null, null, null, 'format');
|
|
|
|
/// Launch add field attachment
|
|
$result = $result && add_field($table, $field);
|
|
}
|
|
|
|
if ($result && $oldversion < 2006112200) {
|
|
|
|
/// Define field imagealt to be added to user
|
|
$table = new XMLDBTable('user');
|
|
$field = new XMLDBField('imagealt');
|
|
$field->setAttributes(XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null, 'trustbitmask');
|
|
|
|
/// Launch add field imagealt
|
|
$result = $result && add_field($table, $field);
|
|
|
|
$table = new XMLDBTable('user');
|
|
$field = new XMLDBField('screenreader');
|
|
$field->setAttributes(XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, null, null, '0', 'imagealt');
|
|
|
|
/// Launch add field screenreader
|
|
$result = $result && add_field($table, $field);
|
|
}
|
|
|
|
if ($oldversion < 2006120300) { /// Delete guest course section settings
|
|
// following code can be executed repeatedly, such as when upgrading from 1.7.x - it is ok
|
|
if ($guest = get_record('user', 'username', 'guest')) {
|
|
execute_sql("DELETE FROM {$CFG->prefix}course_display where userid=$guest->id ;", true);
|
|
}
|
|
}
|
|
|
|
if ($oldversion < 2006120400) { /// Remove secureforms config setting
|
|
execute_sql("DELETE FROM {$CFG->prefix}config where name='secureforms' ;", true);
|
|
}
|
|
|
|
if ($oldversion < 2006120700) { // add moodle/user:viewdetails to all roles!
|
|
if ($roles = get_records('role')) {
|
|
$context = get_context_instance(CONTEXT_SYSTEM);
|
|
foreach ($roles as $roleid=>$role) {
|
|
assign_capability('moodle/user:viewdetails', CAP_ALLOW, $roleid, $context->id);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Move the auth plugin settings into the config_plugin table
|
|
if ($oldversion < 2007010300) {
|
|
$authplugins = get_list_of_plugins('auth');
|
|
foreach ($CFG as $k => $v) {
|
|
if (strpos($k, 'auth_') !== 0) {
|
|
continue;
|
|
}
|
|
$authsetting = substr($k, 5);
|
|
foreach ($authplugins as $auth) {
|
|
if (strpos($authsetting, $auth) !== 0) {
|
|
continue;
|
|
}
|
|
$setting = substr($authsetting, strlen($auth));
|
|
if (set_config($setting, $v, "auth/$auth")) {
|
|
delete_records('config', 'name', $k);
|
|
unset($CFG->{$k});
|
|
}
|
|
break; // don't check the rest of the auth plugin names
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($oldversion < 2007010301) {
|
|
//
|
|
// Core MNET tables
|
|
//
|
|
$table = new XMLDBTable('mnet_host');
|
|
$table->comment = 'Information about the local and remote hosts for RPC';
|
|
// fields
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
|
$f->comment = 'Unique Host ID';
|
|
$f = $table->addFieldInfo('deleted', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, null, null, null, 0);
|
|
$f = $table->addFieldInfo('wwwroot', XMLDB_TYPE_CHAR, '255', null,
|
|
XMLDB_NOTNULL, null, null, null, '');
|
|
$f = $table->addFieldInfo('ip_address', XMLDB_TYPE_CHAR, '39', null,
|
|
XMLDB_NOTNULL, null, null, null, '');
|
|
$f = $table->addFieldInfo('name', XMLDB_TYPE_CHAR, '80', null,
|
|
XMLDB_NOTNULL, null, null, null, '');
|
|
$f = $table->addFieldInfo('public_key', XMLDB_TYPE_TEXT, 'medium', null,
|
|
XMLDB_NOTNULL, null, null, null, null);
|
|
$f = $table->addFieldInfo('public_key_expires', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, null, null, null, 0);
|
|
$f = $table->addFieldInfo('transport', XMLDB_TYPE_INTEGER, '2', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, null, null, null, 0);
|
|
$f = $table->addFieldInfo('portno', XMLDB_TYPE_INTEGER, '2', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, null, null, null, 0);
|
|
$f = $table->addFieldInfo('last_connect_time', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, null, null, null, 0);
|
|
$f = $table->addFieldInfo('last_log_id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, null, null, null, 0);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
$table = new XMLDBTable('mnet_host2service');
|
|
$table->comment = 'Information about the services for a given host';
|
|
// fields
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('hostid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('serviceid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('publish', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('subscribe', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('hostid_serviceid', XMLDB_INDEX_UNIQUE, array('hostid', 'serviceid'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
$table = new XMLDBTable('mnet_log');
|
|
$table->comment = 'Store session data from users migrating to other sites';
|
|
// fields
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('hostid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('remoteid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('time', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('ip', XMLDB_TYPE_CHAR, '15', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('course', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('coursename', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('module', XMLDB_TYPE_CHAR, '20', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('cmid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('action', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('url', XMLDB_TYPE_CHAR, '100', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('info', XMLDB_TYPE_CHAR, '255', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('host_user_course', XMLDB_INDEX_NOTUNIQUE, array('hostid', 'userid', 'course'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
|
|
$table = new XMLDBTable('mnet_rpc');
|
|
$table->comment = 'Functions or methods that we may publish or subscribe to';
|
|
// fields
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('function_name', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('xmlrpc_path', XMLDB_TYPE_CHAR, '80', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('parent_type', XMLDB_TYPE_CHAR, '6', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('parent', XMLDB_TYPE_CHAR, '20', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('enabled', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('help', XMLDB_TYPE_TEXT, 'medium', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('profile', XMLDB_TYPE_TEXT, 'medium', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('enabled_xpath', XMLDB_INDEX_NOTUNIQUE, array('enabled', 'xmlrpc_path'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
$table = new XMLDBTable('mnet_service');
|
|
$table->comment = 'A service is a group of functions';
|
|
// fields
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('name', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('description', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('apiversion', XMLDB_TYPE_CHAR, '10', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('offer', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
$table = new XMLDBTable('mnet_service2rpc');
|
|
$table->comment = 'Group functions or methods under a service';
|
|
// fields
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('serviceid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('rpcid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('unique', XMLDB_INDEX_UNIQUE, array('rpcid', 'serviceid'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
//
|
|
// Prime MNET configuration entries -- will be needed later by auth/mnet
|
|
//
|
|
include_once $CFG->dirroot . '/mnet/lib.php';
|
|
$env = new mnet_environment();
|
|
$env->init();
|
|
unset($env);
|
|
|
|
// add mnethostid to user-
|
|
$table = new XMLDBTable('user');
|
|
$field = new XMLDBField('mnethostid');
|
|
$field->setType(XMLDB_TYPE_INTEGER);
|
|
$field->setLength(10);
|
|
$field->setNotNull(true);
|
|
$field->setSequence(null);
|
|
$field->setEnum(null);
|
|
$field->setDefault('0');
|
|
$field->setPrevious("deleted");
|
|
$field->setNext("username");
|
|
$result = $result && add_field($table, $field);
|
|
|
|
// The default mnethostid is zero... we need to update this for all
|
|
// users of the local IdP service.
|
|
set_field('user',
|
|
'mnethostid', $CFG->mnet_localhost_id,
|
|
'mnethostid', '0');
|
|
|
|
|
|
$index = new XMLDBIndex('username');
|
|
$index->setUnique(true);
|
|
$index->setFields(array('username'));
|
|
drop_index($table, $index);
|
|
$index->setFields(array('mnethostid', 'username'));
|
|
$result = $result && add_index($table, $index);
|
|
|
|
unset($table, $field, $index);
|
|
|
|
/**
|
|
** auth/mnet tables
|
|
**/
|
|
$table = new XMLDBTable('mnet_session');
|
|
$table->comment='Store session data from users migrating to other sites';
|
|
// fields
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL,XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('username', XMLDB_TYPE_CHAR, '100', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('token', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('mnethostid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('useragent', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('confirm_timeout', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('session_id', XMLDB_TYPE_CHAR, '40', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('expires', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('token', XMLDB_INDEX_UNIQUE, array('token'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
|
|
$table = new XMLDBTable('mnet_sso_access_control');
|
|
$table->comment = 'Users by host permitted (or not) to login from a remote provider';
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL,XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('username', XMLDB_TYPE_CHAR, '100', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('mnet_host_id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('access', XMLDB_TYPE_CHAR, '20', null,
|
|
XMLDB_NOTNULL, NULL, null, null, 'allow');
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('mnethostid_username', XMLDB_INDEX_UNIQUE, array('mnet_host_id', 'username'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
if (empty($USER->mnet_host_id)) {
|
|
$USER->mnet_host_id = $CFG->mnet_localhost_id; // Something for the current user to prevent warnings
|
|
}
|
|
|
|
/**
|
|
** enrol/mnet tables
|
|
**/
|
|
$table = new XMLDBTable('mnet_enrol_course');
|
|
$table->comment = 'Information about courses on remote hosts';
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL,XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('hostid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('remoteid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('cat_id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('cat_name', XMLDB_TYPE_CHAR, '255', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('cat_description', XMLDB_TYPE_TEXT, 'medium', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('sortorder', XMLDB_TYPE_INTEGER, '4', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('fullname', XMLDB_TYPE_CHAR, '254', null,
|
|
XMLDB_NOTNULL, NULL, null, null, '');
|
|
$f = $table->addFieldInfo('shortname', XMLDB_TYPE_CHAR, '15', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('idnumber', XMLDB_TYPE_CHAR, '100', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('summary', XMLDB_TYPE_TEXT, 'medium', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('startdate', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('cost', XMLDB_TYPE_CHAR, '10', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('currency', XMLDB_TYPE_CHAR, '3', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('defaultroleid', XMLDB_TYPE_INTEGER, '4', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('defaultrolename', XMLDB_TYPE_CHAR, '255', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('hostid_remoteid', XMLDB_INDEX_UNIQUE, array('hostid', 'remoteid'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
|
|
$table = new XMLDBTable('mnet_enrol_assignments');
|
|
|
|
$table->comment = 'Information about enrolments on courses on remote hosts';
|
|
$f = $table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', false,
|
|
XMLDB_NOTNULL,XMLDB_SEQUENCE, null, null, null);
|
|
$f = $table->addFieldInfo('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('hostid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('rolename', XMLDB_TYPE_CHAR, '255', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
$f = $table->addFieldInfo('enroltime', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED,
|
|
XMLDB_NOTNULL, NULL, null, null, 0);
|
|
$f = $table->addFieldInfo('enroltype', XMLDB_TYPE_CHAR, '20', null,
|
|
XMLDB_NOTNULL, NULL, null, null, null);
|
|
|
|
// PK and indexes
|
|
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
|
|
$table->addIndexInfo('hostid_courseid', XMLDB_INDEX_NOTUNIQUE, array('hostid', 'courseid'));
|
|
$table->addIndexInfo('userid', XMLDB_INDEX_NOTUNIQUE, array('userid'));
|
|
// Create the table
|
|
$result = $result && create_table($table);
|
|
|
|
}
|
|
|
|
if ($result && $oldversion < 2007010404) {
|
|
|
|
/// Define field shortname to be added to user_info_field
|
|
$table = new XMLDBTable('user_info_field');
|
|
$field = new XMLDBField('shortname');
|
|
$field->setAttributes(XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, 'shortname', 'id');
|
|
|
|
/// Launch add field shortname
|
|
$result = $result && add_field($table, $field);
|
|
|
|
/// Changing type of field name on table user_info_field to text
|
|
$table = new XMLDBTable('user_info_field');
|
|
$field = new XMLDBField('name');
|
|
$field->setAttributes(XMLDB_TYPE_TEXT, 'big', null, XMLDB_NOTNULL, null, null, null, null, 'shortname');
|
|
|
|
/// Launch change of type for field name
|
|
$result = $result && change_field_type($table, $field);
|
|
|
|
/// For existing fields use 'name' as the 'shortname' entry
|
|
if ($fields = get_records_select('user_info_field', 1, '', 'id, name')) {
|
|
foreach ($fields as $field) {
|
|
$field->shortname = clean_param($field->name, PARAM_ALPHANUM);
|
|
$result && update_record('user_info_field', $field);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
?>
|