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 |
