| 1 |
<?php |
<?php |
| 2 |
// $Id: karma.module,v 1.42 2007/07/10 06:48:38 mcarbone Exp $ |
// $Id: karma.module,v 1.41.2.1 2007/07/10 07:12:26 mcarbone Exp $ |
| 3 |
|
|
| 4 |
include './'. drupal_get_path('module', 'karma') .'/karma.theme'; |
include './'. drupal_get_path('module', 'karma') .'/karma.theme'; |
| 5 |
|
|
| 199 |
|
|
| 200 |
// 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 |
| 201 |
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)) { |
| 202 |
$nids = db_query('SELECT DISTINCT(nid) FROM comments WHERE uid = %d', $uid); |
$nids = db_query('SELECT DISTINCT(nid) FROM {comments} WHERE uid = %d', $uid); |
| 203 |
while ($nid = db_fetch_object($nids)) { |
while ($nid = db_fetch_object($nids)) { |
| 204 |
karma_update_comment_statistics($nid->nid); |
karma_update_comment_statistics($nid->nid); |
| 205 |
} |
} |
| 208 |
|
|
| 209 |
function karma_update_comment_statistics($nid) { |
function karma_update_comment_statistics($nid) { |
| 210 |
$min = (float) variable_get('karma_minimum_rating', '0.0'); |
$min = (float) variable_get('karma_minimum_rating', '0.0'); |
| 211 |
$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)); |
| 212 |
db_query('DELETE FROM {karma_comment_statistics} WHERE nid = %d', $nid); |
db_query('DELETE FROM {karma_comment_statistics} WHERE nid = %d', $nid); |
| 213 |
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); |
| 214 |
} |
} |
| 716 |
$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); |
| 717 |
|
|
| 718 |
// Use the timestamp to retrieve the number of new comments. |
// Use the timestamp to retrieve the number of new comments. |
| 719 |
$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)); |
| 720 |
|
|
| 721 |
return $count; |
return $count; |
| 722 |
} |
} |