? video_upload_bugs.patch ? video_upload_bugs_0.patch Index: video_upload.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/video/plugins/video_upload/video_upload.module,v retrieving revision 1.9.2.2 diff -u -r1.9.2.2 video_upload.module --- video_upload.module 21 Feb 2007 19:06:40 -0000 1.9.2.2 +++ video_upload.module 19 Mar 2007 12:05:55 -0000 @@ -61,7 +61,8 @@ case 'load': $output['video_upload_file'] = _video_upload_load($node); - if($node->vidfile == '') { // we will disable uploaded file if a path is already live + + if($node->vidfile == '' && arg(2)!= 'edit') { // we will disable uploaded file if a path is already live $output['vidfile'] = file_create_url($output['video_upload_file']->filepath); // set the filesize - this seems not to work.. why??? $output['size'] = $output['video_upload_file']->filesize; @@ -86,8 +87,8 @@ break; case 'update': // is there a better way ??? - $node->video_upload_file = _video_upload_load($node); - _video_upload_delete($node); + //$node->video_upload_file = _video_upload_load($node); + //_video_upload_delete($node); _video_upload_store($node); break; @@ -141,7 +142,7 @@ '#title' => t('Upload video'), '#weight' => -19, '#collapsible' => TRUE, - '#collapsed' => (isset($node->video_upload_file) ? TRUE : FALSE ), + '#collapsed' => (isset($node->video_upload_file) ? FALSE : TRUE ), ); $form['video']['video_upload'] += _video_upload_form($node); @@ -153,10 +154,10 @@ function _video_upload_load(&$node) { if ($node->vid) { $result = db_query('SELECT * FROM {files} f INNER JOIN {file_revisions} r ON f.fid = r.fid WHERE r.vid = %d ORDER BY f.fid DESC', $node->vid); - //while($item = db_fetch_object($result)) { - // print_r($item); - //} - return db_fetch_object($result); + + $video_upload = db_fetch_object($result); + $video_upload->loaded = TRUE; + return $video_upload; } } @@ -180,10 +181,16 @@ function _video_upload_prepare(&$node) { // clear video file informations - if(count($_POST) == 0) { - if (!empty($_SESSION['video_upload_file'])) { + if (count($_POST) == 0 && !empty($_SESSION['video_upload_file']) && !$node->nid) { + + if(!$_SESSION['video_upload_file']->loaded) { + //delete the video if there is a pending file uploaded + //on another node creation form which has been abandoned file_delete($_SESSION['video_upload_file']->filepath); + + drupal_set_message($_SESSION['video_upload_file']->filepath . ' ' . t('deleted prepare 1')); } + unset($_SESSION['video_upload_file']); } @@ -197,6 +204,18 @@ // set video size $node->size = $node->video_upload_file->filesize; + if(!empty($_SESSION['video_upload_file'])) { + // there was and already uploaded file. we have uploaded another one + // then delete the older + file_delete($_SESSION['video_upload_file']->filepath); + if($node->nid) { // the file is on the file table on DB + // delete file information from database + db_query('DELETE FROM {file_revisions} WHERE fid = %d', $node->video_upload_file->fid); + db_query('DELETE FROM {files} WHERE fid = %d', $node->video_upload_file->fid); + } + + drupal_set_message($_SESSION['video_upload_file']->filepath . ' ' . t('deleted prepare 2')); + } $_SESSION['video_upload_file'] = $node->video_upload_file; } else if (!empty($_SESSION['video_upload_file'])) { @@ -239,6 +258,8 @@ // delete file information from database db_query('DELETE FROM {file_revisions} WHERE fid = %d', $node->video_upload_file->fid); db_query('DELETE FROM {files} WHERE fid = %d', $node->video_upload_file->fid); + + drupal_set_message($node->video_upload_file->path . 'Deleted delete'); }