? pu-coder.patch
Index: private_upload.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/private_upload/private_upload.install,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 private_upload.install
--- private_upload.install	29 Nov 2009 17:14:25 -0000	1.1.2.1
+++ private_upload.install	29 Nov 2009 18:11:03 -0000
@@ -2,11 +2,24 @@
 // $Id: private_upload.install,v 1.1.2.1 2009/11/29 17:14:25 lynn Exp $
 
 /**
-* Implementation of hook_install().
-*
-* Ensures private_upload runs after module upload
-*/
+ * @file
+ * Install, update and uninstall functions for the private_upload module.
+ */
+
+/**
+ * Implementation of hook_install().
+ *
+ * Ensures private_upload runs after module upload
+ */
 function private_upload_install() {
   $weight = (int)db_result(db_query("SELECT weight FROM {system} WHERE name = 'upload'"));
   db_query("UPDATE {system} SET weight = %d WHERE name = 'private_upload'", $weight+1);
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function private_upload_uninstall() {
+  variable_del('private_upload_path');
+  variable_del('private_upload_default');
 }
\ No newline at end of file
Index: private_upload.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/private_upload/private_upload.module,v
retrieving revision 1.13.2.10
diff -u -p -r1.13.2.10 private_upload.module
--- private_upload.module	29 Nov 2009 17:31:06 -0000	1.13.2.10
+++ private_upload.module	29 Nov 2009 18:11:03 -0000
@@ -103,7 +103,7 @@ function _private_upload_requirements($p
   $t = get_t();   // Ensure translations don't break at install time.
   $requirements = array();
   
-  if(module_exists('uploadpath')) {
+  if (module_exists('uploadpath')) {
     $requirements['private_upload_conflict'] = array(
       'title' => t('Private Upload'),
       'severity' => REQUIREMENT_ERROR,
@@ -121,7 +121,7 @@ function _private_upload_requirements($p
       'title' => t('Private Upload'),
       'severity' => REQUIREMENT_WARNING,
       'value' => $t('Private Downloads directory is not writable'),
-      'description' => $t('Please make sure directory !dir exists and is writable.', array('!dir'=>$private_path)),
+      'description' => $t('Please make sure directory !dir exists and is writable.', array('!dir' => $private_path)),
     );  
     $status[] = '<div class="error">'. $requirements['private_upload_writable']['description'] .'</div>';
   }
@@ -130,7 +130,7 @@ function _private_upload_requirements($p
   }
     
   // Write out a .htaccess file if one doesn't already exist in the private folder.
-  if (!file_exists($private_path.'/.htaccess')) {
+  if (!file_exists($private_path .'/.htaccess')) {
     _private_upload_add_htacess();
   }
   else {
@@ -138,7 +138,7 @@ function _private_upload_requirements($p
   }  
   
   // Write a test file to the private folder to test public access.
-  $test_file = $private_path.'/privacy_test.txt';  
+  $test_file = $private_path .'/privacy_test.txt';  
   if (!file_exists($test_file)) {
     $test_path = file_create_path($test_file);  
     file_save_data( "This is just a test.", $test_path, FILE_EXISTS_REPLACE );
@@ -154,11 +154,11 @@ function _private_upload_requirements($p
         'value' => $t('Private directory is publically accessable!'),
         'description' => $t('Very bad! Your private files are not private!'),
       ); 
-      $status[] = '<div class="error">'. $requirements['private_upload_readable']['description']. '</div>';
+      $status[] = '<div class="error">'. $requirements['private_upload_readable']['description'] . '</div>';
     }
     else {
-      $secure = true; // good can't read files in private folder
-      $status[] = '<div class="ok">'. $t("Your private folder is not accessable. Great!"). "</div>";
+      $secure = TRUE; // good can't read files in private folder
+      $status[] = '<div class="ok">'. $t("Your private folder is not accessable. Great!") .'</div>';
     }
   }
   else { // unable to write the test file
@@ -181,17 +181,16 @@ function _private_upload_requirements($p
     $status[] = '<div class="error">'. $requirements['private_upload_method']['description'] .'</div>';
   } 
   else {
-    $status[] = '<div class="ok">'. $t("File download method is set to public. Great."). '</div>';  
+    $status[] = '<div class="ok">'. $t("File download method is set to public. Great.") .'</div>';  
   }
   
   $old_file_count = db_result( db_query("SELECT COUNT(fid) FROM {files} WHERE filepath REGEXP '^private_upload'") );
-  if( $old_file_count ) {
+  if ($old_file_count) {
     $requirements['private_upload_old'] = array(
       'title' => t('Private Upload'),
       'severity' => REQUIREMENT_WARNING,
       'value' => $t('Private Downloads'),
-      'description' => $t('You have !count old style file(s) listed in the database. ', array('!count'=>$old_file_count) ). 
-                       l( 'Click here to migrate', 'admin/private_upload/migrate_old'),
+      'description' => $t('You have !count old style file(s) listed in the database. ', array('!count' => $old_file_count) ) . l('Click here to migrate', 'admin/private_upload/migrate_old'),
     );
     $status[] = '<div class="error">'. $requirements['private_upload_old']['description'] .'</div>';
   }  
@@ -199,9 +198,9 @@ function _private_upload_requirements($p
     $status[] = '<div class="ok">'. $t("There are no old-style private files hanging around. Great.") . '</div>';
   }
   
-  if( count($requirements) ) { // failed
+  if (count($requirements)) { // failed
     if ($phase == 'runtime') {
-      foreach( $requirements as $key => $req ) {
+      foreach ($requirements as $key => $req) {
         if ($requirements[$key]['severity'] == REQUIREMENT_WARNING) {
           $requirements[$key]['severity'] = REQUIREMENT_ERROR; // bump up to error if after install
         }
@@ -235,11 +234,11 @@ function _private_upload_requirements($p
  */
 function private_upload_file_download($file) {
   $private_dir = variable_get('private_upload_path', 'private');
-  if(_private_upload_starts_with($file, $private_dir)) {      
+  if (_private_upload_starts_with($file, $private_dir)) {      
     $filepath = file_create_path($file);
     $result = db_query("SELECT DISTINCT(u.nid) FROM {upload} u INNER JOIN {files} f ON u.fid = f.fid ".
                        "WHERE f.filepath = '%s'", $filepath);
-    while($row = db_fetch_array($result)) {
+    while ($row = db_fetch_array($result)) {
       $node = node_load($row['nid']);
       if (node_access('view', $node)) {
         return; // Access is ok as far as we are concerned.
@@ -261,34 +260,34 @@ function private_upload_nodeapi(&$node, 
       // *** Move a file from public to private, or vise-verse
       // ******************************************************
       if (user_access('upload files')) {
-        if(is_array($node->files)) {
+        if (is_array($node->files)) {
           foreach ($node->files as $fid => $file) {
             $file = (object)$file;  // Convert file to object for compatibility
             $fid = $file->fid; // for the cases where we have temp fid for uploaded files
-            $success = false;
+            $success = FALSE;
             $filepath = $file->filepath; // need copy if file_move fails.
             // save original name
             $filepath_orig = $filepath;
             $public = file_directory_path();
             $private_path = _private_upload_path(); // actual path of private files
             $file_is_private = _private_upload_is_file_private($filepath);
-            if( $file->private && !$file_is_private ) { 
+            if ($file->private && !$file_is_private) { 
               // private flag is set, but file NOT yet listed as being in private repo,
               //   so try and move it from public area to private repo
-              if( file_move($filepath, $private_path, FILE_EXISTS_RENAME) ) {
+              if (file_move($filepath, $private_path, FILE_EXISTS_RENAME)) {
                 // check whether the file was renamed
                 if ($filepath_orig != $filepath) {
                   // update the filename in the object if so
                   $file->filename = basename($filepath);
                   $file->filepath = $filepath;
                 }
-                $success = true;          
+                $success = TRUE;          
               }
               else {
                 drupal_set_message( "Could not move the file ($file->filepath) to the private directory ($private_path).", 'error' );
               }                          
             }
-            else if (!$file->private && $file_is_private) { 
+            elseif (!$file->private && $file_is_private) { 
               // private flag is false, but file IS g in private repo
               // so try and move it from private repo to public area
               if (file_move($filepath, $public, FILE_EXISTS_RENAME)) {
@@ -299,17 +298,17 @@ function private_upload_nodeapi(&$node, 
                   // update the filename in the object if so
                   $file->filename = basename($filepath);
                 }
-                $success = true;
+                $success = TRUE;
               }
               else {
                 drupal_set_message( "Could not move the file ($file->filepath) to the public directory ($public).", 'error' );
               }             
             }
             
-            if( $success ) { // we were able to move the file, so update filepath in db.
+            if ($success) { // we were able to move the file, so update filepath in db.
               _private_upload_update_filepath($file);
               $row_count = db_affected_rows();
-              if( $row_count != 1 ) {
+              if ($row_count != 1) {
                 drupal_set_message( "Error: Unable to make uploaded file private! (". $row_count .")", 'error'  );
               }
             }
@@ -364,7 +363,7 @@ function private_upload_form_alter(&$for
             '#type' => 'checkbox', 
             '#default_value' => $default_value,
           );
-          if( !realpath($file->filepath) ) {
+          if (!realpath($file->filepath)) {
             $form['attachments']['wrapper']['files'][$fid]['msg'] = array(
               '#value' => ' <span style="color:red">*Missing*</span>',
             );
@@ -384,21 +383,21 @@ function private_upload_form_alter(&$for
       }     
     }
   }  
-  elseif( $form_id == 'upload_js' ) {
+  elseif ($form_id == 'upload_js') {
     $form['files']['#theme'] = 'private_upload_form';
 //    $form['#submit'][] = 'private_upload_form_submit'; // ???
     
     foreach ($form['files'] as $fid => $file) {
-      if( !_private_upload_starts_with( $fid, '#' ) ) { // Ignore the properties.
-        if( $_POST['files'][$fid] ) { 
+      if (!_private_upload_starts_with($fid, '#')) { // Ignore the properties.
+        if ($_POST['files'][$fid]) { 
           $private = $_POST['files'][$fid]['private'];
           // While I am here lets fix the problem with delete and list as well.
           // Q: Do I still need this fix in D6?
           $form['files'][$fid]['list']['#default_value'] = $_POST['files'][$fid]['list'];
           $form['files'][$fid]['remove']['#default_value'] = $_POST['files'][$fid]['remove'];
         }
-        else { // File is a newly uploaded so set private to default.
-          $private = ( variable_get( 'private_upload_default', 'private' ) == 'private' );
+        else { // File is newly uploaded so set private to default.
+          $private = (variable_get('private_upload_default', 'private') == 'private');
         }
         
         $form['files'][$fid]['private'] = array(
@@ -422,8 +421,8 @@ function private_upload_form_validate($f
       $upload_weight = (int)db_result(db_query("SELECT weight FROM {system} WHERE name = 'upload'"));
       $private_weight = (int)db_result(db_query("SELECT weight FROM {system} WHERE name = 'private_upload'"));
       if ($private_weight <= $upload_weight) {
-        $new_weight = $upload_weight+1;
-        drupal_set_message( t("Adjusting private_upload's weight to "). $new_weight, 'warning');
+        $new_weight = $upload_weight + 1;
+        drupal_set_message(t("Adjusting private_upload's weight to !new_weight", array('!new_weight' => $new_weight)), 'warning');
         db_query("UPDATE {system} SET weight = '%d' WHERE name = 'private_upload'", $new_weight);
       }
       else {
@@ -452,7 +451,7 @@ function private_upload_form_submit($for
           $private = $_POST['files'][$fid]['private']; 
         }
         else {
-          $private = (variable_get( 'private_upload_default', 'private' ) == 'private'); // Sumbit before Attach
+          $private = (variable_get('private_upload_default', 'private') == 'private'); // Sumbit before Attach
         }
         $form_state['values']['files'][$fid]['private'] = $private;
       }
@@ -489,7 +488,7 @@ function private_upload_admin() {
     '#type' => 'select',
     '#title' => t('Default Upload Privacy Setting'),
     '#default_value' => variable_get('private_upload_default', 'private' ),
-    '#options' => array ( 'private' => 'private', 'public' => 'public' ),
+    '#options' => array('private' => 'private', 'public' => 'public'),
     '#description' => t('Are uploads public or private by default?'),
   );
   
@@ -513,19 +512,17 @@ function private_upload_admin() {
   // loop through all the file in private folder & collect stats.
   $private_file_count = 0;
   $d = opendir( $private_path );
-  if( $d ) {
-    while( $f = readdir($d) ) {
-      if( $f != '.' && $f != '..' && $f != '.htaccess' && $f != 'privacy_test.txt') {
+  if ($d) {
+    while ($f = readdir($d)) {
+      if ($f != '.' && $f != '..' && $f != '.htaccess' && $f != 'privacy_test.txt') {
         $private_file_count++;
       }
     }
     closedir( $d );
    
     $db_private_file_count = db_result( db_query("SELECT COUNT(fid) FROM {files} WHERE filepath REGEXP '^%s'", $private_path) );
-    $output = t( "There are '!fs_count' files in the private folder, ".
-                 " and the DB thinks there are '!db_count' private files.", 
-                 array( '!fs_count'=>$private_file_count, '!db_count'=>$db_private_file_count) );
-    if( $db_private_file_count != $private_file_count ) {
+    $output = t("There are !fs_count files in the private folder, and the DB thinks there are !db_count private files.", array('!fs_count' => $private_file_count, '!db_count' => $db_private_file_count));
+    if ($db_private_file_count != $private_file_count) {
       $status[] = '<div class="error">'. $output .'</div>';  
     }
     else {
@@ -533,19 +530,15 @@ function private_upload_admin() {
     }
   }
   else { // unable to open folder!
-    $status[] = '<div class="error">'. 
-                t("'!private_path' is not a valid directory (!is).", 
-                  array('!private_path'=>$private_path, '!is'=>is_dir($private_path))) .
-                '</div>';  
+    $status[] = '<div class="error">'. t("!private_path is not a valid directory (!is).", array('!private_path' => $private_path, '!is' => is_dir($private_path))) .'</div>';  
   }
   
   // check for public files attached to private nodes.
   $count = db_result( db_query('SELECT COUNT(DISTINCT(f.fid)) '. 
                      'FROM {files} f INNER JOIN {upload} u ON f.fid=u.fid INNER JOIN {node_access} na ON u.nid=na.nid '.
                      'WHERE na.gid != 0 AND f.filepath NOT REGEXP "^%s"', $private_path));
-  if( $count ) {
-    $status[] = t("There are !count public files attached to private nodes. ", array('!count'=>$count)).
-                l( 'Click here to make them all private.', 'admin/private_upload/migrate_private');
+  if ($count) {
+    $status[] = t("There are !count public files attached to private nodes. ", array('!count' => $count)) . l( 'Click here to make them all private.', 'admin/private_upload/migrate_private');
   }
   else {
     $status[] = t("There are no public files attached to private nodes. Great.");
@@ -553,11 +546,10 @@ function private_upload_admin() {
 
   $result = db_fetch_array( db_query('SELECT COUNT(f.fid) as fids, COUNT(DISTINCT(u.nid)) as nids '.
                                      'FROM {files} f INNER JOIN {upload} u ON f.fid = u.fid') );
-  $status[] = t("Uploaded files in db: '!files' files attached to '!nodes' nodes.", 
-               array( '!files'=>$result['fids'], '!nodes'=>$result['nids']));
+  $status[] = t("Uploaded files in db: !files files attached to !nodes nodes.", array('!files' => $result['fids'], '!nodes' => $result['nids']));
   
-  $form['status']['info'] = array (
-    '#value' => '<ul><li>' . implode( '</li><li>', $status ) . '</li></ul>',
+  $form['status']['info'] = array(
+    '#value' => '<ul><li>' . implode('</li><li>', $status) . '</li></ul>',
   );
   
   return system_settings_form($form);
@@ -572,7 +564,7 @@ function private_upload_admin_validate($
   
   // FILE_CREATE_DIRECTORY and FILE_MODIFY_PERMISSIONS
   if (!file_check_directory($private_upload_path, TRUE, 'private_upload_path')) {
-    return false;
+    return FALSE;
   }
 }
 
@@ -600,11 +592,11 @@ function _private_upload_migrate_private
   $result = db_query('SELECT f.* FROM {files} f, {node_access} na '.
                      ' WHERE f.nid = na.nid AND na.gid != 0 AND f.filepath NOT REGEXP "^%s" '.
                      ' GROUP BY f.fid', $private_path  );
-  while( $file = db_fetch_object($result) ) {
+  while ($file = db_fetch_object($result)) {
     // file is attached to a private node, but is a public file, so move it.
     $filepath = $file->filepath;
     $filepath_orig = $filepath;
-    if( file_move($filepath, $private_path, FILE_EXISTS_RENAME) ) {
+    if (file_move($filepath, $private_path, FILE_EXISTS_RENAME)) {
       // update the file path
       $file->filepath = $filepath;
       // check whether the file was renamed
@@ -612,12 +604,11 @@ function _private_upload_migrate_private
         // update the filename in the object if so
         $file->filename = basename($filepath);
       }
-      $output .= t("Making !filename private", array('!filename'=>$file->filename)). "<br>";     
+      $output .= t("Making !filename private", array('!filename' => $file->filename)) . "<br />";     
       _private_upload_update_filepath($file);
     }
     else {
-      $output .= t("Could not move %filepath to private directory (fid: %fid attached to node: nid).", 
-                   array('%filepath'=>$file->filepath, '%fid'=>$file->fid, 'nid'=>$file->nid)). "<br>";          
+      $output .= t("Could not move %filepath to private directory (fid: %fid attached to node: !nid).", array('%filepath' => $file->filepath, '%fid' => $file->fid, '!nid' => $file->nid)) . "<br />";          
     }                        
   }
   return $output;
@@ -686,7 +677,7 @@ function theme_private_upload_form(&$for
 function theme_private_upload_attachments($files) {
   $header = array(t('Attachment'), t('Size'));
   $rows = array();
-  if(is_array($files)) {
+  if (is_array($files)) {
     foreach ($files as $file) {
       $file = (object)$file;
       if ($file->list && !$file->remove) {
@@ -719,7 +710,7 @@ function _private_upload_path() {
  * @return bool: does str1 start with str2
  */
 function _private_upload_starts_with( $str, $start ) {
-  if( count($str) == 0 ) return false; // avoid false positive.
+  if (count($str) == 0) return FALSE; // avoid false positive.
   return strstr($str, $start) == $str;  
 }
 
@@ -785,32 +776,32 @@ function _private_upload_is_url_protecte
   $socket_open_timeout = 30;
   $read_data_timeout   = 10;
   $max_chunk           = 1024;
-  $status_codes        = array("200","302"); // see function header for code details
+  $status_codes        = array("200", "302"); // see function header for code details
   
   // parse and open a socket to the requested resource
   $url_info=parse_url($url); 
   $port=isset($url_info['port']) ? $url_info['port'] : 80;
   $fp=fsockopen($url_info['host'], $port, $errno, $errstr, $socket_open_timeout);
 
-  if(!$fp) {
-    drupal_set_message( t("Unable to test file access: "). $errstr, 'error' );
+  if (!$fp) {
+    drupal_set_message( t("Unable to test file access: !errstr", array('!errstr' => $errstr)), 'error' );
     return FALSE; // Failure - file status is unknown.
   }
 
   stream_set_timeout($fp, $read_data_timeout);
 
   // Request resource headers
-  $head = "HEAD ".@$url_info['path']."?".@$url_info['query'];
-  $head .= " HTTP/1.0\r\nHost: ".@$url_info['host']."\r\n\r\n";
+  $head = "HEAD ". @$url_info['path'] ."?". @$url_info['query'];
+  $head .= " HTTP/1.0\r\nHost: ". @$url_info['host'] ."\r\n\r\n";
   fputs($fp, $head);
 
   // Read resource headers
-  if($header=trim(fgets($fp, $max_chunk))) {
-    $header_array = explode(': ',$header);
+  if ($header=trim(fgets($fp, $max_chunk))) {
+    $header_array = explode(': ', $header);
     $header_type = $header_array[0];
     
     foreach ($status_codes as $status_code) {
-      if( strstr($header_type, $status_code)) {
+      if (strstr($header_type, $status_code)) {
         fclose($fp);
         return FALSE; // Falure - file is publically accessable.
       }
@@ -844,7 +835,7 @@ function private_upload_views_tables_alt
 
 function private_upload_views_handler_filepath($fieldinfo, $fielddata, $value, $data) {
   if ($fielddata['options'] == 'usable') {
-    if(_private_upload_is_file_private($value)) {
+    if (_private_upload_is_file_private($value)) {
       $value = _private_upload_replace_start_with($value, _private_upload_path(), 'system/files' );
     }
   }
@@ -854,7 +845,7 @@ function private_upload_views_handler_fi
 /**
  * Display all files attached to a given node.
  */
-function private_upload_views_handler_all_files($fieldinfo, $fielddata, $value, $data, $listed = false) {
+function private_upload_views_handler_all_files($fieldinfo, $fielddata, $value, $data, $listed = FALSE) {
   if ($listed) {
     $and = " AND list = 1";
   }
@@ -866,12 +857,14 @@ function private_upload_views_handler_al
     // link/nolink use file filename; linkdesc/nolinkdesc use file description
     if ($fielddata['options'] == 'link' || $fielddata['options'] == 'nolink') {
       $display_string = $file->filename;
-    } else {
+    } 
+    else {
       $display_string = $file->description;
     }
     if ($fielddata['options'] == 'nolink' || $fielddata['options'] == 'nolinkdesc') {
       $links[] = check_plain($display_string);
-    } else {
+    } 
+    else {
 //      $links[] = l($display_string, check_url(file_create_url($file->filepath))); // original
       $links[] = l($display_string, _private_upload_create_url($file)); // the change
     }
