function download_count_nodeapi in Download Count 6.2
Same name and namespace in other branches
- 5 download_count.module \download_count_nodeapi()
- 6 download_count.module \download_count_nodeapi()
Implementation of hook_nodeapi().
File
- ./
download_count.module, line 91 - Tracks file downloads for files stored in the drupal files table using the private files setting or custom private filefield.
Code
function download_count_nodeapi(&$node, $op, $teaser) {
$result = array();
switch ($op) {
case 'view':
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 = %d AND dc.uid = %d GROUP BY dc.fid, f.filename", $node->nid, $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 = %d GROUP BY dc.fid, f.filename", $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', $node->files, $downloads);
}
}
break;
}
}