You are here

function nodequeue_install in Nodequeue 5.2

Same name and namespace in other branches
  1. 5 nodequeue.install \nodequeue_install()
  2. 6.2 nodequeue.install \nodequeue_install()

File

./nodequeue.install, line 3

Code

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          subqueue_title varchar(255) NOT NULL,\n          size int(3) unsigned default '0',\n          link varchar(255),\n          link_remove varchar(255),\n          owner varchar(255) default 'nodequeue',\n          show_in_ui int(1) default '1',\n          show_in_tab int(1) default '1',\n          show_in_links int(1) default '1',\n          reference varchar(255) default '0',\n          reverse tinyint\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 (qid),\n          KEY (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 (qid),\n          KEY (type)\n        )/*!40100 DEFAULT CHARACTER SET utf8 */");

      // Subqueues are minor queues that inherit all of the properties of
      // the parent queue. A parent queue must have at least 1 subqueue
      // to do anything. Reference is for the use of whatever is creating
      // the subqueues in order to link it to some other ID easily.
      db_query("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 (qid),\n          KEY (reference),\n          KEY (title)\n        )/*!40100 DEFAULT CHARACTER SET utf8 */");
      db_query("CREATE TABLE if not exists {nodequeue_nodes} (\n          qid int(10) unsigned NOT NULL,\n          sqid 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 (sqid, position),\n          KEY (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          owner varchar(255) default 'nodequeue',\n          show_in_ui integer default '1',\n          show_in_tab integer default '1',\n          link varchar(255),\n          link_remove varchar(255),\n          reverse smallint\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          sqid integer NOT NULL,\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}_sqid_idx ON {nodequeue_nodes} (sqid, 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');
  }
}