From 9a124f6de8338ec1ff28a4694580e3121ff3f8f2 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Wed, 21 Nov 2012 14:50:10 +0100 Subject: [PATCH] Bug 9105: Housekeeping followup Remove some debug warnings, fix indentation Signed-off-by: Jonathan Druart --- C4/Breeding.pm | 240 ++++++++++++++++++------------------------- acqui/z3950_search.pl | 43 ++++---- cataloguing/z3950_search.pl | 14 +-- 3 files changed, 123 insertions(+), 174 deletions(-) diff --git a/C4/Breeding.pm b/C4/Breeding.pm index 85a1a89..bb9054e 100644 --- a/C4/Breeding.pm +++ b/C4/Breeding.pm @@ -245,28 +245,26 @@ sub Z3950Search { my $controlnumber= $pars->{controlnumber}; -my $show_next = 0; -my $total_pages = 0; - -my $noconnection; -my $attr = ''; -my $term; -my $host; -my $server; -my $database; -my $port; -my $marcdata; -my @encoding; -my @results; -my $count; -my $toggle; -my $record; -my $oldbiblio; -my $errmsg; -my @serverhost; -my @servername; -my @breeding_loop = (); - + my $show_next = 0; + my $total_pages = 0; + + my $noconnection; + my $attr = ''; + my $term; + my $host; + my $server; + my $database; + my $port; + my $marcdata; + my @encoding; + my @results; + my $count; + my $toggle; + my $record; + my $oldbiblio; + my @serverhost; + my @servername; + my @breeding_loop = (); my @oConnection; my @oResult; @@ -315,16 +313,14 @@ my @breeding_loop = (); $query .= " \@attr 1=12 \"$controlnumber\" "; $nterms++; } -for my $i (1..$nterms-1) { - $query = "\@and " . $query; -} -warn "query ".$query if $DEBUG; + for my $i (1..$nterms-1) { + $query = "\@and " . $query; + } foreach my $servid (@id) { my $sth = $dbh->prepare("select * from z3950servers where id=?"); $sth->execute($servid); while ( $server = $sth->fetchrow_hashref ) { - warn "serverinfo ".join(':',%$server) if $DEBUG; my $option1 = new ZOOM::Options(); $option1->option( 'async' => 1 ); $option1->option( 'elementSetName', 'F' ); @@ -333,13 +329,8 @@ warn "query ".$query if $DEBUG; $option1->option( 'password', $server->{password} ) if $server->{password}; $option1->option( 'preferredRecordSyntax', $server->{syntax} ); - $oConnection[$s] = create ZOOM::Connection($option1) - || $DEBUG - && warn( "" . $oConnection[$s]->errmsg() ); - warn( "server data", $server->{name}, $server->{port} ) if $DEBUG; - $oConnection[$s]->connect( $server->{host}, $server->{port} ) - || $DEBUG - && warn( "" . $oConnection[$s]->errmsg() ); + $oConnection[$s] = create ZOOM::Connection($option1); + $oConnection[$s]->connect( $server->{host}, $server->{port} ); $serverhost[$s] = $server->{host}; $servername[$s] = $server->{name}; $encoding[$s] = ($server->{encoding}?$server->{encoding}:"iso-5426"); @@ -350,126 +341,93 @@ warn "query ".$query if $DEBUG; my $firstresult = 1; for ( my $z = 0 ; $z < $s ; $z++ ) { - warn "doing the search" if $DEBUG; - $oResult[$z] = $oConnection[$z]->search_pqf($query) - || $DEBUG - && warn( "somthing went wrong: " . $oConnection[$s]->errmsg() ); - - # $oResult[$z] = $oConnection[$z]->search_pqf($query); + $oResult[$z] = $oConnection[$z]->search_pqf($query); } - warn "# nremaining = $nremaining\n" if $DEBUG; - - while ( $nremaining-- ) { - - my $k; - my $event; - while ( ( $k = ZOOM::event( \@oConnection ) ) != 0 ) { - $event = $oConnection[ $k - 1 ]->last_event(); - warn( "connection ", $k - 1, ": event $event (", - ZOOM::event_str($event), ")\n" ) - if $DEBUG; - last if $event == ZOOM::Event::ZEND; - } + while ( $nremaining-- ) { + my $k; + my $event; + while ( ( $k = ZOOM::event( \@oConnection ) ) != 0 ) { + $event = $oConnection[ $k - 1 ]->last_event(); + last if $event == ZOOM::Event::ZEND; + } - if ( $k != 0 ) { - $k--; - warn "event from $k server = ",$serverhost[$k] if $DEBUG; - my ( $error, $errmsg, $addinfo, $diagset ) = - $oConnection[$k]->error_x(); - if ($error) { - if ($error =~ m/^(10000|10007)$/ ) { - push(@errconn, {'server' => $serverhost[$k]}); + if ( $k != 0 ) { + $k--; + my ($error, $errmsg, $addinfo, $diagset)= $oConnection[$k]->error_x(); + if ($error) { + if ($error =~ m/^(10000|10007)$/ ) { + push(@errconn, {'server' => $serverhost[$k]}); + } } - $DEBUG and warn "$k $serverhost[$k] error $query: $errmsg ($error) $addinfo\n"; - } - else { - my $numresults = $oResult[$k]->size(); - warn "numresults = $numresults" if $DEBUG; - my $i; - my $result = ''; - if ( $numresults > 0 and $numresults >= (($page-1)*20)) { - $show_next = 1 if $numresults >= ($page*20); - $total_pages = int($numresults/20)+1 if $total_pages < ($numresults/20); - for ($i = ($page-1)*20; $i < (($numresults < ($page*20)) ? $numresults : ($page*20)); $i++) { - my $rec = $oResult[$k]->record($i); - if ($rec) { - my $marcrecord; - $marcdata = $rec->raw(); - - my ($charset_result, $charset_errors); - ($marcrecord, $charset_result, $charset_errors) = - MarcToUTF8Record($marcdata, C4::Context->preference('marcflavour'), $encoding[$k]); -####WARNING records coming from Z3950 clients are in various character sets MARC8,UTF8,UNIMARC etc -## In HEAD i change everything to UTF-8 -# In rel2_2 i am not sure what encoding is so no character conversion is done here -##Add necessary encoding changes to here -TG - - # Normalize the record so it doesn't have separated diacritics - SetUTF8Flag($marcrecord); - - my $oldbiblio = TransformMarcToKoha( $dbh, $marcrecord, "" ); - $oldbiblio->{isbn} =~ s/ |-|\.//g if $oldbiblio->{isbn}; - # pad | and ( with spaces to allow line breaks in the HTML - $oldbiblio->{isbn} =~ s/\|/ \| /g if $oldbiblio->{isbn}; - $oldbiblio->{isbn} =~ s/\(/ \(/g if $oldbiblio->{isbn}; - - $oldbiblio->{issn} =~ s/ |-|\.//g if $oldbiblio->{issn}; - # pad | and ( with spaces to allow line breaks in the HTML - $oldbiblio->{issn} =~ s/\|/ \| /g if $oldbiblio->{issn}; - $oldbiblio->{issn} =~ s/\(/ \(/g if $oldbiblio->{issn}; - my ( - $notmarcrecord, $alreadyindb, $alreadyinfarm, - $imported, $breedingid - ) - = ImportBreeding( $marcdata, 2, $serverhost[$k], $encoding[$k], $random, 'z3950' ); - my %row_data; - $row_data{server} = $servername[$k]; - $row_data{isbn} = $oldbiblio->{isbn}; - $row_data{lccn} = $oldbiblio->{lccn}; - $row_data{title} = $oldbiblio->{title}; - $row_data{author} = $oldbiblio->{author}; - $row_data{breedingid} = $breedingid; - $row_data{biblionumber} = $biblionumber; - push( @breeding_loop, \%row_data ); + else { + my $numresults = $oResult[$k]->size(); + my $i; + my $result = ''; + if ( $numresults > 0 and $numresults >= (($page-1)*20)) { + $show_next = 1 if $numresults >= ($page*20); + $total_pages = int($numresults/20)+1 if $total_pages < ($numresults/20); + for ($i = ($page-1)*20; $i < (($numresults < ($page*20)) ? $numresults : ($page*20)); $i++) { + my $rec = $oResult[$k]->record($i); + if ($rec) { + my $marcrecord; + $marcdata = $rec->raw(); + my ($charset_result, $charset_errors); + ($marcrecord, $charset_result, $charset_errors)= MarcToUTF8Record($marcdata, C4::Context->preference('marcflavour'), $encoding[$k]); + # Normalize the record so it doesn't have separated diacritics + SetUTF8Flag($marcrecord); + my $oldbiblio = TransformMarcToKoha( $dbh, $marcrecord, "" ); + $oldbiblio->{isbn} =~ s/ |-|\.//g if $oldbiblio->{isbn}; + # pad | and ( with spaces to allow line breaks in the HTML + $oldbiblio->{isbn} =~ s/\|/ \| /g if $oldbiblio->{isbn}; + $oldbiblio->{isbn} =~ s/\(/ \(/g if $oldbiblio->{isbn}; + $oldbiblio->{issn} =~ s/ |-|\.//g if $oldbiblio->{issn}; + # pad | and ( with spaces to allow line breaks in the HTML + $oldbiblio->{issn} =~ s/\|/ \| /g if $oldbiblio->{issn}; + $oldbiblio->{issn} =~ s/\(/ \(/g if $oldbiblio->{issn}; + my ($notmarcrecord, $alreadyindb, $alreadyinfarm, $imported, $breedingid)= ImportBreeding( $marcdata, 2, $serverhost[$k], $encoding[$k], $random, 'z3950' ); + my %row_data; + $row_data{server} = $servername[$k]; + $row_data{isbn} = $oldbiblio->{isbn}; + $row_data{lccn} = $oldbiblio->{lccn}; + $row_data{title} = $oldbiblio->{title}; + $row_data{author} = $oldbiblio->{author}; + $row_data{breedingid} = $breedingid; + $row_data{biblionumber} = $biblionumber; + push( @breeding_loop, \%row_data ); + } + else { + push(@breeding_loop,{'server'=>$servername[$k],'title'=>join(': ',$oConnection[$k]->error_x()),'breedingid'=>-1,'biblionumber'=>-1}); + } + } + } #if $numresults + } + } # if $k !=0 + my $numberpending = $nremaining - 1; - } else { - push(@breeding_loop,{'server'=>$servername[$k],'title'=>join(': ',$oConnection[$k]->error_x()),'breedingid'=>-1,'biblionumber'=>-1}); - } # $rec - } # upto 5 results - } #$numresults + my @servers = (); + foreach my $id (@id) { + push(@servers,{id => $id}); } - } # if $k !=0 - my $numberpending = $nremaining - 1; - my @servers = (); - foreach my $id (@id) { - push(@servers,{id => $id}); - } + $template->param( + breeding_loop => \@breeding_loop, + server => $servername[$k], + numberpending => $numberpending, + current_page => $page, + servers => \@servers, + total_pages => $total_pages, + show_nextbutton => $show_next?1:0, + show_prevbutton => $page!=1, + ); + $firstresult++; + } # while nremaining $template->param( breeding_loop => \@breeding_loop, - server => $servername[$k], - numberpending => $numberpending, - current_page => $page, - servers => \@servers, - total_pages => $total_pages, - ); - $template->param(show_nextbutton=>1) if $show_next; - $template->param(show_prevbutton=>1) if $page != 1; - - # print $template->output if $firstresult !=1; - $firstresult++; - - } # while nremaining - - $template->param( - breeding_loop => \@breeding_loop, - #server => $servername[$k], numberpending => $nremaining > 0 ? $nremaining : 0, errconn => \@errconn ); - } 1; diff --git a/acqui/z3950_search.pl b/acqui/z3950_search.pl index e266b41..37ebe2c 100755 --- a/acqui/z3950_search.pl +++ b/acqui/z3950_search.pl @@ -25,27 +25,12 @@ use CGI; use C4::Auth; use C4::Output; -#use C4::Biblio; use C4::Context; use C4::Breeding; use C4::Koha; -#use C4::Charset; use C4::Bookseller qw/ GetBookSellerFromId /; -#use ZOOM; - -my $input = new CGI; -my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { - template_name => "acqui/z3950_search.tmpl", - query => $input, - type => "intranet", - authnotrequired => 1, - flagsrequired => { acquisition => 'order_manage' }, - debug => 1, - } -); - +my $input = new CGI; my $dbh = C4::Context->dbh; my $biblionumber = $input->param('biblionumber')||0; my $frameworkcode = $input->param('frameworkcode')||''; @@ -61,7 +46,6 @@ my $controlnumber = $input->param('controlnumber'); my $op = $input->param('op')||''; my $booksellerid = $input->param('booksellerid'); my $basketno = $input->param('basketno'); - my $page = $input->param('current_page') || 1; $page = $input->param('goto_page') if $input->param('changepage_goto'); @@ -80,11 +64,22 @@ foreach my $thisframeworkcode ( keys %$frameworks ) { } my $vendor = GetBookSellerFromId($booksellerid); -$template->param( frameworkcode => $frameworkcode, - frameworkcodeloop => \@frameworkcodeloop, - booksellerid => $booksellerid, - basketno => $basketno, - name => $vendor->{'name'}, + +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "acqui/z3950_search.tmpl", + query => $input, + type => "intranet", + authnotrequired => 1, + flagsrequired => { acquisition => 'order_manage' }, + } +); +$template->param( + frameworkcode => $frameworkcode, + frameworkcodeloop => \@frameworkcodeloop, + booksellerid => $booksellerid, + basketno => $basketno, + name => $vendor->{'name'}, isbn => $isbn, issn => $issn, lccn => $lccn, @@ -95,8 +90,8 @@ $template->param( frameworkcode => $frameworkcode, biblionumber => $biblionumber, dewey => $dewey, subject => $subject, - ); - +); + if ( $op ne "do_search" ) { my $sth = $dbh->prepare("select id,host,name,checked from z3950servers order by host"); $sth->execute(); diff --git a/cataloguing/z3950_search.pl b/cataloguing/z3950_search.pl index 8bf5792..9fc9d68 100755 --- a/cataloguing/z3950_search.pl +++ b/cataloguing/z3950_search.pl @@ -24,12 +24,9 @@ use CGI; use C4::Auth; use C4::Output; -#use C4::Biblio; use C4::Context; use C4::Breeding; use C4::Koha; -#use C4::Charset; -#use ZOOM; my $input = new CGI; my $dbh = C4::Context->dbh; @@ -44,9 +41,9 @@ my $lccn = $input->param('lccn'); my $lccall = $input->param('lccall'); my $subject = $input->param('subject'); my $dewey = $input->param('dewey'); -my $controlnumber = $input->param('controlnumber'); -my $stdid = $input->param('stdid'); -my $srchany = $input->param('srchany'); +my $controlnumber = $input->param('controlnumber'); +my $stdid = $input->param('stdid'); +my $srchany = $input->param('srchany'); my $op = $input->param('op')||''; my $page = $input->param('current_page') || 1; @@ -58,11 +55,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ type => "intranet", authnotrequired => 1, flagsrequired => { catalogue => 1 }, - debug => 1, }); -$template->param( frameworkcode => $frameworkcode, ); $template->param( + frameworkcode => $frameworkcode, isbn => $isbn, issn => $issn, lccn => $lccn, @@ -112,5 +108,5 @@ my $pars= { stdid => 0, srchany => 0, }; -Z3950Search($pars, $template); +Z3950Search($pars, $template); output_html_with_http_headers $input, $cookie, $template->output; -- 1.7.10.4