Index: millennium.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/millennium/millennium.module,v
retrieving revision 1.13.2.33.2.2.2.37
diff -u -p -r1.13.2.33.2.2.2.37 millennium.module
--- millennium.module	30 Oct 2009 22:22:49 -0000	1.13.2.33.2.2.2.37
+++ millennium.module	16 Nov 2009 19:29:13 -0000
@@ -287,6 +287,11 @@ function _millennium_show_conversion($re
   $output .= t("You can change MARC-to-taxonomy mappings at the !configurationpage", array("!configurationpage" => l(t('configuration page'), MILLENNIUM_SETTINGS_PATH)));
   $output .= "<pre>". var_export($tmp_node->taxonomy, true) ."</pre>";
 
+  $output .= "<h4>" .t('Bibliographic data array') ."</h4>";
+  $fields = $tmp_node->millennium_biblio_data;
+  unset($fields['marc']);
+  $output .= "<pre>" . print_r($fields, true) . "</pre>";
+
   return $output;
 }
 
@@ -1022,21 +1027,17 @@ function millennium_marc_to_nodeobject($
   #$biblio["type_num"] = millennium_marcleader_to_bibtype($marc);
   $biblio["type"] = millennium_marcleader_to_mattypename($marc);
 
-  // Title
-  $data = millennium_getFields($marc, "245..");
-  list($subfield_a) = millennium_getSubfields($data[0], "a");
-  list($subfield_b) = millennium_getSubfields($data[0], "b");
-  list($subfield_p) = millennium_getSubfields($data[0], "p");
-  $biblio["title"] = $subfield_a["data"];
-  $biblio["title"] .= ($biblio["title"] ? " " : "") . $subfield_p["data"];
-  $biblio["title"] .= ($biblio["title"] ? " " : "") . $subfield_b["data"];
-  $biblio["title"] = millennium_trim_marc_value($biblio["title"]);
-
   // Get all "a" subfields for several fields...
   $tags = array(
+    "title" => "245",           // Full, concatenated title
+    "title_head" => "245",      // First part of multipart title
+    "title_remainder" => "245", // Rest of multipart title
+    "title_author" => "245",    // Statement of responsibility
+
     "short_title" => "210",
     "alternate_title" => "246",
     "translated_title" => "242",
+
     "authors" => "(100|7[02]0)",
     "corp_author" => "(11[01]|71[01])",
     "edition" => "250",
@@ -1051,6 +1052,10 @@ function millennium_marc_to_nodeobject($
   // Define subfield regexp for special cases
   // biblio field name => regexp
   $biblio_subfields = array(
+    "title" => "[abp]",
+    "title_head" => "[a]",
+    "title_remainder" => "[b]",
+    "title_author" => "[c]",
     "corp_author" => "[ab]",
     "alternate_title" => "[apb]",
     "translated_title" => "[apb]",
