Index: millennium.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/millennium/millennium.module,v
retrieving revision 1.13.2.33.2.2.2.39
diff -u -r1.13.2.33.2.2.2.39 millennium.module
--- millennium.module	30 Nov 2009 22:02:57 -0000	1.13.2.33.2.2.2.39
+++ millennium.module	1 Dec 2009 00:11:51 -0000
@@ -263,7 +263,7 @@
 
   $marc_text_msg = "";
   if ($marc_text === false) {
-    $marc_text = millennium_fetch_marc($recnum);
+    $marc_text = millennium_fetch_marc($recnum, $base_url);
     #$output .= t("Bib recnum = @bib", array("@bib" => $recnum));
     $marc_text_msg = t('This MARC record was just fetched from the WebOPAC.');
   }
@@ -779,8 +779,10 @@
 /**
  * Returns the user-defined base URL for the Millennium server (e.g. http://example.com/)
  */
-function millennium_get_real_baseurl() {
-  $base_url = variable_get('millennium_webopac_baseurl', '');
+function millennium_get_real_baseurl($base_url = false) {
+  if ($base_url === false) {
+    $base_url = variable_get('millennium_webopac_baseurl', '');
+  }
   if ($base_url == '') {
     return false;
   }
@@ -800,7 +802,7 @@
  */
 function millennium_fetch_recordpage($recnum, $mode = "plain", $base_url = false) {
   global $millennium_fetch_recordpage_cache;
-  $key = $recnum . $mode;
+  $key = $recnum . $mode . $base_url;
   #drupal_set_message("millennium_fetch_recordpage($recnum, $mode): key = $key");
   if (isset($millennium_fetch_recordpage_cache[$key])) {
     $result["data"] = $millennium_fetch_recordpage_cache[$key];
@@ -874,9 +876,9 @@
  * Grabs a Millennium record's MARC equivalent in text version
  * @param bib_recnum Millennium record number (b123456) to fetch
  */
-function millennium_fetch_marc($bib_recnum) {
+function millennium_fetch_marc($bib_recnum, $base_url = false) {
 
-  $result = millennium_fetch_recordpage($bib_recnum, "marc");
+  $result = millennium_fetch_recordpage($bib_recnum, "marc", $base_url);
   if (! $result->data) {
     return false;
   }
@@ -1900,7 +1902,8 @@
 
       switch ($delta) {
         case "marc":
-          if (!$marc_text = millennium_fetch_marc($bib_recnum)
+          $baseurl = db_result(db_query("SELECT base_url FROM {millennium_node_bib} WHERE nid=%d", $nid));
+          if (!$marc_text = millennium_fetch_marc($bib_recnum, $baseurl)
             || !user_access("view marc")) {
             return "";
           }

