function download_count_node_view in Download Count 7.2
Implements hook_node_view().
File
- ./
download_count.module, line 87 - Tracks file downloads for files stored in the drupal files table using the private files setting or custom private filefield.
Code
function download_count_node_view($node, $view_mode = 'full') {
if (isset($node->files) && count($node->files) && user_access('view uploaded files') && !$teaser) {
global $user;
if (user_access('view own download counts') && $user->uid != 1) {
$result = db_query("SELECT dc.fid, f.filename, COUNT(dc.dcid) AS count, MAX(dc.timestamp) AS last FROM {download_count} dc JOIN {files} f ON dc.fid = f.fid WHERE dc.nid = :dc.nid AND dc.uid = :dc.uid GROUP BY f.filename", array(
':dc.nid' => $node->nid,
':dc.uid' => $user->uid,
));
}
elseif (user_access('view all download counts')) {
$result = db_query("SELECT dc.fid, f.filename, COUNT(dc.dcid) AS count, MAX(dc.timestamp) AS last FROM {download_count} dc JOIN {files} f ON dc.fid = f.fid WHERE dc.nid = :dc.nid GROUP BY f.filename", array(
':dc.nid' => $node->nid,
));
}
while ($download = db_fetch_object($result)) {
$downloads[$download->filename]['count'] = $download->count;
$downloads[$download->filename]['last'] = $download->last;
$node->files[$download->fid]->downloads = $download->count;
}
if (isset($downloads)) {
$node->content['files']['#value'] = theme('download_count_upload_attachments', array(
'files' => $node->files,
'downloads' => $downloads,
));
}
}
}