Index: branches/unlabeled/unlabeled-1.35.2/kernel/units/general/cat_event_handler.php =================================================================== diff -u -N -r4066 -r4070 --- branches/unlabeled/unlabeled-1.35.2/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 4066) +++ branches/unlabeled/unlabeled-1.35.2/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 4070) @@ -1379,6 +1379,7 @@ $object =& $event->getObject( Array('skip_autoload' => true) ); $object->SetFieldsFromHash($field_values); $field_values['ImportFilename'] = $object->GetDBField('ImportFilename'); //if upload formatter has renamed the file during moving !!! + $object->setID($item_id); $this->setRequiredFields($event); @@ -1406,6 +1407,17 @@ } else { + // make uploaded file local & change source selection + $filename = getArrayValue($field_values, 'ImportFilename'); + if ($filename) { + $this->updateImportFiles($event); + $object->SetDBField('ImportSource', 2); + $field_values['ImportSource'] = 2; + $object->SetDBField('ImportLocalFilename', $filename); + $field_values['ImportLocalFilename'] = $filename; + $export_object->saveOptions($event, $field_values); + } + $event->status = erFAIL; $event->redirect = false; } @@ -1481,25 +1493,39 @@ $options['options'] = $available_columns; $object->SetFieldOptions('AvailableColumns', $options); - if ($event->Special == 'import') - { - $import_filenames = Array(); + $this->updateImportFiles($event); + } - if ($folder_handle = opendir(EXPORT_PATH)) { - while (false !== ($file = readdir($folder_handle))) { - if (is_dir(EXPORT_PATH.'/'.$file) || substr($file, 0, 1) == '.' || strtolower($file) == 'cvs' || strtolower($file) == 'dummy' || filesize(EXPORT_PATH.'/'.$file) == 0) continue; + /** + * Updates uploaded files list + * + * @param kEvent $event + */ + function updateImportFiles(&$event) + { + if ($event->Special != 'import') { + return false; + } + + $object =& $event->getObject(); + + $import_filenames = Array(); - $file_size = formatSize( filesize(EXPORT_PATH.'/'.$file) ); - $import_filenames[$file] = $file.' ('.$file_size.')'; - } - closedir($folder_handle); + if ($folder_handle = opendir(EXPORT_PATH)) { + while (false !== ($file = readdir($folder_handle))) { + if (is_dir(EXPORT_PATH.'/'.$file) || substr($file, 0, 1) == '.' || strtolower($file) == 'cvs' || strtolower($file) == 'dummy' || filesize(EXPORT_PATH.'/'.$file) == 0) continue; + + $file_size = formatSize( filesize(EXPORT_PATH.'/'.$file) ); + $import_filenames[$file] = $file.' ('.$file_size.')'; } - $options = $object->GetFieldOptions('ImportLocalFilename'); - $options['options'] = $import_filenames; - $object->SetFieldOptions('ImportLocalFilename', $options); + closedir($folder_handle); } + + $options = $object->GetFieldOptions('ImportLocalFilename'); + $options['options'] = $import_filenames; + $object->SetFieldOptions('ImportLocalFilename', $options); } - + /** * Returns specific to each item type columns only *