Copy the latest versions of the files from the current 6.x-2.x branch back to HEAD.
[project/link.git] / link.install
1 <?php
2 // $Id$
3
4 /**
5 * @file
6 * Install file for the link module.
7 */
8
9 /**
10 * Implementation of hook_install().
11 */
12 function link_install() {
13 drupal_load('module', 'content');
14 content_notify('install', 'link');
15 }
16
17 /**
18 * Implementation of hook_uninstall().
19 */
20 function link_uninstall() {
21 drupal_load('module', 'content');
22 content_notify('uninstall', 'link');
23 }
24
25 /**
26 * Implementation of hook_enable().
27 */
28 function link_enable() {
29 drupal_load('module', 'content');
30 content_notify('enable', 'link');
31 }
32
33 /**
34 * Implementation of hook_disable().
35 */
36 function link_disable() {
37 drupal_load('module', 'content');
38 content_notify('disable', 'link');
39 }
40
41 /**
42 * Removed link.module created tables, move data to content.module tables
43 *
44 * Even though most everyone will not be using this particular update, several
45 * folks have complained that their upgrades of link.module do not work because
46 * of this function being missing when schema expects it. - JCF
47 * And on further review, I'm removing the body, since some of those calls
48 * no longer exist in Drupal 6. Remember to upgrade from 4.7 to 5 first, and
49 * *then* from 5 to 6. kthx! -JCF
50 */
51 function link_update_1() {
52 $ret = array();
53 // GNDN
54 return $ret;
55 }
56
57
58 /**
59 * Ensure that content.module is updated before link module.
60 */
61 function link_update_6000() {
62 if ($abort = content_check_update('link')) {
63 return $abort;
64 }
65 return array();
66 }
67
68 /**
69 * Change the database schema to allow NULL values.
70 */
71 function link_update_6001() {
72 $ret = array();
73
74 // Build a list of fields that need updating.
75 $update_fields = array();
76 foreach (content_types_install() as $type_name => $fields) {
77 foreach ($fields as $field) {
78 if ($field['type'] == 'link') {
79 // We only process a given field once.
80 $update_fields[$field['field_name']] = $field;
81 }
82 }
83 }
84
85 // Update each field's storage to match the current definition.
86 foreach ($update_fields as $field) {
87 $db_info = content_database_info($field);
88 foreach ($db_info['columns'] as $column) {
89 db_change_field($ret, $db_info['table'], $column['column'], $column['column'], $column);
90 $ret[] = update_sql("UPDATE {". $db_info['table'] ."} SET ". $column['column'] ." = NULL WHERE ". $column['column'] ." = '' OR ". $column['column'] ." = 'N;'");
91 }
92 }
93
94 // Let CCK re-associate link fields with Link module and activate the fields.
95 content_associate_fields('link');
96
97 return $ret;
98 }