Index: mappers/feedapi_mapper_filefield.inc =================================================================== RCS file: mappers/feedapi_mapper_filefield.inc diff -N mappers/feedapi_mapper_filefield.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ mappers/feedapi_mapper_filefield.inc 16 Jul 2009 15:01:25 -0000 @@ -0,0 +1,65 @@ +type); + $fields = array(); + if (@count($info['fields'])) { + foreach ($info['fields'] as $field_name => $field) { + if (in_array($field['type'], array('filefield'))) { + $fields[$field_name] = isset($field['widget']['label']) ? $field['widget']['label'] : $field_name; + } + } + } + if (count($fields)) { + return $fields; + } + return FALSE; + break; + + case 'map': + if (is_string($feed_element) && valid_url($feed_element)) { + if (isset($node->{$field_name})) { + $items = $node->{$field_name}; + } + else { + $items = array(); + } + + // straight link usually from options->original_url or options->guid + $filepath = file_destination(file_directory_temp() . '/' . basename($feed_element), FILE_EXISTS_RENAME); + $ok = copy($feed_element, $filepath); // TODO: use curl? + if ($ok) { + $info = field_file_save_file($filepath, array(), file_directory_path()); + if ($info) { + $items[] = $info; + } + else { + watchdog("feedapi_mapper", "Could not save file @file", array('@file' => $filepath)); + } + } + else { + watchdog("feedapi_mapper", "Could not fetch @url", array('@url' => $url)); + } + + $node->$field_name = $items; + return $node; + } + break; + } +}