Example #1
0
function hotpot_upgrade($oldversion)
{
    global $CFG;
    $ok = true;
    // set path to update functions
    $update_to_v2 = "{$CFG->dirroot}/mod/hotpot/db/update_to_v2.php";
    // if the version number indicates this could be an early HotPot v2.1 (Moodle 1.6),
    // check this is not actually HotPot v1 or v2.0 (Moodle 1.5) with an overly advanced version number
    if ($oldversion > 2005031400 && $oldversion <= 2006082899) {
        require_once $update_to_v2;
        if (hotpot_db_table_exists('hotpot_attempts')) {
            if (hotpot_db_field_exists('hotpot_attempts', 'details')) {
                // HotPot v2.0 (Moodle 1.5)
                $oldversion = 2005031400;
            }
        } else {
            // HotPot v1
            $oldversion = 2004122000;
        }
    }
    if ($oldversion < 2004021400) {
        execute_sql(" ALTER TABLE `{$CFG->prefix}hotpot_events` ADD `starttime` INT(10) unsigned NOT NULL DEFAULT '0' AFTER `time`");
        execute_sql(" ALTER TABLE `{$CFG->prefix}hotpot_events` ADD `endtime` INT(10) unsigned NOT NULL DEFAULT '0' AFTER `time`");
    }
    // update from HotPot v1 to HotPot v2
    if ($oldversion < 2005031400) {
        require_once $update_to_v2;
        $ok = $ok && hotpot_update_to_v2_from_v1();
    }
    if ($oldversion < 2005090700) {
        require_once $update_to_v2;
        $ok = $ok && hotpot_update_to_v2_1();
    }
    if ($oldversion > 2005031419 && $oldversion < 2005090702) {
        // update to from HotPot v2.1.0 or v2.1.1
        require_once $update_to_v2;
        $ok = $ok && hotpot_update_to_v2_1_2();
    }
    if ($oldversion < 2006042103) {
        require_once $update_to_v2;
        $ok = $ok && hotpot_update_to_v2_1_16();
    }
    if ($oldversion < 2006042601) {
        require_once $update_to_v2;
        $ok = $ok && hotpot_update_to_v2_1_17();
    }
    if ($oldversion < 2006042803) {
        require_once $update_to_v2;
        $ok = $ok && hotpot_update_to_v2_1_18();
    }
    if ($oldversion < 2006083101) {
        require_once $update_to_v2;
        $ok = $ok && hotpot_update_to_v2_2();
    }
    //////  DO NOT ADD NEW THINGS HERE!!  USE upgrade.php and the lib/ddllib.php functions.
    return $ok;
}
Example #2
0
function hotpot_db_append_table($oldtable, $table, $feedback = true)
{
    global $CFG, $db;
    if (hotpot_db_table_exists($oldtable)) {
        if (hotpot_db_table_exists($table)) {
            // expand table names
            $table = "{$CFG->prefix}{$table}";
            $oldtable = "{$CFG->prefix}{$oldtable}";
            // get field info
            $fields = $db->MetaColumns($table);
            $oldfields = $db->MetaColumns($oldtable);
            $fieldnames = array();
            if (!empty($fields) || !empty($oldfields)) {
                foreach ($fields as $field) {
                    if ($field->name != 'id' && isset($oldfields[strtoupper($field->name)])) {
                        $fieldnames[] = $field->name;
                    }
                }
            }
            $fieldnames = implode(',', $fieldnames);
            if (empty($fieldnames)) {
                $ok = false;
            } else {
                switch (strtolower($CFG->dbfamily)) {
                    case 'mysql':
                        $ok = execute_sql("INSERT INTO `{$table}` ({$fieldnames}) SELECT {$fieldnames} FROM `{$oldtable}` WHERE 1");
                        break;
                    case 'postgres':
                        $ok = execute_sql("INSERT INTO {$table} ({$fieldnames}) SELECT {$fieldnames} FROM {$oldtable}");
                        break;
                    default:
                        $ok = false;
                        break;
                }
            }
        } else {
            // $table does not exist
            $ok = hotpot_db_rename_table($oldtable, $table, $feedback);
        }
    } else {
        // $oldtable does not exist
        $ok = hotpot_db_table_exists($table, $feedback);
    }
    return $ok;
}