function media_flickr_add_submit in Media: Flickr 7
Submission for media_flickr_add().
This will create a file object for the Flickr video.
File
- includes/
media_flickr.admin.inc, line 112 - Administrative page callbacks for Media: Flickr.
Code
function media_flickr_add_submit($form, &$form_state) {
$uri = media_flickr_media_parse($form_state['values']['url']);
$defaults = array(
'display' => TRUE,
);
// @TODO: This won't work for Flickr and many other streams.
// copy($url, $destination);
$file = file_uri_to_object($uri);
file_save($file);
if ($file) {
$form_state['redirect'] = 'media/' . $file->fid . '/edit';
field_attach_submit('media', $file, $form, $form_state);
// Make a copy of the file object to use as the media object
// (file is a field of media and the base table). This is weird.
$media = clone $file;
$file->file = array();
$file->file[LANGUAGE_NONE] = array();
$file->file[LANGUAGE_NONE][0] = (array) $file + $defaults;
$file->is_new = TRUE;
field_attach_insert('media', $file);
}
else {
drupal_set_message(t('An error occurred and no file was saved.'), 'error');
}
$form_state['redirect'] = !empty($form_state['values']['redirect']) ? $form_state['values']['redirect'] : 'media/' . $file->fid . '/edit';
}