views_send.install in Views Send 6
Same filename and directory in other branches
The install and update code for the Views Send module.
File
views_send.installView 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
Name | 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 |