comparison modules/forum/forum.install @ 1:c1f4ac30525a 6.0

Drupal 6.0
author Franck Deroche <webmaster@defr.org>
date Tue, 23 Dec 2008 14:28:28 +0100
parents
children fff6d4c8c043
comparison
equal deleted inserted replaced
0:5a113a1c4740 1:c1f4ac30525a
1 <?php
2 // $Id: forum.install,v 1.16 2007/12/31 16:58:34 goba Exp $
3
4 /**
5 * Implementation of hook_install().
6 */
7 function forum_install() {
8 // Create tables.
9 drupal_install_schema('forum');
10 // Set the weight of the forum.module to 1 so it is loaded after the taxonomy.module.
11 db_query("UPDATE {system} SET weight = 1 WHERE name = 'forum'");
12 }
13
14 function forum_enable() {
15 if ($vocabulary = taxonomy_vocabulary_load(variable_get('forum_nav_vocabulary', 0))) {
16 // Existing install. Add back forum node type, if the forums
17 // vocabulary still exists. Keep all other node types intact there.
18 $vocabulary = (array) $vocabulary;
19 $vocabulary['nodes']['forum'] = 1;
20 taxonomy_save_vocabulary($vocabulary);
21 }
22 else {
23 // Create the forum vocabulary if it does not exist. Assign the vocabulary
24 // a low weight so it will appear first in forum topic create and edit
25 // forms.
26 $vocabulary = array(
27 'name' => t('Forums'),
28 'multiple' => 0,
29 'required' => 0,
30 'hierarchy' => 1,
31 'relations' => 0,
32 'module' => 'forum',
33 'weight' => -10,
34 'nodes' => array('forum' => 1),
35 );
36 taxonomy_save_vocabulary($vocabulary);
37
38 variable_set('forum_nav_vocabulary', $vocabulary['vid']);
39 }
40 }
41
42 /**
43 * Implementation of hook_uninstall().
44 */
45 function forum_uninstall() {
46 // Load the dependent Taxonomy module, in case it has been disabled.
47 drupal_load('module', 'taxonomy');
48
49 // Delete the vocabulary.
50 $vid = variable_get('forum_nav_vocabulary', '');
51 taxonomy_del_vocabulary($vid);
52
53 db_query("DELETE FROM {node} WHERE type = 'forum'");
54 db_query('DROP TABLE {forum}');
55 variable_del('forum_containers');
56 variable_del('forum_nav_vocabulary');
57 variable_del('forum_hot_topic');
58 variable_del('forum_per_page');
59 variable_del('forum_order');
60 variable_del('forum_block_num_0');
61 variable_del('forum_block_num_1');
62 }
63
64 /**
65 * Implementation of hook_schema().
66 */
67 function forum_schema() {
68 $schema['forum'] = array(
69 'description' => t('Stores the relationship of nodes to forum terms.'),
70 'fields' => array(
71 'nid' => array(
72 'type' => 'int',
73 'unsigned' => TRUE,
74 'not null' => TRUE,
75 'default' => 0,
76 'description' => t('The {node}.nid of the node.'),
77 ),
78 'vid' => array(
79 'type' => 'int',
80 'unsigned' => TRUE,
81 'not null' => TRUE,
82 'default' => 0,
83 'description' => t('Primary Key: The {node}.vid of the node.'),
84 ),
85 'tid' => array(
86 'type' => 'int',
87 'unsigned' => TRUE,
88 'not null' => TRUE,
89 'default' => 0,
90 'description' => t('The {term_data}.tid of the forum term assigned to the node.'),
91 ),
92 ),
93 'indexes' => array(
94 'nid' => array('nid'),
95 'tid' => array('tid')
96 ),
97 'primary key' => array('vid'),
98 );
99
100 return $schema;
101 }
102
103 /**
104 * Create the forum vocabulary if does not exist. Assign the
105 * vocabulary a low weight so it will appear first in forum topic
106 * create and edit forms. Do not just call forum_enable() because in
107 * future versions it might do something different.
108 */
109 function forum_update_6000() {
110 $ret = array();
111
112 $vid = variable_get('forum_nav_vocabulary', 0);
113 $vocabularies = taxonomy_get_vocabularies();
114 if (!isset($vocabularies[$vid])) {
115 $vocabulary = array(
116 'name' => t('Forums'),
117 'multiple' => 0,
118 'required' => 0,
119 'hierarchy' => 1,
120 'relations' => 0,
121 'module' => 'forum',
122 'weight' => -10,
123 'nodes' => array('forum' => 1),
124 );
125 taxonomy_save_vocabulary($vocabulary);
126
127 variable_set('forum_nav_vocabulary', $vocabulary['vid']);
128 }
129
130 return $ret;
131 }