diff options
Diffstat (limited to 'modules/statistics/statistics.module')
-rw-r--r-- | modules/statistics/statistics.module | 60 |
1 files changed, 42 insertions, 18 deletions
diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module index 01a3be06e..57407872f 100644 --- a/modules/statistics/statistics.module +++ b/modules/statistics/statistics.module @@ -65,16 +65,18 @@ function statistics_exit() { } if (variable_get('statistics_enable_access_log', 0)) { // Log this page access. - db_insert('accesslog')->fields(array( - 'title' => strip_tags(drupal_get_title()), - 'path' => $_GET['q'], - 'url' => $_SERVER['HTTP_REFERER'], - 'hostname' => ip_address(), - 'uid' => $user->uid, - 'sid' => session_id(), - 'timer' => (int) timer_read('page'), - 'timestamp' => REQUEST_TIME, - ))->execute(); + db_insert('accesslog') + ->fields(array( + 'title' => strip_tags(drupal_get_title()), + 'path' => $_GET['q'], + 'url' => $_SERVER['HTTP_REFERER'], + 'hostname' => ip_address(), + 'uid' => $user->uid, + 'sid' => session_id(), + 'timer' => (int) timer_read('page'), + 'timestamp' => REQUEST_TIME, + )) + ->execute(); } } @@ -189,11 +191,16 @@ function statistics_menu() { function statistics_user_cancel($edit, $account, $method) { switch ($method) { case 'user_cancel_reassign': - db_update('accesslog')->fields(array('uid' => 0))->condition('uid', $account->uid)->execute(); + db_update('accesslog') + ->fields(array('uid' => 0)) + ->condition('uid', $account->uid) + ->execute(); break; case 'user_cancel_delete': - db_delete('accesslog')->condition('uid', $account->uid)->execute(); + db_delete('accesslog') + ->condition('uid', $account->uid) + ->execute(); break; } } @@ -206,12 +213,16 @@ function statistics_cron() { if ((REQUEST_TIME - $statistics_timestamp) >= 86400) { // Reset day counts. - db_query('UPDATE {node_counter} SET daycount = 0'); + db_update('node_counter') + ->fields(array('daycount' => 0)) + ->execute(); variable_set('statistics_day_timestamp', REQUEST_TIME); } // Clean up expired access logs. - db_query('DELETE FROM {accesslog} WHERE timestamp < %d', REQUEST_TIME - variable_get('statistics_flush_accesslog_timer', 259200)); + db_delete('accesslog') + ->condition('timestamp', REQUEST_TIME - variable_get('statistics_flush_accesslog_timer', 259200), '<') + ->execute(); } /** @@ -232,7 +243,19 @@ function statistics_cron() { */ function statistics_title_list($dbfield, $dbrows) { if (in_array($dbfield, array('totalcount', 'daycount', 'timestamp'))) { - return db_query_range(db_rewrite_sql("SELECT n.nid, n.title, u.uid, u.name FROM {node} n INNER JOIN {node_counter} s ON n.nid = s.nid INNER JOIN {users} u ON n.uid = u.uid WHERE s." . $dbfield . " != 0 AND n.status = 1 ORDER BY s." . $dbfield . " DESC"), 0, $dbrows); + $query = db_select('node', 'n'); + $query->addTag('node_access'); + $query->join('node_counter', 's', 'n.nid = s.nid'); + $query->join('users', 'u', 'n.uid = u.uid'); + + return $query + ->fields('n', array('nid', 'title')) + ->fields('u', array('uid', 'name')) + ->condition($dbfield, 0, '<>') + ->condition('n.status', 1) + ->orderBy($dbfield, 'DESC') + ->range(0, $dbrows) + ->execute(); } return FALSE; } @@ -255,8 +278,7 @@ function statistics_get($nid) { if ($nid > 0) { // Retrieve an array with both totalcount and daycount. - $statistics = db_fetch_array(db_query('SELECT totalcount, daycount, timestamp FROM {node_counter} WHERE nid = %d', $nid)); - return $statistics; + return db_query('SELECT totalcount, daycount, timestamp FROM {node_counter} WHERE nid = :nid', array(':nid' => $nid))->fetchAssoc(); } } @@ -345,7 +367,9 @@ function _statistics_format_item($title, $path) { */ function statistics_node_delete($node) { // clean up statistics table when node is deleted - db_query('DELETE FROM {node_counter} WHERE nid = %d', $node->nid); + db_delete('node_counter') + ->condition('nid', $node->nid) + ->execute(); } /** |