You are here

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;
}