Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added bibtex import functionality

  • Loading branch information...
commit f431045c27a8780fbfb90cb746004efb10f80e8a 1 parent fe6af54
Nick Maloney ngmaloney authored
59 journalstream.admin.inc
View
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * Implements hook_form()
+ * Journalstream admin form
+*/
+function journalstream_admin_form() {
+ $form = array();
+ $content_types = variable_get('journalstream_content_types', _journalstream_get_default_types());
+ $form['journalstream_content_types'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Node Types:'),
+ '#description' => t('Select which node types will be used in a Journalstream feed.'),
+ '#options' => _journalstream_get_node_types(),
+ '#default_value' => $content_types,
+ );
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#name' => 'Submit',
+ '#value' => 'Submit'
+ );
+ return $form;
+}
+
+/**
+ * Implements hook_submit()
+ * Submit handler for admin form
+*/
+function journalstream_admin_form_submit($form, & $form_state) {
+ $vals = array_values($form_state['values']['journalstream_content_types']);
+ $content_types = array();
+ foreach($vals as $key => $val) {
+ if(!empty($val)) {
+ $content_types[] = $val;
+ }
+ }
+ variable_set('journalstream_content_types', $content_types);
+ drupal_set_message('Journalstream content types successfully saved.');
+}
+
+
+
+/**
+ * Helper hook to retrieve a list of node types
+*/
+function _journalstream_get_node_types() {
+ $types = array();
+ $node_types = node_type_get_types();
+ foreach($node_types as $type) {
+ $types[$type->type] = $type->type;
+ }
+ return $types;
+
+ dd(node_type_get_types());
+
+ return array(
+ 'biblio' => 'Biblio',
+ );
+}
1  journalstream.info
View
@@ -38,6 +38,7 @@ features[views_view][] = "journalstream_queue"
files[] = "journalstream.test"
files[] = "styles/biblio_style_journalstream.inc"
files[] = "journalstream.drush.inc"
+files[] = "journalstream.admin.inc"
name = "JournalStream"
package = "SCF"
php = "5.2.4"
241 journalstream.module
View
@@ -14,12 +14,20 @@ define('JS_NOT_REVIEWED','not_reviewed');
define('JS_ACCEPTED', 'accepted');
define('JS_REJECTED', 'rejected');
-
/**
* Implements hook_menu()
*/
function journalstream_menu() {
$items = array();
+ $items['admin/settings/journalstream'] = array(
+ 'title' => 'Journalstream Options',
+ 'description' => 'Manage Journalstream options.',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('journalstream_admin_form'),
+ 'access arguments' => array('access administration pages'),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'journalstream.admin.inc',
+ );
$items['node/%node/not_reviewed'] = array(
'title' => 'Not Reviewed',
'type' => MENU_LOCAL_TASK,
@@ -63,7 +71,7 @@ function journalstream_menu() {
* Implements hook_admin_paths().
*/
function journalstream_admin_paths() {
- $paths = array(
+ $paths = array(
'node/*/not_reviewed' => TRUE,
'node/*/accepted' => TRUE,
'node/*/rejected' => TRUE,
@@ -91,7 +99,7 @@ function journalstream_queue_view($node, $review_status) {
}
// Add publish form to preview page
if($review_status == 'preview') {
- $view_output['content'] .= drupal_render(drupal_get_form('journalstream_queue_publish_form',array('nid' => $node->nid)));
+ $view_output['content'] .= drupal_render(drupal_get_form('journalstream_queue_publish_form',array('nid' => $node->nid)));
}
return (!empty($view_output['content'])) ? $view_output['content'] : '';
}
@@ -103,8 +111,8 @@ function journalstream_queue_view($node, $review_status) {
function journalstream_queue_publish_form($form, &$form_state, $extra) {
$nid = (isset($extra['nid'])) ? $extra['nid'] : false;
if($nid) {
- $form['publish'] = array(
- '#type' => 'button',
+ $form['publish'] = array(
+ '#type' => 'button',
'#value' => 'Publish',
);
$form['#action'] = url('node/add/collection/' . $nid);
@@ -140,9 +148,9 @@ function _journalstream_insert_after_first_element(&$a, $element) {
}
-/**
+/**
* Access callback for ONLY displaying the journalstream local tasks
- * if the node type is JS_TOPIC_QUEUE_TYPE
+ * if the node type is JS_TOPIC_QUEUE_TYPE
*/
function journalstream_local_task_loader($node) {
global $user;
@@ -190,12 +198,51 @@ function journalstream_form_alter(&$form, &$form_state, $form_id) {
$form['field_topic_queue'][LANGUAGE_NONE][0]['nid']['#default_value'] = $topic_node->nid;
}
}
+ //TODO: Create interface for selecting which node types have journalstream options
+ if($form_id == 'biblio_node_form') {
+ $node = menu_get_object();
+ $default_topic_queues = array();
+ if(isset($node->nid)) {
+ $default_topic_queues = journalstream_get_node_topic_queues($node->nid);
+ }
+ $form['journalstream_settings'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Journalstream Options'),
+ '#description' => 'The options below will add this node to the selected JournalStream moderation queues.',
+ '#collapsible' => TRUE,
+ '#weight' => 35,
+ '#group' => 'additional_settings',
+ );
+ $form['journalstream_settings']['topic_queues'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('Topic Queue:'),
+ '#options' => _journalstream_get_topic_queues(),
+ '#default_value' => $default_topic_queues,
+ );
+ $form['journalstream_settings']['moderation_status'] = array(
+ '#type' => 'select',
+ '#title' => t('Moderation Status:'),
+ '#options' => _journalstream_get_moderation_options(),
+ );
+ }
}
/**
- * Implements hook_preprocess()
+ * Implements hook_form_node()
+ * Used for adding journalstream elements to certain node object types
*/
-function journalstream_preprocess_page(&$vars) {
+function journalstream_node_load($nodes, $types) {
+ $journalstream_types = variable_get('journalstream_content_types', _journalstream_get_default_types());
+ foreach($nodes as $node) {
+ if(!in_array($node->type,$journalstream_types)) {
+ continue;
+ }
+ $nid = $node->nid;
+ $journalstream = array();
+ $journalstream['topic_queues'] = journalstream_get_node_topic_queues($nid);
+ $journalstream['moderation_status'] = 'not_reviewed';
+ $nodes[$nid]->journalstream = $journalstream;
+ }
}
/**
@@ -215,8 +262,6 @@ function journalstream_preprocess_node(&$vars) {
$vars['moderation_form']['#markup'] .= '</div>';
$vars['content']['#markup'] = drupal_render($node_view);
}
- if($vars['node']->type == 'biblio') {
- }
}
/**
@@ -232,12 +277,46 @@ function journalstream_node_insert($node) {
//Make sure all referenced nodes are published
if(!empty($node->field_papers[LANGUAGE_NONE])) {
foreach($node->field_papers[LANGUAGE_NONE] as $pnid) {
- $pnode = node_load($pnid['nid']);
+ $pnode = node_load($pnid['nid']);
$pnode->status = 1;
node_save($pnode);
}
}
}
+ //Add inserted nodes to queue (if applicable)
+ $journalstream_types = variable_get('journalstream_content_types', _journalstream_get_default_types());
+ if(in_array($node->type, $journalstream_types) && isset($node->topic_queues) && !empty($node->topic_queues)) {
+ $moderation_status = (isset($node->moderation_status)) ? $node->moderation_status : 'not_reviewed';
+ foreach($node->topic_queues as $queue) {
+ journalstream_add_to_queue(array($node->nid),$queue, $moderation_status);
+ }
+ }
+}
+
+/**
+ * Implements hook_node_update()
+*/
+function journalstream_node_update($node) {
+ //Add inserted nodes to queue (if applicable)
+ $journalstream_types = variable_get('journalstream_content_types', _journalstream_get_default_types());
+ if(in_array($node->type, $journalstream_types)) {
+ $current_topic_queues = journalstream_get_node_topic_queues($node->nid);
+ $moderation_status = (isset($node->moderation_status)) ? $node->moderation_status : 'not_reviewed';
+ if(!empty($node->topic_queues)) {
+ //Remove this node from any topic queues it is not longer associated with
+ foreach($current_topic_queues as $current_topic_queue) {
+ if(!in_array($current_topic_queue,$node->topic_queues)) {
+ journalstream_remove_from_queue($node->nid,$current_topic_queue);
+ }
+ }
+ foreach($node->topic_queues as $queue) {
+ //We don't want to re-insert nodes into a topic queue
+ if(!in_array($queue, $current_topic_queues)) {
+ journalstream_add_to_queue(array($node->nid),$queue, $moderation_status);
+ }
+ }
+ }
+ }
}
/**
@@ -249,7 +328,7 @@ function journalstream_entity_info_alter(&$entity_info) {
'label' => t('SCF Collection Moderation'),
'custom settings' => TRUE,
);
-}
+}
/**
* Implements hook_form()
@@ -258,7 +337,7 @@ function journalstream_entity_info_alter(&$entity_info) {
function journalstream_moderation_form($form, &$form_state, $extra = null) {
$review_statuses = array('not_reviewed' => 'Not Reviewed', 'accepted' => 'Accepted', 'rejected' => 'Rejected');
$nid = isset($extra['node']->nid) ? $extra['node']->nid : '';
- $pnid = isset($extra['parent_node']->nid) ? $extra['parent_node']->nid : '';
+ $pnid = isset($extra['parent_node']->nid) ? $extra['parent_node']->nid : '';
$default = _journalstream_get_node_queue($extra['parent_node'], $nid);
$form['moderation_form']['review_status'] = array(
'#title' => 'paper review status',
@@ -266,7 +345,7 @@ function journalstream_moderation_form($form, &$form_state, $extra = null) {
'#options' => $review_statuses,
'#default_value' => $default,
'#ajax' => array(
- 'callback' => 'journalstream_moderation_form_callback',
+ 'callback' => 'journalstream_moderation_form_callback',
),
);
$form['parent_node'] = array('#type' => 'value', '#value' => $pnid);
@@ -281,7 +360,7 @@ function journalstream_moderation_form_callback($form, $form_state) {
//Add the node to the correct queue
journalstream_add_to_queue(array($form_state['values']['node']), $form_state['values']['parent_node'], $form_state['values']['review_status']);
// Dom element containing node
- $element = "#node-" . $form_state['values']['node'] . "-moderation-form";
+ $element = "#node-" . $form_state['values']['node'] . "-moderation-form";
$commands = array();
//Hide the calling node form
$commands[] = ajax_command_invoke($element, 'slideUp');
@@ -290,6 +369,46 @@ function journalstream_moderation_form_callback($form, $form_state) {
}
/**
+ * Hook for getting a list of topic queue nodes
+ * @return array()
+*/
+function _journalstream_get_topic_queues() {
+ $query = new EntityFieldQuery;
+ $result = $query
+ ->entityCondition('entity_type', 'node')
+ ->propertyCondition('type', JS_TOPIC_QUEUE_TYPE)
+ ->execute();
+ $nodes = array();
+ foreach($result['node'] as $row) {
+ $node = node_load($row->nid);
+ if($node && isset($node->nid) && isset($node->title)) {
+ $nodes[$node->nid] = $node->title;
+ }
+ }
+ return $nodes;
+}
+
+/**
+ * Hook for returning list of queue moderation options
+ * @return array
+*/
+function _journalstream_get_moderation_options() {
+ return array(
+ 'not_reviewed' => 'Not Reviewed',
+ 'accepted' => 'Accepted',
+ 'rejected' => 'Rejected',
+ );
+}
+
+/**
+ * Hook for returning default content types used by journalstream
+ * @return array()
+*/
+function _journalstream_get_default_types() {
+ return array('biblio','resources');
+}
+
+/**
* Helper function used for clearing the moderation queue
* Hook is fired after posting a collection
* @param $nid
@@ -320,7 +439,7 @@ function _journalstream_get_node_queue($parent_node, $nid) {
if($row['nid'] == $nid) {
return 'not_reviewed';
}
- }
+ }
}
//Iterate Through Accepted Nodes
if(!empty($parent_node->field_accepted_nodes[LANGUAGE_NONE])) {
@@ -328,7 +447,7 @@ function _journalstream_get_node_queue($parent_node, $nid) {
if($row['nid'] == $nid) {
return 'accepted';
}
- }
+ }
}
//Iterate Through Rejected Nodes
if(!empty($parent_node->field_rejected_nodes[LANGUAGE_NONE])) {
@@ -336,7 +455,7 @@ function _journalstream_get_node_queue($parent_node, $nid) {
if($row['nid'] == $nid) {
return 'rejected';
}
- }
+ }
}
}
@@ -361,9 +480,9 @@ function journalstream_add_to_queue($nids, $queue_nid, $queue = JS_NOT_REVIEWED)
return;
}
foreach($nids as $nid) {
-
+
$this_nid = array('nid' => $nid);
- // Remove node from queues
+ // Remove node from queues
if(!empty($qnode->field_accepted_nodes[LANGUAGE_NONE])) {
foreach($qnode->field_accepted_nodes[LANGUAGE_NONE] as $k => $v) {
if($v['nid'] == $nid) {
@@ -381,7 +500,7 @@ function journalstream_add_to_queue($nids, $queue_nid, $queue = JS_NOT_REVIEWED)
if(!empty($qnode->field_rejected_nodes[LANGUAGE_NONE])) {
foreach($qnode->field_rejected_nodes[LANGUAGE_NONE] as $k => $v) {
if($v['nid'] == $nid) {
- unset($qnode->field_rejected_nodes[LANGUAGE_NONE][$k]);
+ unset($qnode->field_rejected_nodes[LANGUAGE_NONE][$k]);
}
}
}
@@ -389,13 +508,13 @@ function journalstream_add_to_queue($nids, $queue_nid, $queue = JS_NOT_REVIEWED)
//Add Node to new queue
switch($queue) {
case JS_ACCEPTED:
- $qnode->field_accepted_nodes[LANGUAGE_NONE][] = $this_nid;
+ $qnode->field_accepted_nodes[LANGUAGE_NONE][] = $this_nid;
break;
case JS_REJECTED:
- $qnode->field_rejected_nodes[LANGUAGE_NONE][] = $this_nid;
+ $qnode->field_rejected_nodes[LANGUAGE_NONE][] = $this_nid;
break;
default:
- $qnode->field_not_reviewed_nodes[LANGUAGE_NONE][] = $this_nid;
+ $qnode->field_not_reviewed_nodes[LANGUAGE_NONE][] = $this_nid;
break;
}
}
@@ -403,12 +522,80 @@ function journalstream_add_to_queue($nids, $queue_nid, $queue = JS_NOT_REVIEWED)
return $result;
}
+/**
+ * Hook for removing a node from a queue
+*/
+function journalstream_remove_from_queue($nid, $queue_nid) {
+ $qnode = node_load($queue_nid);
+ // Remove node from queues
+ if(!empty($qnode->field_accepted_nodes[LANGUAGE_NONE])) {
+ foreach($qnode->field_accepted_nodes[LANGUAGE_NONE] as $k => $v) {
+ if($v['nid'] == $nid) {
+ unset($qnode->field_accepted_nodes[LANGUAGE_NONE][$k]);
+ }
+ }
+ }
+ if(!empty($qnode->field_not_reviewed_nodes[LANGUAGE_NONE])) {
+ foreach($qnode->field_not_reviewed_nodes[LANGUAGE_NONE] as $k => $v) {
+ if($v['nid'] == $nid) {
+ unset($qnode->field_not_reviewed_nodes[LANGUAGE_NONE][$k]);
+ }
+ }
+ }
+ if(!empty($qnode->field_rejected_nodes[LANGUAGE_NONE])) {
+ foreach($qnode->field_rejected_nodes[LANGUAGE_NONE] as $k => $v) {
+ if($v['nid'] == $nid) {
+ unset($qnode->field_rejected_nodes[LANGUAGE_NONE][$k]);
+ }
+ }
+ }
+ $result = node_save($qnode);
+ return $result;
+}
+
+/**
+ * Returns an array of topic queue nids a node belongs too
+ * @param $nid
+ * @return array of nids
+*/
+function journalstream_get_node_topic_queues($nid) {
+ $nid = (int) $nid;
+ $query = new EntityFieldQuery;
+ $nodes = array();
+ $topic_queues = array();
+ $nodes[] = $query
+ ->entityCondition('entity_type', 'node')
+ ->propertyCondition('type', 'topic_queue')
+ ->fieldCondition('field_not_reviewed_nodes','nid',$nid,'=')
+ ->execute();
+ $nodes[] = $query
+ ->entityCondition('entity_type', 'node')
+ ->propertyCondition('type', 'topic_queue')
+ ->fieldCondition('field_accepted_nodes','nid',$nid,'=')
+ ->execute();
+ $nodes[] = $query
+ ->entityCondition('entity_type', 'node')
+ ->propertyCondition('type', 'topic_queue')
+ ->fieldCondition('field_rejected_nodes','nid',$nid,'=')
+ ->execute();
+
+ foreach($nodes as $node) {
+ if(!empty($node) && !empty($node['node'])) {
+ $n = array_keys($node['node']);
+ if(!empty($n[0])) {
+ $topic_queues[] = $n[0];
+ }
+ }
+ }
+ return $topic_queues;
+}
-/**
+
+/**
* Function for locating and deleting orphaned Journalstream Topic Queue references
**/
function journalstream_cleanup() {
- //$journalstream_nids =
+ //$journalstream_nids =
$query = new EntityFieldQuery;
$changed = false;
$count = 0;
7 modules/journalstream_bibtex_import/journalstream_bibtex_import.info
View
@@ -0,0 +1,7 @@
+core = "7.x"
+dependencies[] = "journalstream"
+description = "Provided an interface for importing Bibtex files"
+files[] = "journalstream_bibtex_import.test"
+name = "JournalStream Bibtex Import"
+package = "SCF"
+php = "5.2.4"
179 modules/journalstream_bibtex_import/journalstream_bibtex_import.module
View
@@ -0,0 +1,179 @@
+<?php
+
+/**
+ * Implements hook_menu()
+*/
+function journalstream_bibtex_import_menu() {
+ $items = array();
+ $items['node/%node/bibtex_import'] = array(
+ 'title' => 'Bibtex Import',
+ 'type' => MENU_LOCAL_TASK,
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('journalstream_bibtex_import_form'),
+ 'access callback' => 'journalstream_bibtex_import_local_task_loader',
+ 'access arguments' => array(1),
+ 'weight' => 8,
+ );
+ return $items;
+}
+
+/**
+ * Implements hook_admin_paths().
+ */
+function journalstream_biblio_import_admin_paths() {
+ $paths = array(
+ 'node/*/bibtex_import' => TRUE,
+ );
+ return $paths;
+}
+
+
+/**
+ * Access callback for ONLY displaying the journalstream_collections local tasks
+ * if the node type is SCFC_TOPIC_QUEUE_TYPE (defined in journalstream_collections module)
+*/
+function journalstream_bibtex_import_local_task_loader($node) {
+ global $user;
+
+ //Check node access perms
+ $access_granted = node_access('update', $node);
+
+ if($node->type == JS_TOPIC_QUEUE_TYPE && $access_granted) {
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
+}
+
+/**
+ * Hook for generating the bibtex import form
+*/
+function journalstream_bibtex_import_form($form_state) {
+ global $user;
+ $node = menu_get_object();
+ $queue_options = array(
+ 'not_reviewed' => 'Not Reviewed',
+ 'accepted' => 'Accepted',
+ 'rejected' => 'Rejected',
+ );
+ // Defaults to a csv list of pubmed files
+ $form['filetype'] = array (
+ '#type' => 'value',
+ '#value' => 'biblio_bibtex',
+ );
+ $form['journalstream_bibtex_import_file'] = array (
+ '#type' => 'file',
+ '#title' => t('Import file'),
+ '#size' => 60,
+ '#description' => t('A bibtex file to import.'),
+ );
+ $form['queue'] = array(
+ '#type' => 'select',
+ '#title' => t('Moderation Queue'),
+ '#options' => $queue_options,
+ '#default_value' => 'not_reviewed',
+ '#description' => t('Moderation queue to append papers to.')
+ );
+ $form['batch_process'] = array(
+ '#type' => 'value',
+ '#value' => 0,
+ );
+ $form['nid'] = array(
+ '#type' => 'value',
+ '#value' => $node->nid,
+ );
+ $form['#attributes'] = array('enctype' => 'multipart/form-data');
+ $form['button'] = array ('#type' => 'submit', '#value' => t('Import'));
+ return $form;
+}
+
+/**
+ * Implementation of hook_validate() for the journalstream_biblio_import_form.
+ */
+function journalstream_bibtex_import_form_validate($form, &$form_state) {
+ $op = $form_state['values']['op'];
+ $filetype = $form_state['values']['filetype'];
+
+ // Test for either the raw input or the file.
+ if (!$_FILES['files']['name']['journalstream_bibtex_import_file']) {
+ form_set_error('journalstream_bibtex_import_form', t("You must select a bibtex file to import."));
+ }
+
+ if ($op == t('Import') && $filetype == "none") {
+ form_set_error('journalstream_bibtex_import_form', t("Error: You must select a file type"));
+ }
+
+ if ($error = $_FILES['files']['error']['journalstream_bibtex_import_file']) {
+ switch ($error){
+ case 1: form_set_error('journalstream_biblio_import_form', t("The uploaded file exceeds the upload_max_filesize directive in php.ini."));
+ break;
+ case 2: form_set_error('journalstream_biblio_import_form', t("The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form."));
+ break;
+ case 3: form_set_error('journalstream_biblio_import_form', t("The uploaded file was only partially uploaded."));
+ break;
+ case 4: form_set_error('journalstream_biblio_import_form', t("No file was uploaded."));
+ break;
+ case 6: form_set_error('journalstream_biblio_import_form', t("Missing a temporary folder."));
+ break;
+ case 7: form_set_error('journalstream_biblio_import_form', t("Failed to write file to disk."));
+ break;
+ case 8: form_set_error('journalstream_biblio_import_form', t("File upload stopped by extension."));
+ }
+ }
+}
+
+/**
+ * Implementation of hook_submit() for the journalstream_biblio_import_form.
+ */
+function journalstream_bibtex_import_form_submit($form, & $form_state) {
+ global $batch_proc;
+ global $session_id;
+ global $user;
+
+ $import_file = FALSE;
+ $batch_proc = ($form_state['values']['batch_process'] == 1) ? TRUE : FALSE;
+ $userid = (isset ($form_state['values']['userid'])) ? $form_state['values']['userid'] : $user->uid;
+ $queue = (isset ($form_state['values']['queue'])) ? $form_state['values']['queue'] : 'not_reviewed';
+ $nid = (isset ($form_state['values']['nid'])) ? $form_state['values']['nid'] : FALSE;
+ $filetype = $form_state['values']['filetype'];
+
+ $extensions = 'bib txt';
+ $validators['file_validate_extensions'] = array();
+ $validators['file_validate_extensions'][0] = $extensions;
+
+ //Vars needed by biblio_import()
+ $terms = array();
+ $session_id = microtime();
+ $dummy = array();
+
+ if (!$form_state['values']['op'] == t('Import') && !isset($form_state['values']['filetype'])) {
+ return;
+ }
+
+ $import_file = file_save_upload('journalstream_bibtex_import_file',$validators);
+
+ if(!$import_file) {
+ drupal_set_message(t("File was NOT successfully uploaded"), 'error');
+ return;
+ }
+
+ $pnids = journalstream_bibtex_import($import_file, $filetype, $userid, $terms, $batch_proc, $session_id, $dummy);
+ //Add imported nodes to queue
+ journalstream_add_to_queue($pnids,$nid, $queue);
+ drupal_set_message(t("Successfully imported " . count($pnids) . " papers."));
+
+ file_delete($import_file);
+ //Go to assigned queue
+ $path = 'node/' . $nid . '/' . $queue;
+ drupal_goto($path);
+}
+
+/**
+ * Implements biblio_import()
+*/
+function journalstream_bibtex_import($import_file, $filetype, $userid, $terms, $batch_proc, $session_id, $dummy) {
+ require('./'. drupal_get_path('module', 'biblio') .'/includes/biblio.import.export.inc');
+ $import = biblio_import($import_file, $filetype, $userid, $terms, $batch_proc, $session_id, $dummy);
+ return $import;
+}
0  modules/journalstream_bibtex_import/journalstream_bibtex_import.test
View
No changes.
Please sign in to comment.
Something went wrong with that request. Please try again.