You are here

views_send.install in Views Send 6

Same filename and directory in other branches
  1. 8 views_send.install
  2. 7 views_send.install

The install and update code for the Views Send module.

File

views_send.install
View source
<?php

/**
 * @file
 *   The install and update code for the Views Send module.
 *
 * @ingroup views_send.
 */

/**
 * Impementation of hook_schema().
 *
 * @see http://api.drupal.org/api/function/hook_schema/6
 */
function views_send_schema() {
  $schema['views_send_spool'] = array(
    'description' => 'Table holds e-mails that are being send on cron.',
    'fields' => array(
      'eid' => array(
        'description' => 'The primary identifier for an e-mail.',
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'uid' => array(
        'description' => 'The user that has sent the message.',
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
      ),
      'timestamp' => array(
        'description' => 'The Unix timestamp when the message was added to spool.',
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
      ),
      'status' => array(
        'description' => 'Status: 0 = pending; 1 = sent.',
        'type' => 'int',
        'size' => 'tiny',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
      ),
      'tentatives' => array(
        'description' => 'How many times we tried to send this message.',
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
        'default' => 0,
      ),
      'from_name' => array(
        'description' => 'The real name of the sender.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => FALSE,
        'default' => '',
      ),
      'from_mail' => array(
        'description' => 'The sender e-mail address.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
      ),
      'to_name' => array(
        'description' => 'The real name of the recipient.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => FALSE,
        'default' => '',
      ),
      'to_mail' => array(
        'description' => 'The recipient e-mail address.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
      ),
      'subject' => array(
        'description' => 'The e-mail subject.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
      ),
      'body' => array(
        'description' => 'The e-mail body.',
        'type' => 'text',
        'not null' => TRUE,
        'size' => 'big',
      ),
      'headers' => array(
        'description' => 'The e-mail additional headers.',
        'type' => 'text',
        'not null' => TRUE,
        'size' => 'big',
      ),
    ),
    'indexes' => array(
      'uid' => array(
        'uid',
      ),
      'timestamp' => array(
        'timestamp',
      ),
    ),
    'primary key' => array(
      'eid',
    ),
  );
  return $schema;
}

/**
 * Implementation of hook_install().
 *
 * @see http://api.drupal.org/api/function/hook_install/6
 */
function views_send_install() {
  drupal_install_schema('views_send');
}

/**
 * Implementation of hook_uninstall().
 *
 * @see http://api.drupal.org/api/function/hook_uninstall/6
 */
function views_send_uninstall() {
  drupal_uninstall_schema('views_send');
  db_query("DELETE FROM {variable} WHERE name LIKE 'views_send_%'");
  db_query("DELETE FROM {cache} WHERE cid LIKE 'variables%'");
}

/**
 * Remove unused variables.
 */
function views_send_update_6001() {
  variable_del('views_send_format');
  variable_del('views_send_from_mail');
  variable_del('views_send_from_name');
  variable_del('views_send_headers');
  variable_del('views_send_message');
  variable_del('views_send_priority');
  variable_del('views_send_receipt');
  variable_del('views_send_remember');
  variable_del('views_send_subject');
  variable_del('views_send_tokens');
  variable_del('views_send_to_mail');
  variable_del('views_send_to_name');
  return array();
}

/**
 * Remove views_send_format variables.
 */
function views_send_update_6002() {
  $ret = array();
  $ret[] = update_sql("DELETE FROM {variable} WHERE name LIKE 'views_send_format_%'");
  return $ret;
}

/**
 * Backend structure is altered for implementing http://drupal.org/node/808058
 */
function views_send_update_6003() {
  $ret = array();

  // Get updated schema.
  $schema = views_send_schema();

  // Rename body field from 'message' to 'body'.
  db_change_field($ret, 'views_send_spool', 'message', 'body', $schema['views_send_spool']['fields']['body']);

  // Drop other fields that are obsolete after spooling.
  db_drop_field($ret, 'views_send_spool', 'format');
  db_drop_field($ret, 'views_send_spool', 'priority');
  db_drop_field($ret, 'views_send_spool', 'receipt');
  return $ret;
}

Functions

Namesort descending Description
views_send_install Implementation of hook_install().
views_send_schema Impementation of hook_schema().
views_send_uninstall Implementation of hook_uninstall().
views_send_update_6001 Remove unused variables.
views_send_update_6002 Remove views_send_format variables.
views_send_update_6003 Backend structure is altered for implementing http://drupal.org/node/808058