summaryrefslogtreecommitdiff
path: root/modules/update/update.install
blob: 8814b9781bd111ddff84d99d5136a6b212348d65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
// $Id$

/**
 * @file
 * Install, update and uninstall functions for the update module.
 */

/**
 * Implement hook_install().
 */
function update_install() {
  // Create cache table.
  drupal_install_schema('update');
  // Remove stale variables from update_status 5.x contrib, if any.
  _update_remove_update_status_variables();
}

/**
 * Implement hook_uninstall().
 */
function update_uninstall() {
  // Remove cache table.
  drupal_uninstall_schema('update');
  // Clear any variables that might be in use
  $variables = array(
    'update_check_frequency',
    'update_fetch_url',
    'update_last_check',
    'update_notification_threshold',
    'update_notify_emails',
  );
  foreach ($variables as $variable) {
    variable_del($variable);
  }
  menu_rebuild();
}

/**
 * Implement hook_schema().
 */
function update_schema() {
  $schema['cache_update'] = drupal_get_schema_unprocessed('system', 'cache');
  $schema['cache_update']['description'] = 'Cache table for the Update module to store information about available releases, fetched from central server.';
  return $schema;
}

/**
 * Private helper to clear out stale variables from update_status 5.x contrib.
 *
 * @see update_install()
 * @see update_update_6000()
 */
function _update_remove_update_status_variables() {
  variable_del('update_status_settings');
  variable_del('update_status_notify_emails');
  variable_del('update_status_check_frequency');
  variable_del('update_status_notification_threshold');
  variable_del('update_status_last');
  variable_del('update_status_fetch_url');
}

/**
 * Clear out stale variables from update_status.
 */
function update_update_6000() {
  _update_remove_update_status_variables();
  return array();
}