You are here

simplenews_scheduler.install in Simplenews Scheduler 6

Install and uninstall functions for the Simplenews Scheduler module.

File

simplenews_scheduler.install
View source
<?php

/**
 * @file
 * Install and uninstall functions for the Simplenews Scheduler module.
 */

/**
 * Implementation of hook_install().
 */
function simplenews_scheduler_install() {
  drupal_install_schema('simplenews_scheduler');
}

/**
 * Implementation of hook_schema().
 */
function simplenews_scheduler_schema() {
  $schema['simplenews_scheduler'] = array(
    'fields' => array(
      'nid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
      'last_run' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
      'activated' => array(
        'type' => 'int',
        'size' => 'tiny',
        'not null' => TRUE,
        'default' => 0,
      ),
      'interval' => array(
        'type' => 'varchar',
        'length' => 10,
      ),
      'start_date' => array(
        'type' => 'int',
        'not null' => TRUE,
      ),
      'stop' => array(
        'type' => 'int',
        'not null' => TRUE,
      ),
      'stop_date' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 1388447999,
      ),
      // Default is Mon, 31 Dec 2013 23:59:59 GMT
      'stop_edition' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
    ),
    'primary key' => array(
      'nid',
    ),
  );
  $schema['simplenews_scheduler_editions'] = array(
    'fields' => array(
      'eid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
      'pid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
      'date_issued' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
    ),
    'primary key' => array(
      'eid',
    ),
  );
  return $schema;
}

/**
 * Implementation of hook_uninstall().
 */
function simplenews_scheduler_uninstall() {

  // Remove tables.
  drupal_uninstall_schema('simplenews_scheduler');
}

/**
 * Implementation of hook_update_N().
 */
function simplenews_scheduler_update_6000() {
  $ret = array();
  db_add_field($ret, 'simplenews_scheduler', 'stop', array(
    'type' => 'int',
    'length' => 1,
    'not null' => TRUE,
  ));
  db_add_field($ret, 'simplenews_scheduler', 'stop_date', array(
    'type' => 'int',
    'length' => 11,
    'not null' => TRUE,
    'default' => 1577923199,
  ));
  db_add_field($ret, 'simplenews_scheduler', 'stop_edition', array(
    'type' => 'int',
    'length' => 10,
    'not null' => TRUE,
    'default' => 0,
  ));
  $ret[] = update_sql("ALTER TABLE {simplenews_scheduler} CHANGE sched_interval `interval` VARCHAR(10) NOT NULL DEFAULT '0'");
  $ret[] = update_sql("ALTER TABLE {simplenews_scheduler} CHANGE sched_start start_date INT(11) NOT NULL DEFAULT '0'");
  return $ret;
}

/**
 * Implementation of hook_update_N().
 */
function simplenews_scheduler_update_6001() {
  $ret = array();
  db_drop_field($ret, 'simplenews_scheduler', 'sid');
  db_add_field($ret, 'simplenews_scheduler', 'activated', array(
    'type' => 'int',
    'size' => 'tiny',
    'not null' => TRUE,
    'default' => 0,
  ));
  $ret[] = update_sql("ALTER IGNORE TABLE {simplenews_scheduler} CHANGE snid nid INT(11) NOT NULL DEFAULT '0', ADD PRIMARY KEY (nid)");
  $ret[] = update_sql("ALTER TABLE {simplenews_scheduler_editions} CHANGE edition_snid eid INT(11) NOT NULL DEFAULT '0'");
  $ret[] = update_sql("ALTER TABLE {simplenews_scheduler_editions} CHANGE snid pid INT(11) NOT NULL DEFAULT '0'");
  return $ret;
}

/**
 * Implementation of hook_update_N().
 */
function simplenews_scheduler_update_6002() {
  $ret = array();
  db_drop_field($ret, 'simplenews_scheduler', 'run_limit');
  db_drop_field($ret, 'simplenews_scheduler', 'run_count');
  return $ret;
}

/**
 * Implementation of hook_update_N().
 */
function simplenews_scheduler_update_6003() {
  $ret = array();
  db_add_primary_key($ret, 'simplenews_scheduler_editions', array(
    'eid',
  ));
  return $ret;
}