| 1 |
<?php |
<?php |
| 2 |
// $Id: karma.module,v 1.41 2007/07/07 02:18:22 mcarbone Exp $ |
// $Id: karma.module,v 1.40.2.1 2007/07/07 02:20:30 mcarbone Exp $ |
| 3 |
|
|
| 4 |
include './'. drupal_get_path('module', 'karma') .'/karma.theme'; |
include './'. drupal_get_path('module', 'karma') .'/karma.theme'; |
| 5 |
|
|
| 204 |
|
|
| 205 |
// Update all comment karma counts that involve this user if user crosses the minimum rating threshold in either direction |
// Update all comment karma counts that involve this user if user crosses the minimum rating threshold in either direction |
| 206 |
if ((is_null($orig_karma) && !is_null($karma)) || ($orig_karma > $min && $karma <= $min) || ($orig_karma <= $min && $karma > $min)) { |
if ((is_null($orig_karma) && !is_null($karma)) || ($orig_karma > $min && $karma <= $min) || ($orig_karma <= $min && $karma > $min)) { |
| 207 |
$nids = db_query('SELECT DISTINCT(nid) FROM comments WHERE uid = %d', $uid); |
$nids = db_query('SELECT DISTINCT(nid) FROM {comments} WHERE uid = %d', $uid); |
| 208 |
while ($nid = db_fetch_object($nids)) { |
while ($nid = db_fetch_object($nids)) { |
| 209 |
karma_update_comment_statistics($nid->nid); |
karma_update_comment_statistics($nid->nid); |
| 210 |
} |
} |
| 213 |
|
|
| 214 |
function karma_update_comment_statistics($nid) { |
function karma_update_comment_statistics($nid) { |
| 215 |
$min = (float) variable_get('karma_minimum_rating', '0.0'); |
$min = (float) variable_get('karma_minimum_rating', '0.0'); |
| 216 |
$count = db_result(db_query("SELECT COUNT(*) FROM comments c LEFT JOIN karma_objects ko ON ko.id = c.cid AND ko.type = 'cid' LEFT JOIN karma_users ku ON ku.uid = c.uid WHERE (ko.rating >= %f OR (ko.rating IS NULL AND (ku.karma >= %f OR ku.karma IS NULL))) AND c.nid = %d", $min, $min, $nid)); |
$count = db_result(db_query("SELECT COUNT(*) FROM {comments} c LEFT JOIN karma_objects ko ON ko.id = c.cid AND ko.type = 'cid' LEFT JOIN karma_users ku ON ku.uid = c.uid WHERE (ko.rating >= %f OR (ko.rating IS NULL AND (ku.karma >= %f OR ku.karma IS NULL))) AND c.nid = %d", $min, $min, $nid)); |
| 217 |
db_query('DELETE FROM {karma_comment_statistics} WHERE nid = %d', $nid); |
db_query('DELETE FROM {karma_comment_statistics} WHERE nid = %d', $nid); |
| 218 |
db_query('INSERT INTO {karma_comment_statistics} (nid, comment_count) VALUES (%d, %d)', $nid, $count); |
db_query('INSERT INTO {karma_comment_statistics} (nid, comment_count) VALUES (%d, %d)', $nid, $count); |
| 219 |
} |
} |
| 712 |
$timestamp = (node_last_viewed($nid) > NODE_NEW_LIMIT ? node_last_viewed($nid) : NODE_NEW_LIMIT); |
$timestamp = (node_last_viewed($nid) > NODE_NEW_LIMIT ? node_last_viewed($nid) : NODE_NEW_LIMIT); |
| 713 |
|
|
| 714 |
// Use the timestamp to retrieve the number of new comments. |
// Use the timestamp to retrieve the number of new comments. |
| 715 |
$count = db_result(db_query("SELECT COUNT(*) FROM comments c LEFT JOIN karma_objects ko ON ko.id = c.cid AND ko.type = 'cid' LEFT JOIN karma_users ku ON ku.uid = c.uid WHERE (ko.rating >= %f OR (ko.rating IS NULL AND (ku.karma >= %f OR ku.karma IS NULL))) AND c.nid = %d AND c.timestamp > %d", $min, $min, $nid, $timestamp)); |
$count = db_result(db_query("SELECT COUNT(*) FROM {comments} c LEFT JOIN karma_objects ko ON ko.id = c.cid AND ko.type = 'cid' LEFT JOIN karma_users ku ON ku.uid = c.uid WHERE (ko.rating >= %f OR (ko.rating IS NULL AND (ku.karma >= %f OR ku.karma IS NULL))) AND c.nid = %d AND c.timestamp > %d", $min, $min, $nid, $timestamp)); |
| 716 |
|
|
| 717 |
return $count; |
return $count; |
| 718 |
} |
} |