You are here

nodequeue.install in Nodequeue 5

File

nodequeue.install
View source
<?php

function nodequeue_install() {
  drupal_set_message('Installing nodequeue');
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("CREATE TABLE if not exists {nodequeue_queue} (\n          qid int(10) unsigned NOT NULL PRIMARY KEY,\n          title varchar(255) NOT NULL,\n          size int(3) unsigned default '0',\n          link varchar(255),\n          link_remove varchar(255)\n        ) /*!40100 DEFAULT CHARACTER SET utf8 */");
      db_query("CREATE TABLE if not exists {nodequeue_roles} (\n          qid int(10) unsigned NOT NULL,\n          rid int(10) unsigned,\n          KEY {nodequeue_roles}_qid_idx (qid),\n          KEY {nodequeue_roles}_rid_idx (rid)\n        )/*!40100 DEFAULT CHARACTER SET utf8 */");
      db_query("CREATE TABLE if not exists {nodequeue_types} (\n          qid int(10) unsigned NOT NULL,\n          type varchar(255),\n          KEY {nodequeue_types}_qid_idx (qid),\n          KEY {nodequeue_types}_type_idx (type)\n        )/*!40100 DEFAULT CHARACTER SET utf8 */");
      db_query("CREATE TABLE if not exists {nodequeue_nodes} (\n          qid int(10) unsigned NOT NULL,\n          nid int(10) unsigned,\n          position int(3) unsigned,\n          timestamp int unsigned NOT NULL default '0',\n          KEY {nodequeue_nodes}_qid_idx (qid, position),\n          KEY {nodequeue_nodes}_nid_idx (nid)\n        )/*!40100 DEFAULT CHARACTER SET utf8 */");
      $success = TRUE;
      break;
    case 'pgsql':
      db_query("CREATE TABLE {nodequeue_queue} (\n          qid integer NOT NULL PRIMARY KEY,\n          title varchar(255) NOT NULL,\n          size integer default '0',\n          link varchar(255),\n          link_remove varchar(255)\n        )");
      db_query("CREATE TABLE {nodequeue_roles} (\n          qid integer NOT NULL,\n          rid integer\n        )");
      db_query("CREATE INDEX {nodequeue_roles}_qid_idx ON {nodequeue_roles} (qid)");
      db_query("CREATE INDEX {nodequeue_roles}_rid_idx ON {nodequeue_roles} (rid)");
      db_query("CREATE TABLE {nodequeue_types} (\n          qid integer NOT NULL,\n          type varchar(255)\n        )");
      db_query("CREATE INDEX {nodequeue_types}_qid_idx ON {nodequeue_types} (qid)");
      db_query("CREATE TABLE {nodequeue_nodes} (\n          qid integer NOT NULL,\n          nid integer,\n          position integer,\n          timestamp integer NOT NULL default '0',\n        )");
      db_query("CREATE INDEX {nodequeue_nodes}_qid_idx ON {nodequeue_nodes} (qid, position)");
      db_query("CREATE INDEX {nodequeue_nodes}_nid_idx ON {nodequeue_nodes} (nid)");
      db_query("CREATE SEQUENCE nodequeue_queue_qid_seq INCREMENT 1 START 1");
      $success = TRUE;
      break;
  }
  if ($success) {
    drupal_set_message(t('Nodequeue module installed tables successfully.'));
  }
  else {
    drupal_set_message(t('The installation of nodequeue module was unsuccessful.'), 'error');
  }
}
function nodequeue_uninstall() {
  $tables = array(
    'nodequeue_queue',
    'nodequeue_roles',
    'nodequeue_types',
    'nodequeue_nodes',
  );
  foreach ($tables as $table) {
    if (db_table_exists($table)) {
      db_query("DROP TABLE {$table}");
    }
  }
}
function nodequeue_update_1() {
  if ($GLOBALS['db_type'] == 'pgsql') {
    db_query("CREATE SEQUENCE nodequeue_queue_qid_seq INCREMENT 1 START 1");
  }
}
function nodequeue_update_5000() {
  $ret = array();
  $ret[] = t(array(
    'success' => TRUE,
    'query' => 'Some of the following queries may appear to fail. This is not a problem.',
  ));
  $ret[] = update_sql("ALTER TABLE {nodequeue_queue} ADD COLUMN link VARCHAR(40) DEFAULT '' NOT NULL");
  $ret[] = update_sql("ALTER TABLE {nodequeue_queue} ADD COLUMN link_remove VARCHAR(40) DEFAULT '' NOT NULL");
  $ret[] = update_sql("CREATE INDEX {nodequeue_roles}_qid_idx ON {nodequeue_roles} (qid)");
  $ret[] = update_sql("CREATE INDEX {nodequeue_roles}_rid_idx ON {nodequeue_roles} (rid)");
  $ret[] = update_sql("CREATE INDEX {nodequeue_types}_qid_idx ON {nodequeue_types} (qid)");
  $ret[] = update_sql("CREATE INDEX {nodequeue_nodes}_qid_idx ON {nodequeue_nodes} (qid, position)");
  $ret[] = update_sql("CREATE INDEX {nodequeue_nodes}_nid_idx ON {nodequeue_nodes} (nid)");
  $ret[] = _system_update_utf8(array(
    'nodequeue_queue',
    'nodequeue_roles',
    'nodequeue_types',
    'nodequeue_nodes',
  ));
  return $ret;
}
function nodequeue_update_5001() {
  $ret = array();
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      $ret[] = update_sql("ALTER TABLE {nodequeue_nodes} ADD COLUMN timestamp int DEFAULT '0' NOT NULL");
      break;
    case 'pgsql':
      db_add_column($ret, 'nodequeue_nodes', 'timestamp', 'integer', array(
        'default' => 0,
        'not null' => TRUE,
      ));
      break;
  }
  return $ret;
}