2006-12-13 10:24:58 +00:00
<?php
// $Id$
/**
* Implementation of hook_enable().
*/
function comment_enable() {
// Insert records into the node_comment_statistics for nodes that are missing.
2007-07-15 10:05:18 +00:00
db_query_temporary("SELECT n.nid, n.changed, n.uid FROM {node} n LEFT JOIN {node_comment_statistics} c ON n.nid = c.nid WHERE c.comment_count IS NULL", 'missing_nids');
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 missing_nids n");
}
/**
* Changed node_comment_statistics to use node->changed to avoid future
* timestamps.
*/
function comment_update_1() {
// Change any future last comment timestamps to now.
db_query('UPDATE {node_comment_statistics} SET last_comment_timestamp = %d WHERE last_comment_timestamp > %d', time(), time());
// Unstuck node indexing timestamp if needed.
if (($last = variable_get('node_cron_last', FALSE)) !== FALSE) {
variable_set('node_cron_last', min(time(), $last));
}
return array();
2006-12-13 10:24:58 +00:00
}
2007-07-30 21:27:34 +00:00
function comment_update_6001() {
$ret[] = update_sql("ALTER TABLE {comments} DROP score");
$ret[] = update_sql("ALTER TABLE {comments} DROP users");
return $ret;
}
2007-10-05 14:43:26 +00:00
/**
* Implementation of hook_schema().
*/
function comment_schema() {
$schema['comments'] = array(
'fields' => array(
'cid' => array('type' => 'serial', 'not null' => TRUE),
'pid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'nid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'uid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'subject' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
'comment' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'hostname' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'status' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'format' => array('type' => 'int', 'size' => 'small', 'not null' => TRUE, 'default' => 0),
'thread' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE),
'name' => array('type' => 'varchar', 'length' => 60, 'not null' => FALSE),
'mail' => array('type' => 'varchar', 'length' => 64, 'not null' => FALSE),
'homepage' => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE)
),
'indexes' => array(
'nid' => array('nid'),
'status' => array('status')
),
'primary key' => array('cid'),
);
$schema['node_comment_statistics'] = array(
'fields' => array(
'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'last_comment_timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'last_comment_name' => array('type' => 'varchar', 'length' => 60, 'not null' => FALSE),
'last_comment_uid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'comment_count' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
),
'indexes' => array('node_comment_timestamp' => array('last_comment_timestamp')),
'primary key' => array('nid'),
);
return $schema;
}