function regcode_update_6200 in Registration codes 6.2
Implementation of hook_update_N()
File
- ./
regcode.install, line 49 - Install, uninstall and scheme functions for the regcode module.
Code
function regcode_update_6200() {
$sql = array();
// Update our core columns
$datetime = array(
'type' => 'int',
'not null' => FALSE,
);
db_add_field($sql, 'regcode', 'created2', $datetime);
db_add_field($sql, 'regcode', 'lastused2', $datetime);
db_add_field($sql, 'regcode', 'begins2', $datetime);
db_add_field($sql, 'regcode', 'expires2', $datetime);
$sql[] = update_sql("UPDATE {regcode} SET created2 = UNIX_TIMESTAMP(created), lastused2 = UNIX_TIMESTAMP(lastused), begins2 = UNIX_TIMESTAMP(begins), expires2 = UNIX_TIMESTAMP(expires)");
db_drop_field($sql, 'regcode', 'created');
db_drop_field($sql, 'regcode', 'lastused');
db_drop_field($sql, 'regcode', 'begins');
db_drop_field($sql, 'regcode', 'expires');
db_change_field($sql, 'regcode', 'created2', 'created', $datetime);
db_change_field($sql, 'regcode', 'lastused2', 'lastused', $datetime);
db_change_field($sql, 'regcode', 'begins2', 'begins', $datetime);
db_change_field($sql, 'regcode', 'expires2', 'expires', $datetime);
// Install the new taxonomy table
$schema = regcode_schema();
db_create_table($sql, 'regcode_term', $schema['regcode_term']);
_regcode_install_vocabulary();
$vid = variable_get('regcode_vocabulary', 1);
// Create and assign taxonomy terms for each category
$res = db_query('SELECT DISTINCT(category) FROM {regcode}');
while ($row = db_fetch_array($res)) {
// Create a term for the category
$form_values = array(
'name' => $row['category'],
'vid' => $vid,
'weight' => 0,
);
taxonomy_save_term($form_values);
$terms[$row['category']] = (int) $form_values['tid'];
}
$res = db_query('SELECT rid, category FROM {regcode}');
while ($row = db_fetch_array($res)) {
$sql[] = update_sql(sprintf('INSERT INTO {regcode_term} (rid, tid) VALUES (%d, %d)', $row['rid'], $terms[$row['category']]));
}
// Drop the category field
db_drop_field($sql, 'regcode', 'category');
return $sql;
}