Index: millennium.import.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/millennium/Attic/millennium.import.inc,v
retrieving revision 1.1.2.2
diff -u -r1.1.2.2 millennium.import.inc
--- millennium.import.inc	15 Oct 2009 19:36:59 -0000	1.1.2.2
+++ millennium.import.inc	16 Oct 2009 17:01:11 -0000
@@ -6,6 +6,7 @@
  * @param array $item_recnums Array of item numbers to fetch.
  */
 function millennium_mass_fetch($item_recnums) {
+  $max_records_for_bookcart = 50; // This seems to be the limit for WebOPACs, do not change =)
 
   if (ini_get('max_execution_time')<20) {
     return false;
@@ -14,9 +15,8 @@
   // Don't devote more than 75% of max_execution_time to prefetch
   $max_time = ini_get('max_execution_time') * 0.75;
 
-  // Chunk array into groups of 25 (maximum number allowed by bookcart)
-  $chunks = array_chunk($item_recnums, 25);
-  #dpm($chunks);
+  // Chunk array into groups of $max_records_for_bookcart
+  $chunks = array_chunk($item_recnums, $max_records_for_bookcart);
   $results = array('found' => array(), 'not_found' => array());
   foreach ($chunks as $chunk) {
     $result = millennium_fetch_records_via_bookcart($chunk);
@@ -60,10 +60,14 @@
     $headers = array('Cookie' => $session_cookie);
   }
 
-  // Add items from $item_recnums array to the cart
-  $path = '/search?/Xtest&searchscope=0&SORT=D/Xtest&searchscope=0&SORT=D&SUBKEY=test/1%2C7175%2C7175%2CE/2browse';
-  $post = "jumpref=Xtest&save=" . implode("&save=", $item_recnums) . "&save_func=save_marked";
-  $result = drupal_http_request("{$baseurl}{$path}", $headers, 'POST', $post);
+  // Issue N requests to add items to the bookcart, 25 records at a time
+  $chunks = array_chunk($item_recnums, 25);
+  foreach ($chunks as $chunk) {
+    // Add items from $item_recnums array to the cart
+    $path = '/search?/Xtest&searchscope=0&SORT=D/Xtest&searchscope=0&SORT=D&SUBKEY=test/1%2C7175%2C7175%2CE/2browse';
+    $post = "jumpref=Xtest&save=" . implode("&save=", $chunk) . "&save_func=save_marked";
+    $result = drupal_http_request("{$baseurl}{$path}", $headers, 'POST', $post);
+  }
   #dpm($result);
   #return;
 

