function nodequeue_update_5201 in Nodequeue 5.2
Same name and namespace in other branches
- 6.2 nodequeue.install \nodequeue_update_5201()
File
- ./
nodequeue.install, line 177
Code
function nodequeue_update_5201() {
$ret = array();
// Add new columns to the nodequeue_queue table.
db_add_column($ret, 'nodequeue_queue', 'owner', 'varchar(255)', array(
'default' => "'nodequeue'",
));
db_add_column($ret, 'nodequeue_queue', 'show_in_ui', 'integer', array(
'default' => 1,
));
db_add_column($ret, 'nodequeue_queue', 'show_in_tab', 'integer', array(
'default' => 1,
));
db_add_column($ret, 'nodequeue_queue', 'show_in_links', 'integer', array(
'default' => 1,
));
db_add_column($ret, 'nodequeue_queue', 'reference', 'varchar(255)', array(
'default' => 0,
));
// Create the nodequeue_subqueue table.
$ret[] = update_sql("UPDATE {nodequeue_queue} SET owner = 'nodequeue', show_in_ui = 1, show_in_tab = 1, show_in_links = 1, reference = 0");
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("CREATE TABLE if not exists {nodequeue_subqueue} (\n sqid int(10) unsigned PRIMARY KEY,\n qid int(10) unsigned NOT NULL,\n reference varchar(255) default 0,\n title varchar(255) default '',\n KEY {nodequeue_subqueue}_qid_idx (qid),\n KEY {nodequeue_subqueue}_reference_idx (reference),\n KEY {nodequeue_subqueue}_title_idx (title)\n )/*!40100 DEFAULT CHARACTER SET utf8 */");
break;
case 'pgsql':
break;
}
// Populate the nodequeue_subqueue table.
$result = db_query("SELECT * FROM {nodequeue_queue}");
while ($queue = db_fetch_object($result)) {
// Keep the qid so that we can update our sequence table later on.
$last_qid = $queue->qid;
$ret[] = update_sql("INSERT INTO {nodequeue_subqueue} (sqid, qid, reference, title) VALUES ({$queue->qid}, {$queue->qid}, {$queue->qid}, '{$queue->title}')");
}
if (isset($last_qid)) {
// Fix the sequences
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{nodequeue_subqueue}_sqid', {$last_qid})");
break;
case 'pgsql':
// I don't believe we need to do anything here.
break;
}
}
// Transform the nodequeue_nodes table.
db_add_column($ret, 'nodequeue_nodes', 'sqid', 'integer');
$ret[] = update_sql("UPDATE {nodequeue_nodes} SET sqid = qid");
$ret[] = update_sql("CREATE INDEX {nodequeue_nodes}_sqid_idx ON {nodequeue_nodes} (sqid, position)");
return $ret;
}