diff options
-rw-r--r-- | mass_image_import.module | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/mass_image_import.module b/mass_image_import.module index d86ce64..9c20982 100644 --- a/mass_image_import.module +++ b/mass_image_import.module @@ -168,7 +168,8 @@ function mass_image_import_file($file) { } // Create the node object. - if ($node = image_create_node_from($args['filepath'], $args['title'], $args['body'], $args['taxonomy'])) { + //if ($node = image_create_node_from($args['filepath'], $args['title'], $args['body'], $args['taxonomy'])) { + if ($node = mass_image_import_create_node_from($args['filepath'], $args['title'], $args['body'], $args['taxonomy'])) { // Remove the original image now that the import has completed. file_delete($args['filepath']); } @@ -198,3 +199,60 @@ function mass_image_import_batch_finished($success, $results, $operations) { watchdog('image', 'Finished mass image import.'); drupal_set_message($message); } + +/** + * Create an image entry. Contains some code from image_create_node_from(). + * + * @see http://drupal.org/node/330421 + * @todo + * Mime, content type, field name, taxonomy, etc. + */ +function mass_image_import_create_node_from($filepath, $title, $body, $taxonomy) { + + $mime = 'image/jpeg'; + + // Make sure we can copy the file into our temp directory. + $original_path = $filepath; + if (!file_copy($filepath, _image_filename($filepath, IMAGE_ORIGINAL, TRUE))) { + return FALSE; + } + + // File data. + $file = new stdClass(); + $file->filename = basename($filepath); + $file->filepath = $filepath; + $file->filemime = $mime; + $file->filesize = filesize($filepath); + $file->uid = $uid; + $file->status = FILE_STATUS_PERMANENT; + $file->timestamp = time(); + drupal_write_record('files', $file); + + // Create the node. + $node = new StdClass(); + $node->type = 'foto'; + $node->body = $body; + $node->title = $title; + + // Image field. + $node->field_foto = array( + array( + 'fid' => $file->fid, + 'title' => basename($file->filename), + 'filename' => $file->filename, + 'filepath' => $file->filepath, + 'filesize' => $file->filesize, + 'mimetype' => $mime, + 'description' => basename($file->filename), + 'list' => 1, + ), + ); + + $node->uid = 1; + $node->status = 1; + $node->active = 1; + $node->promote = 0; + node_save($node); + + return $node; +} |