Writings Photos Code Contact Resume
For the sake of the upload.module!

You are here

Submitted by msameer on Sun, 02/01/2005 - 2:23pm

I've created an issue with a patch to add the file downloads count to the upload.module, If the author kindly accepts it, I'll be moving away from the old filestore.module and start using the upload module.
As I love posting code, Here's the patch.

--- /home/mohammed/drupal-4.5/drupal-4.5.1/modules/upload.module 2004-10-20 18:57:50.000000000 +0200
+++ upload.module 2005-01-02 16:08:50.000000000 +0200
@@ -95,6 +95,8 @@
       $name = mime_header_encode($file->filename);
       // Serve images and text inline for the browser to display rather than download.
       $disposition = ereg('^(text/|image/)', $file->filemime) ? 'inline' : 'attachment';
+// We increase the downloads by one.
+db_query("UPDATE {files} SET downloads=downloads+1 WHERE fid=$file->fid");
       return array('Content-Type: '. $file->filemime .'; name='. $name,
                    'Content-Length: '. $file->filesize,
                    'Content-Disposition: '. $disposition .'; filename='. $name);
@@ -209,7 +211,7 @@
       break;
     case 'view':
       if ($node->files && user_access('view uploaded files')) {
-        $header = array(t('Attachment'), t('Size'));
+        $header = array(t('Attachment'), t('Size'), t('Downloads'));
         $rows = array();
         $previews = array();

@@ -218,7 +220,7 @@
           if ($file->list) {
             $rows[] = array(
               '<a href="/'. ($file->fid ? file_create_url($file->filepath) : url(file_create_filename($file->filename, file_create_path()))) . '">'. $file->filename .'</a>',
-              format_size($file->filesize)
+              format_size($file->filesize), ($file->downloads ? $file->downloads : 0 )
             );
             // We save the list of files still in preview for later
             if (!$file->fid) {
@@ -276,15 +278,15 @@
function upload_save($node) {
   foreach ((array)$node->files as $key => $file) {
     if ($file->source && !$file->remove) {
+      // Insert new files:
+      $fid = db_next_id('{files}_fid');
+      $file = file_save_upload($file, $file->filename);
+
       // Clean up the session:
       unset($_SESSION['file_uploads'][$file->source]);

-      // Insert new files:
-      if ($file = file_save_upload($file, $file->filename)) {
-        $fid = db_next_id('{files}_fid');
-        db_query("INSERT INTO {files} (fid, nid, filename, filepath, filemime, filesize, list) VALUES (%d, %d, '%s', '%s', '%s', %d, %d)",
-                 $fid, $node->nid, $file->filename, $file->filepath, $file->filemime, $file->filesize, $node->list[$key]);
-      }
+      db_query("INSERT INTO {files} (fid, nid, filename, filepath, filemime, filesize, downloads, list) VALUES (%d, %d, '%s', '%s', '%s', %d, 0, %d)",
+               $fid, $node->nid, $file->filename, $file->filepath, $file->filemime, $file->filesize, $node->list[$key]);
     }
     else {
       // Remove or update existing files:

You can find the proposed table change if you read the issue.

Comments

Submitted by Mostafa Hussein (not verified) on Sun, 02/01/2005 - 4:08pm

Hey what is that upload module ?

Submitted by msameer on Sun, 02/01/2005 - 5:55pm

It's a module enabling you to attach files to a node.
It's a core module BTW.

Add new comment

Subscribe to /  digg  bookmark