Mercurial > defr > drupal > core
comparison modules/comment/comment.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 | 3edae6ecd6c6 |
comparison
equal
deleted
inserted
replaced
0:5a113a1c4740 | 1:c1f4ac30525a |
---|---|
1 <?php | |
2 // $Id: comment.install,v 1.19 2008/01/16 21:45:30 goba Exp $ | |
3 | |
4 /** | |
5 * Implementation of hook_enable(). | |
6 */ | |
7 function comment_enable() { | |
8 // Insert records into the node_comment_statistics for nodes that are missing. | |
9 db_query("INSERT INTO {node_comment_statistics} (nid, last_comment_timestamp, last_comment_name, last_comment_uid, comment_count) SELECT n.nid, n.changed, NULL, n.uid, 0 FROM {node} n LEFT JOIN {node_comment_statistics} c ON n.nid = c.nid WHERE c.comment_count IS NULL"); | |
10 } | |
11 | |
12 /** | |
13 * Changed node_comment_statistics to use node->changed to avoid future timestamps. | |
14 */ | |
15 function comment_update_1() { | |
16 // Change any future last comment timestamps to now. | |
17 db_query('UPDATE {node_comment_statistics} SET last_comment_timestamp = %d WHERE last_comment_timestamp > %d', time(), time()); | |
18 | |
19 // Unstuck node indexing timestamp if needed. | |
20 if (($last = variable_get('node_cron_last', FALSE)) !== FALSE) { | |
21 variable_set('node_cron_last', min(time(), $last)); | |
22 } | |
23 return array(); | |
24 } | |
25 | |
26 function comment_update_6001() { | |
27 $ret[] = update_sql("ALTER TABLE {comments} DROP score"); | |
28 $ret[] = update_sql("ALTER TABLE {comments} DROP users"); | |
29 return $ret; | |
30 } | |
31 | |
32 /** | |
33 * Changed comment settings from global to per-node -- copy global | |
34 * settings to all node types. | |
35 */ | |
36 function comment_update_6002() { | |
37 // Comment module might not be enabled when this is run, but we need the | |
38 // constants defined by the module for this update. | |
39 drupal_load('module', 'comment'); | |
40 $settings = array( | |
41 'comment_default_mode' => COMMENT_MODE_THREADED_EXPANDED, | |
42 'comment_default_order' => COMMENT_ORDER_NEWEST_FIRST, | |
43 'comment_default_per_page' => 50, | |
44 'comment_controls' => COMMENT_CONTROLS_HIDDEN, | |
45 'comment_anonymous' => COMMENT_ANONYMOUS_MAYNOT_CONTACT, | |
46 'comment_subject_field' => 1, | |
47 'comment_preview' => COMMENT_PREVIEW_REQUIRED, | |
48 'comment_form_location' => COMMENT_FORM_SEPARATE_PAGE, | |
49 ); | |
50 $types = node_get_types(); | |
51 foreach ($settings as $setting => $default) { | |
52 $value = variable_get($setting, $default); | |
53 foreach ($types as $type => $object) { | |
54 variable_set($setting .'_'. $type, $value); | |
55 } | |
56 variable_del($setting); | |
57 } | |
58 return array(array('success' => TRUE, 'query' => 'Global comment settings copied to all node types.')); | |
59 } | |
60 | |
61 /** | |
62 * Add index to parent ID field. | |
63 */ | |
64 function comment_update_6003() { | |
65 $ret = array(); | |
66 db_add_index($ret, 'comments', 'pid', array('pid')); | |
67 return $ret; | |
68 } | |
69 | |
70 | |
71 /** | |
72 * Implementation of hook_schema(). | |
73 */ | |
74 function comment_schema() { | |
75 $schema['comments'] = array( | |
76 'description' => t('Stores comments and associated data.'), | |
77 'fields' => array( | |
78 'cid' => array( | |
79 'type' => 'serial', | |
80 'not null' => TRUE, | |
81 'description' => t('Primary Key: Unique comment ID.'), | |
82 ), | |
83 'pid' => array( | |
84 'type' => 'int', | |
85 'not null' => TRUE, | |
86 'default' => 0, | |
87 'description' => t('The {comments}.cid to which this comment is a reply. If set to 0, this comment is not a reply to an existing comment.'), | |
88 ), | |
89 'nid' => array( | |
90 'type' => 'int', | |
91 'not null' => TRUE, | |
92 'default' => 0, | |
93 'description' => t('The {node}.nid to which this comment is a reply.'), | |
94 ), | |
95 'uid' => array( | |
96 'type' => 'int', | |
97 'not null' => TRUE, | |
98 'default' => 0, | |
99 'description' => t('The {users}.uid who authored the comment. If set to 0, this comment was created by an anonymous user.'), | |
100 ), | |
101 'subject' => array( | |
102 'type' => 'varchar', | |
103 'length' => 64, | |
104 'not null' => TRUE, | |
105 'default' => '', | |
106 'description' => t('The comment title.'), | |
107 ), | |
108 'comment' => array( | |
109 'type' => 'text', | |
110 'not null' => TRUE, | |
111 'size' => 'big', | |
112 'description' => t('The comment body.'), | |
113 ), | |
114 'hostname' => array( | |
115 'type' => 'varchar', | |
116 'length' => 128, | |
117 'not null' => TRUE, | |
118 'default' => '', | |
119 'description' => t("The author's host name."), | |
120 ), | |
121 'timestamp' => array( | |
122 'type' => 'int', | |
123 'not null' => TRUE, | |
124 'default' => 0, | |
125 'description' => t('The time that the comment was created, or last edited by its author, as a Unix timestamp.'), | |
126 ), | |
127 'status' => array( | |
128 'type' => 'int', | |
129 'unsigned' => TRUE, | |
130 'not null' => TRUE, | |
131 'default' => 0, | |
132 'size' => 'tiny', | |
133 'description' => t('The published status of a comment. (0 = Published, 1 = Not Published)'), | |
134 ), | |
135 'format' => array( | |
136 'type' => 'int', | |
137 'size' => 'small', | |
138 'not null' => TRUE, | |
139 'default' => 0, | |
140 'description' => t('The {filter_formats}.format of the comment body.'), | |
141 ), | |
142 'thread' => array( | |
143 'type' => 'varchar', | |
144 'length' => 255, | |
145 'not null' => TRUE, | |
146 'description' => t("The vancode representation of the comment's place in a thread."), | |
147 ), | |
148 'name' => array( | |
149 'type' => 'varchar', | |
150 'length' => 60, | |
151 'not null' => FALSE, | |
152 'description' => t("The comment author's name. Uses {users}.name if the user is logged in, otherwise uses the value typed into the comment form."), | |
153 ), | |
154 'mail' => array( | |
155 'type' => 'varchar', | |
156 'length' => 64, | |
157 'not null' => FALSE, | |
158 'description' => t("The comment author's e-mail address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on."), | |
159 ), | |
160 'homepage' => array( | |
161 'type' => 'varchar', | |
162 'length' => 255, | |
163 'not null' => FALSE, | |
164 'description' => t("The comment author's home page address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on."), | |
165 ) | |
166 ), | |
167 'indexes' => array( | |
168 'pid' => array('pid'), | |
169 'nid' => array('nid'), | |
170 'status' => array('status'), // This index is probably unused | |
171 ), | |
172 'primary key' => array('cid'), | |
173 ); | |
174 | |
175 $schema['node_comment_statistics'] = array( | |
176 'description' => t('Maintains statistics of node and comments posts to show "new" and "updated" flags.'), | |
177 'fields' => array( | |
178 'nid' => array( | |
179 'type' => 'int', | |
180 'unsigned' => TRUE, | |
181 'not null' => TRUE, | |
182 'default' => 0, | |
183 'description' => t('The {node}.nid for which the statistics are compiled.'), | |
184 ), | |
185 'last_comment_timestamp' => array( | |
186 'type' => 'int', | |
187 'not null' => TRUE, | |
188 'default' => 0, | |
189 'description' => t('The Unix timestamp of the last comment that was posted within this node, from {comments}.timestamp.'), | |
190 ), | |
191 'last_comment_name' => array( | |
192 'type' => 'varchar', | |
193 'length' => 60, | |
194 'not null' => FALSE, | |
195 'description' => t('The name of the latest author to post a comment on this node, from {comments}.name.'), | |
196 ), | |
197 'last_comment_uid' => array( | |
198 'type' => 'int', | |
199 'not null' => TRUE, | |
200 'default' => 0, | |
201 'description' => t('The user ID of the latest author to post a comment on this node, from {comments}.uid.'), | |
202 ), | |
203 'comment_count' => array( | |
204 'type' => 'int', | |
205 'unsigned' => TRUE, | |
206 'not null' => TRUE, | |
207 'default' => 0, | |
208 'description' => t('The total number of comments on this node.'), | |
209 ), | |
210 ), | |
211 'primary key' => array('nid'), | |
212 'indexes' => array( | |
213 'node_comment_timestamp' => array('last_comment_timestamp') | |
214 ), | |
215 ); | |
216 | |
217 return $schema; | |
218 } | |
219 |