diff --git a/main/inc/lib/fileUpload.lib.php b/main/inc/lib/fileUpload.lib.php index 3fa49c8638..f93f1bbd38 100644 --- a/main/inc/lib/fileUpload.lib.php +++ b/main/inc/lib/fileUpload.lib.php @@ -293,7 +293,7 @@ function handle_uploaded_document($_course,$uploaded_file,$base_work_dir,$upload //if the want to unzip, check if the file has a .zip (or ZIP,Zip,ZiP,...) extension if ($unzip == 1 && preg_match("/.zip$/", strtolower($uploaded_file['name'])) ) { - return unzip_uploaded_document($uploaded_file, $upload_path, $base_work_dir, $maxFilledSpace, $output); + return unzip_uploaded_document($uploaded_file, $upload_path, $base_work_dir, $maxFilledSpace, $output, $to_group_id); //display_message("Unzipping file"); } //we can only unzip ZIP files (no gz, tar,...) @@ -891,7 +891,7 @@ function unzip_uploaded_file($uploadedFile, $uploadPath, $baseWorkDir, $maxFille * @return boolean true if it succeeds false otherwise */ -function unzip_uploaded_document($uploaded_file, $upload_path, $base_work_dir, $max_filled_space, $output = true) +function unzip_uploaded_document($uploaded_file, $upload_path, $base_work_dir, $max_filled_space, $output = true, $to_group_id=0) { global $_course; global $_user; @@ -931,7 +931,8 @@ function unzip_uploaded_document($uploaded_file, $upload_path, $base_work_dir, $ //we extract using a callback function that "cleans" the path $unzipping_state = $zip_file->extract(PCLZIP_CB_PRE_EXTRACT, 'clean_up_files_in_zip'); // Add all documents in the unzipped folder to the database - add_all_documents_in_folder_to_database($_course,$_user['user_id'],$base_work_dir,$upload_path == '/' ? '' : $upload_path); + add_all_documents_in_folder_to_database($_course,$_user['user_id'],$base_work_dir,$upload_path == '/' ? '' : $upload_path, $to_group_id); + return true; /* if ($upload_path != '/') @@ -1833,7 +1834,7 @@ function build_missing_files_form($missing_files,$upload_path,$file_name) * @param string $base_work_dir * @param string $current_path, needed for recursivity */ -function add_all_documents_in_folder_to_database($_course,$user_id,$base_work_dir,$current_path='') +function add_all_documents_in_folder_to_database($_course,$user_id,$base_work_dir,$current_path='',$to_group_id=0) { $path = $base_work_dir.$current_path; @@ -1846,6 +1847,7 @@ $handle=opendir($path); $completepath="$path/$file"; //directory? + if (is_dir($completepath)) { $title=get_document_title($file); @@ -1855,12 +1857,12 @@ $handle=opendir($path); if(!DocumentManager::get_document_id($_course, $current_path.'/'.$safe_file)) { $document_id=add_document($_course,$current_path.'/'.$safe_file,'folder',0,$title); - api_item_property_update($_course,TOOL_DOCUMENT,$document_id,'DocumentAdded',$user_id); + api_item_property_update($_course,TOOL_DOCUMENT,$document_id,'DocumentAdded',$user_id, $to_group_id); //echo $current_path.'/'.$safe_file." added!
"; } //recursive - add_all_documents_in_folder_to_database($_course,$user_id,$base_work_dir,$current_path.'/'.$safe_file); + add_all_documents_in_folder_to_database($_course,$user_id,$base_work_dir,$current_path.'/'.$safe_file, $to_group_id); } //file! else @@ -1868,12 +1870,13 @@ $handle=opendir($path); //rename $safe_file=disable_dangerous_file(replace_dangerous_char($file)); @rename($base_work_dir.$current_path.'/'.$file,$base_work_dir.$current_path.'/'.$safe_file); + if(!DocumentManager::get_document_id($_course, $current_path.'/'.$safe_file)) { $title=get_document_title($file); $size = filesize($base_work_dir.$current_path.'/'.$safe_file); $document_id = add_document($_course,$current_path.'/'.$safe_file,'file',$size,$title); - api_item_property_update($_course,TOOL_DOCUMENT,$document_id,'DocumentAdded',$user_id); + api_item_property_update($_course,TOOL_DOCUMENT,$document_id,'DocumentAdded',$user_id,$to_group_id); //echo $current_path.'/'.$safe_file." added!
"; } }