function node_gallery_api_create_item_from_file in Node Gallery 7
Create item from file. Form Plupload.
1 call to node_gallery_api_create_item_from_file()
- node_gallery_api_json_create_item in ./
node_gallery_api.pages.inc - Create item from JSON. For Plupload integration.
File
- ./
node_gallery_api.pages.inc, line 747 - Node Gallery module.
Code
function node_gallery_api_create_item_from_file($uri, $original_filename, $relationship_type_id, $ngid, $item_type) {
global $user;
$relationship_type = node_gallery_api_get_relationship_type(NULL, NULL, $relationship_type_id);
$instance = field_info_instance('node', $relationship_type->filefield_name, $item_type);
// Get file schema from field settings.
$scheme = variable_get('file_default_scheme', 'public') . '://';
$fields = field_info_fields();
if (!empty($fields[$instance['field_name']]['settings']['uri_scheme'])) {
$scheme = $fields[$instance['field_name']]['settings']['uri_scheme'] . '://';
}
if (!empty($instance['settings']['file_directory'])) {
$destination_dir = $scheme . token_replace($instance['settings']['file_directory']);
$destination_filename = $destination_dir . '/' . $original_filename;
}
else {
$destination_filename = $scheme . $original_filename;
}
file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY);
$destination = file_stream_wrapper_uri_normalize($destination_filename);
$destination = file_unmanaged_move($uri, $destination, FILE_EXISTS_RENAME);
$file = plupload_file_uri_to_object($destination);
$file->display = 1;
file_save($file);
$item = new stdClass();
$item->type = $item_type;
$item->uid = $user->uid;
$item->name = $user->name;
$item->title = $original_filename;
$item->{$relationship_type->filefield_name}[LANGUAGE_NONE][0] = (array) $file;
$fieldname = node_gallery_api_get_item_field_name(NULL, NULL, $relationship_type->id);
$item->{$fieldname}[LANGUAGE_NONE][0]['target_id'] = $ngid;
// Get gallery published status and set item to be the same.
$item->status = db_select('node', 'n')
->fields('n', array(
'status',
))
->condition('n.nid', $ngid)
->execute()
->fetchField();
$item->language = LANGUAGE_NONE;
node_object_prepare($item);
node_save($item);
return $item;
}