View source
<?php
function _ris_tagged_import(&$data, $node) {
$incite = false;
$node_array = array();
foreach (explode("\n", $data) as $line) {
$line_len = strlen($line);
if ($line_len > 3) {
$start = strpos($line, " - ");
if ($start !== false) {
$tag = drupal_substr($line, $start - 2, 2);
$value = trim(drupal_substr($line, $start + 4));
}
else {
$value = $line;
}
}
if ($line_len > 3) {
switch ($tag) {
case 'ER':
if (empty($node_array[$node_id]['title'])) {
$node_array[$node_id]['title'] = t("Untitled");
}
$incite = false;
break;
case 'TY':
$node_id = array_push($node_array, $node) - 1;
$incite = true;
switch ($value) {
case "ART":
$node_array[$node_id]['biblio_type'] = 112;
break;
case "COMP":
$node_array[$node_id]['biblio_type'] = 113;
break;
case "ADVS":
$node_array[$node_id]['biblio_type'] = 114;
break;
case "HEAR":
$node_array[$node_id]['biblio_type'] = 115;
break;
case "CASE":
$node_array[$node_id]['biblio_type'] = 116;
break;
case "BILL":
$node_array[$node_id]['biblio_type'] = 117;
break;
case "JOUR":
$node_array[$node_id]['biblio_type'] = 102;
break;
case "CONF":
$node_array[$node_id]['biblio_type'] = 103;
break;
case "NEWS":
$node_array[$node_id]['biblio_type'] = 105;
break;
case "MGZN":
$node_array[$node_id]['biblio_type'] = 106;
break;
case "ICOMM":
$node_array[$node_id]['biblio_type'] = 107;
break;
case "RPRT":
$node_array[$node_id]['biblio_type'] = 109;
break;
case "MPCT":
$node_array[$node_id]['biblio_type'] = 110;
break;
case "BOOK":
$node_array[$node_id]['biblio_type'] = 100;
break;
case "CHAP":
$node_array[$node_id]['biblio_type'] = 101;
break;
case "THES":
$node_array[$node_id]['biblio_type'] = 108;
break;
case "PAT":
$node_array[$node_id]['biblio_type'] = 119;
break;
case "PCOMM":
$node_array[$node_id]['biblio_type'] = 120;
break;
case "MAP":
$node_array[$node_id]['biblio_type'] = 122;
break;
case "DATA":
$node_array[$node_id]['biblio_type'] = 125;
break;
case "STAT":
$node_array[$node_id]['biblio_type'] = 125;
break;
case "GEN":
default:
$node_array[$node_id]['biblio_type'] = 129;
break;
}
break;
case 'A1':
case 'AU':
if ($node_array[$node_id]['biblio_authors']) {
$node_array[$node_id]['biblio_authors'] .= "; ";
}
$node_array[$node_id]['biblio_authors'] .= $value;
break;
case 'JF':
$node_array[$node_id]['biblio_secondary_title'] = $value;
break;
case 'CY':
$node_array[$node_id]['biblio_place_published'] = $value;
break;
case 'Y1':
case 'PY':
$node_array[$node_id]['biblio_year'] = ($end = strpos($value, "/")) ? substr($value, 0, $end) : $value;
$node_array[$node_id]['biblio_date'] = $value;
break;
case 'A2':
case 'ED':
if ($node_array[$node_id]['biblio_secondary_authors']) {
$node_array[$node_id]['biblio_secondary_authors'] .= "; ";
}
$node_array[$node_id]['biblio_secondary_authors'] .= $value;
break;
case 'PB':
$node_array[$node_id]['biblio_publisher'] = $value;
break;
case 'T2':
$node_array[$node_id]['biblio_secondary_title'] = $value;
break;
case 'KW':
$node_array[$node_id]['biblio_keywords'] .= $node_array[$node_id]['biblio_keywords'] ? ", {$value}" : $value;
break;
case 'IS':
case 'CP':
$node_array[$node_id]['biblio_issue'] = $value;
break;
case 'SP':
case 'EP':
$node_array[$node_id]['biblio_pages'] .= $tag == "SP" ? $value : " - " . $value;
break;
case 'T3':
$node_array[$node_id]['biblio_tertiary_title'] = $value;
break;
case 'TI':
case 'T1':
case 'CT':
case 'BT':
$node_array[$node_id]['title'] = $value;
break;
case 'UR':
$node_array[$node_id]['biblio_url'] = $value;
break;
case 'VL':
$node_array[$node_id]['biblio_volume'] = $value;
break;
case 'N2':
$node_array[$node_id]['biblio_abst_e'] .= $value;
break;
case 'A3':
if ($node_array[$node_id]['biblio_tertiary_authors']) {
$node_array[$node_id]['biblio_tertiary_authors'] .= "; ";
}
$node_array[$node_id]['biblio_tertiary_authors'] .= $value;
break;
case 'N1':
$node_array[$node_id]['biblio_notes'] .= $value;
break;
case 'U1':
$node_array[$node_id]['biblio_custom1'] = $value;
break;
case 'U2':
$node_array[$node_id]['biblio_custom2'] = $value;
break;
case 'U3':
$node_array[$node_id]['biblio_custom3'] = $value;
break;
case 'U4':
$node_array[$node_id]['biblio_custom4'] = $value;
break;
case 'U5':
$node_array[$node_id]['biblio_custom5'] = $value;
break;
case 'SN':
$node_array[$node_id]['biblio_isbn'] = $value;
break;
default:
break;
}
}
else {
}
}
$node_ids = _biblio_save_imported_nodes($node_array);
return $node_ids;
}