You are here

function nodequeue_update_5201 in Nodequeue 5.2

Same name and namespace in other branches
  1. 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;
}