koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/z3950 search.pl [rel_2_2]


From: Henri-Damien LAURENT
Subject: [Koha-cvs] koha/z3950 search.pl [rel_2_2]
Date: Mon, 26 Feb 2007 15:24:01 +0000

CVSROOT:        /sources/koha
Module name:    koha
Branch:         rel_2_2
Changes by:     Henri-Damien LAURENT <hdl>      07/02/26 15:24:01

Modified files:
        z3950          : search.pl 

Log message:
        A new search.pl that should be more reactive.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/z3950/search.pl?cvsroot=koha&only_with_tag=rel_2_2&r1=1.3.2.18&r2=1.3.2.19

Patches:
Index: search.pl
===================================================================
RCS file: /sources/koha/koha/z3950/search.pl,v
retrieving revision 1.3.2.18
retrieving revision 1.3.2.19
diff -u -b -r1.3.2.18 -r1.3.2.19
--- search.pl   26 Feb 2007 15:05:53 -0000      1.3.2.18
+++ search.pl   26 Feb 2007 15:24:01 -0000      1.3.2.19
@@ -146,23 +146,32 @@
                }## while fetch
        }# foreach
        my $nremaining = $s;
+       my $firstresult=1;
 
+AGAIN:
        my $k;
        my $event;
+    
        while (($k = ZOOM::event(address@hidden)) != 0) {
           $event = $oConnection[$k-1]->last_event();
-          warn ("connection ", $k-1, ": event $event (", 
ZOOM::event_str($event), ")\n");
-          if ($event == ZOOM::Event::ZEND){
-            my($error, $errmsg, $addinfo, $diagset) = 
$oConnection[$k-1]->error_x();
+        warn ("connection ", $k-1, ": event $event (", 
ZOOM::event_str($event), ")\n") if $DEBUG;
+        last if $event == ZOOM::Event::ZEND;
+    }
+
+    if ($k != 0) {
+        $k--;
+        warn $serverhost[$k] if $DEBUG;
+        my($error, $errmsg, $addinfo, $diagset) = $oConnection[$k]->error_x();
             if ($error) {
-                warn "$k $serverhost[$k - 1] error $query: $errmsg ($error) 
$addinfo\n";
-            }else {
-            my $numresults=$oResult[$k-1]->size() ;                            
                                
+            warn "$k $serverhost[$k] error $query: $errmsg ($error) 
$addinfo\n" if $DEBUG;
+            
+        } else {
+          my $numresults=$oResult[$k]->size() ;
             my $i;
             my $result='';
             if ($numresults>0){
-              for ($i=0; $i<($numresults>80?80:$numresults) ; $i++) {
-                  my $rec=$oResult[$k-1]->record($i);                          
                                                
+              for ($i=0; $i<(($numresults<20) ? ($numresults) : (20)) ; $i++) {
+                  my $rec=$oResult[$k]->record($i);
                   my $marcrecord;
                   $marcdata = $rec->raw();                                     
                                                
                   $marcrecord= fixEncoding($marcdata);
@@ -173,9 +182,7 @@
                   my $oldbiblio = MARCmarc2koha($dbh,$marcrecord,"");
                   $oldbiblio->{isbn} =~ s/ |-|\.//g,
                   $oldbiblio->{issn} =~ s/ |-|\.//g,
-                  my 
($notmarcrecord,$alreadyindb,$alreadyinfarm,$imported,$bid)=ImportBreeding($marcdata,1,
-                  $serverhost[$k-1],$encoding[$k-1],$random);
-              
+                  my 
($notmarcrecord,$alreadyindb,$alreadyinfarm,$imported,$breedingid)=ImportBreeding($marcdata,1,$serverhost[$k],$encoding[$k],$random);
                   my %row_data;
                   if ($i % 2) {
                       $toggle="#ffffcc";
@@ -183,26 +190,28 @@
                       $toggle="white";
                   }
                   $row_data{toggle} = $toggle;
-                  $row_data{server} = $serverhost[$k-1];
+                  $row_data{server} = $serverhost[$k];
                   $row_data{isbn} = $oldbiblio->{isbn};
                   $row_data{title} =$oldbiblio->{title};
                   $row_data{author} = $oldbiblio->{author};
-                  $row_data{id} = $bid;
-                  $row_data{oldbiblionumber}=$biblionumber;
+                  $row_data{breedingid} = $breedingid;
+                  $row_data{biblionumber}=$biblionumber;
                   push (@breeding_loop, \%row_data);
-                }
+              }# upto 5 results
               }#$numresults
-              else {
-                warn "no results for $serverhost[$k - 1]";
               }
-            }
-          }
-        
-       }
-
+    }# if $k !=0
+    $numberpending=$nremaining-1;
        $template->param(breeding_loop => address@hidden, 
server=>$serverhost[$k],
                                numberpending => $numberpending,
        );
-       output_html_with_http_headers $input, $cookie, $template->output;
+    output_html_with_http_headers $input, $cookie, $template->output if 
$numberpending==0;
+
+#      print  $template->output  if $firstresult !=1;
+    $firstresult++;
 
+    MAYBE_AGAIN:
+        if (--$nremaining > 0) {
+            goto AGAIN;
+        }
 } ## if op=search




reply via email to

[Prev in Thread] Current Thread [Next in Thread]