You are here

function asset_import_form_submit in Asset 5.2

Same name and namespace in other branches
  1. 5 asset_import/asset_import.module \asset_import_form_submit()
  2. 6 contrib/asset_import/asset_import.module \asset_import_form_submit()
  3. 6 asset_import/inc/asset_import.admin.inc \asset_import_form_submit()

File

contrib/asset_import/asset_import.module, line 186

Code

function asset_import_form_submit($form_id, $form_values) {
  $nodes = array();

  // We will save the results in this array
  $op = isset($form_values['op']) ? $form_values['op'] : '';
  if ($op == t('Import')) {
    $method = $form_values['copy'] ? 'copy' : 'rename';
    $dirpath = variable_get('asset_import_path', '');
    if ($form_values['subdirectory']) {
      $options = array();
      $dirpath_new = file_create_path($form_values['parent'] . '/' . $form_values['subdirectory']);
      if (!asset_check_directory($dirpath_new, FILE_CREATE_DIRECTORY, 'folder', $options)) {
        form_set_error('folder', t('Error creating %dir.', array(
          '%dir' => $dir,
        )));
        return;
      }
    }
    if (file_check_directory($dirpath)) {
      $nodes = array();
      $files = array();
      foreach (array_filter($form_values['import_file']) as $index) {

        // try to avoid php's script timeout with a bunch of large files or a slow machine
        if (!ini_get('safe_mode')) {
          set_time_limit(0);
        }
        $origname = $form_values['file_list'][$index];
        $filename = file_check_location($dirpath . '/' . $origname, $dirpath);
        if (!$form_values['subdirectory']) {
          $target = file_directory_path() . '/' . $form_values['parent'] . '/' . $origname;
        }
        else {
          $target = file_directory_path() . '/' . $form_values['parent'] . '/' . $form_values['subdirectory'] . '/' . $origname;
        }
        if ($filename && $method($filename, $target)) {
          $options = array(
            'title' => $form_values['title'][$index],
            'author' => $form_values['author'][$index],
            'status' => 1,
          );
          $asset = new StdClass();
          $asset->filepath = $target;
          $asset->filesize = filesize($target);
          asset_save($asset, $options);
          $nodes[] = t('%filename', array(
            '%filename' => $origname,
          ));
        }
      }

      // report back on our progress
      if (!empty($nodes)) {
        drupal_set_message(t('Successfully imported: ') . theme('item_list', $nodes));
      }
      else {
        drupal_set_message(t('No image files were imported.'));
      }
    }
  }
}