function upload_taxonomy_service_form_submit in Taxonomy import/export via XML 7
What to do when loading from this service
1 string reference to 'upload_taxonomy_service_form_submit'
- upload_taxonomy_service_form in services/
upload.taxonomy_service.inc - A sub-form that provides UI additions to the taxonomy import form
File
- services/
upload.taxonomy_service.inc, line 56 - declare how to import a taxonomy from file upload.
Code
function upload_taxonomy_service_form_submit($form, &$form_state) {
// Invoke service and parse response
$service_id = $form_state['values']['service_id'];
#$services = $services_info = taxonomy_xml_services();
#$service = $services[$service_id];
$parameters = $form_state['values'];
$parameters['format'] = $parameters[$service_id]['format'];
// Retrieve submitted data and parse it
global $user;
// @todo there could be an issue when uploading as non-uid-1.
// file_save_upload may not save unknown extensions.
$extensions = array(
'csv',
'txt',
'xml',
'rdf',
);
$validator = array(
'file_validate_extensions' => array(
0 => join(' ', $extensions),
),
);
// Currently unsolved.
if (!($file = file_save_upload('file_upload', $validator))) {
form_set_error('upload_file', t('Vocabulary import failed: file was not uploaded.'));
#dpm($_FILES);
return FALSE;
}
// The file object is a wierd wrapper instance.
//
// Drupal7 is odd. How is this supposed to work?
// http://drupal.org/node/822008
//
//
$file->filepath = drupal_realpath($file->uri);
$fd = fopen($file->filepath, "rb");
if (!$fd) {
form_set_error('upload_file', t('Vocabulary import failed: file %filename cannot be read.', array(
'%filename' => $file->filepath,
)));
return FALSE;
}
else {
$info = fstat($fd);
$len = $info["size"];
$text = fread($fd, $len);
fclose($fd);
drupal_set_message(t('Loaded file %filename. Now processing it.', array(
'%filename' => $file->filename,
)));
$form_state['values']['file'] = $file;
taxonomy_xml_invoke_import($text, $parameters, $file->filename);
}
}