prefix}blocks` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(40) NOT NULL default '', `version` int(10) NOT NULL default '0', `cron` int(10) unsigned NOT NULL default '0', `lastcron` int(10) unsigned NOT NULL default '0', `visible` tinyint(1) NOT NULL default '1', PRIMARY KEY (`id`) ) COMMENT = 'To register and update all the available blocks'"); } if ($oldversion < 2004101900 && $result) { $result = execute_sql("CREATE TABLE `{$CFG->prefix}block` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(40) NOT NULL default '', `version` int(10) NOT NULL default '0', `cron` int(10) unsigned NOT NULL default '0', `lastcron` int(10) unsigned NOT NULL default '0', `visible` tinyint(1) NOT NULL default '1', `multiple` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) COMMENT = 'To register and update all the available blocks'"); if(!$result) { return false; } $records = get_records('blocks'); if(!empty($records)) { foreach($records as $block) { $block->multiple = 0; insert_record('block', $block, false); } } execute_sql("DROP TABLE `{$CFG->prefix}blocks`"); $result = execute_sql("CREATE TABLE `{$CFG->prefix}block_instance` ( `id` int(10) not null auto_increment, `blockid` int(10) not null default '0', `pageid` int(10) not null default '0', `pagetype` varchar(12) not null default '', `position` enum('l', 'r') not null, `weight` tinyint(3) not null default '0', `visible` tinyint(1) not null default '0', `configdata` text not null default '', PRIMARY KEY(`id`), INDEX pageid(`pageid`) )"); if(!$result) { return false; } $records = get_records('course', '','','', 'id, shortname, blockinfo'); if(!empty($records)) { foreach($records as $thiscourse) { // The @ suppresses a notice emitted if there is no : in the string @list($left, $right) = split(':', $thiscourse->blockinfo); if(!empty($left)) { $arr = explode(',', $left); foreach($arr as $weight => $blk) { $instance = new stdClass; $instance->blockid = abs($blk); $instance->pageid = $thiscourse->id; $instance->pagetype = PAGE_COURSE_VIEW; $instance->position = BLOCK_POS_LEFT; $instance->weight = $weight; $instance->visible = ($blk > 0) ? 1 : 0; $instance->configdata = ''; insert_record('block_instance', $instance, false); } } if(!empty($right)) { $arr = explode(',', $right); foreach($arr as $weight => $blk) { $instance = new stdClass; $instance->blockid = abs($blk); $instance->pageid = $thiscourse->id; $instance->pagetype = PAGE_COURSE_VIEW; $instance->position = BLOCK_POS_RIGHT; $instance->weight = $weight; $instance->visible = ($blk > 0) ? 1 : 0; $instance->configdata = ''; insert_record('block_instance', $instance, false); } } } } execute_sql("ALTER TABLE `{$CFG->prefix}course` DROP COLUMN blockinfo"); } if ($oldversion < 2004112900 && $result) { $result = $result && table_column('block_instance', 'pagetype', 'pagetype', 'varchar', '20', ''); $result = $result && table_column('block_instance', 'position', 'position', 'varchar', '10', ''); } if ($oldversion < 2004112900 && $result) { execute_sql('UPDATE '.$CFG->prefix.'block_instance SET pagetype = \''.PAGE_COURSE_VIEW.'\' WHERE pagetype = \'\''); } if ($oldversion < 2005043000 && $result) { $records = get_records('block'); if(!empty($records)) { foreach($records as $block) { if(!block_is_compatible($block->name)) { $block->visible = 0; update_record('block', $block); notify('The '.$block->name.' block has been disabled because it is not compatible with Moodle 1.5 and needs to be updated by a programmer.'); } } } } if ($oldversion < 2005022401) { // add an index where we really need it modify_database('','ALTER TABLE prefix_block_instance ADD INDEX pagetype (pagetype);'); } //Finally, return result return $result; } ?>