static function AddNewFiles($sync_data, $progress_bar = null, $max_batch_size = 0) { self::PrintDebugTrace(); $keys = array_keys($sync_data->new_files); $upload_dir = self::cleanPath(WPFB_Core::UploadDir()); $upload_dir_len = strlen($upload_dir); $batch_size = 0; $start_time = $cur_time = time(); foreach ($keys as $i) { $fn = $sync_data->new_files[$i]; $rel_path = substr($fn, $upload_dir_len); unset($sync_data->new_files[$i]); if (empty($fn)) { continue; } // skip files that where already added, for some reason if (is_null($ex_file = WPFB_Item::GetByPath($rel_path))) { self::PrintDebugTrace("add_existing_file:{$fn}"); $res = WPFB_Admin::AddExistingFile($fn, empty($sync_data->thumbnails[$fn]) ? null : $sync_data->thumbnails[$fn]); self::PrintDebugTrace("added_existing_file"); if (empty($res['error'])) { $sync_data->log['added'][] = empty($res['file']) ? substr($fn, $upload_dir_len) : $res['file']; $sync_data->known_filenames[] = $rel_path; if (!empty($res['file']) && $res['file']->GetThumbPath()) { $sync_data->known_filenames[] = substr(self::cleanPath($res['file']->GetThumbPath()), $upload_dir_len); } } else { $sync_data->log['error'][] = $res['error'] . " (file {$fn})"; } } else { //$res = array('file' => $ex_file); $sync_data->log['added'][] = $ex_file; $sync_data->known_filenames[] = $rel_path; } $sync_data->num_files_processed++; if (!empty($progress_bar)) { $progress_bar->step(); } if (!empty($res['file'])) { $batch_size += $res['file']->file_size; if ($max_batch_size > 0 && $batch_size > $max_batch_size) { return false; } } } if (!empty($progress_bar)) { $progress_bar->complete(); } return true; }