function _scald_gallery_save_items in Scald: Gallery 7
Saves files uploaded with Plupload as Drupal file entites.
1 call to _scald_gallery_save_items()
- scald_gallery_scald_add_form_fill in ./
scald_gallery.module - Implements hook_scald_add_form_fill().
File
- ./
scald_gallery.module, line 241 - Scald Gallery is a Scald Atom Provider for image galleries.
Code
function _scald_gallery_save_items($form_state) {
$files = array();
$images = array();
$dest = variable_get('scald_gallery_upload_loc', 'public://atoms/galleries');
if (!file_prepare_directory($dest, FILE_CREATE_DIRECTORY || FILE_MODIFY_PERMISSIONS)) {
drupal_set_message(t('Gallery items could not be uploaded since we were unable to write to the destination directory.', 'error'));
return $files;
}
if (!empty($form_state['values']['gallery'])) {
// Save uploaded files as core file entites first.
foreach ($form_state['values']['gallery'] as $i => $file) {
$source = $file['tmppath'];
$destination = file_stream_wrapper_uri_normalize($dest . '/' . $file['name']);
$destination = file_unmanaged_move($source, $destination, FILE_EXISTS_RENAME);
$file = plupload_file_uri_to_object($destination);
$file->status = 0;
file_save($file);
$files[] = $file;
}
// Now create scald_image items.
foreach ($files as $file) {
$atom = new stdClass();
$atom->title = $file->filename;
$atom->base_id = $file->fid;
$atom->scald_thumbnail[LANGUAGE_NONE][0] = (array) $file;
$atom->type = 'image';
$atom->provider = 'scald_image';
scald_atom_save($atom);
$atoms[] = $atom;
}
}
return $atoms;
}