X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fz3950_search.pl;h=47dbe5265ef0b979639002d646d98f3055355cc3;hb=373e49576d023c24e1b649f0a5c2a2570f4bb80f;hp=1dc551935f63a3f21fa30031039c08b1eeec9f95;hpb=d7a6f17f11f625b268ba0327a7f28ec5123e8183;p=koha_gimpoz diff --git a/acqui/z3950_search.pl b/acqui/z3950_search.pl index 1dc551935f..47dbe5265e 100755 --- a/acqui/z3950_search.pl +++ b/acqui/z3950_search.pl @@ -2,6 +2,7 @@ # This is a completely new Z3950 clients search using async ZOOM -TG 02/11/06 # Copyright 2000-2002 Katipo Communications +# Copyright 2010 Catalyst IT # # This file is part of Koha. # @@ -29,6 +30,7 @@ use C4::Context; use C4::Breeding; use C4::Koha; use C4::Charset; +use C4::Bookseller qw/ GetBookSellerFromId /; use ZOOM; my $input = new CGI; @@ -43,19 +45,21 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); + my $dbh = C4::Context->dbh; my $error = $input->param('error'); my $biblionumber = $input->param('biblionumber'); $biblionumber = 0 unless $biblionumber; my $frameworkcode = $input->param('frameworkcode'); -warn($frameworkcode); my $title = $input->param('title'); my $author = $input->param('author'); my $isbn = $input->param('isbn'); my $issn = $input->param('issn'); 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 $op = $input->param('op'); my $booksellerid = $input->param('booksellerid'); my $basketno = $input->param('basketno'); @@ -90,20 +94,24 @@ my $DEBUG = 0; # if set to 1, many debug message are send on syslog. my $frameworks = getframeworks; my @frameworkcodeloop; foreach my $thisframeworkcode ( keys %$frameworks ) { - my $row = { + my %row = ( value => $thisframeworkcode, frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'}, - }; - if ( $row->{'value'} eq $frameworkcode){ - $row->{'active'} = 'true'; + ); + if ( $row{'value'} eq $frameworkcode){ + $row{'active'} = 'true'; } - push @frameworkcodeloop, $row; + push @frameworkcodeloop, \%row; } +my $vendor = GetBookSellerFromId($booksellerid); $template->param( frameworkcode => $frameworkcode, frameworkcodeloop => \@frameworkcodeloop, booksellerid => $booksellerid, - basketno => $basketno); + basketno => $basketno, + name => $vendor->{'name'} + ); + if ( $op ne "do_search" ) { @@ -114,8 +122,10 @@ if ( $op ne "do_search" ) { isbn => $isbn, issn => $issn, lccn => $lccn, + lccall => $lccall, title => $title, author => $author, + controlnumber=> $controlnumber, serverloop => $serverloop, opsearch => "search", biblionumber => $biblionumber, @@ -158,6 +168,14 @@ else { $query .= " \@attr 1=9 $lccn "; $nterms++; } + if ($lccall) { + $query .= " \@attr 1=16 \@attr 2=3 \@attr 3=1 \@attr 4=1 \@attr 5=1 \@attr 6=1 \"$lccall\" "; + $nterms++; + } + if ($controlnumber) { + $query .= " \@attr 1=12 \"$controlnumber\" "; + $nterms++; + } for my $i (1..$nterms-1) { $query = "\@and " . $query; } @@ -247,8 +265,15 @@ sub displayresults { # In rel2_2 i am not sure what encoding is so no character conversion is done here ##Add necessary encoding changes to here -TG my $oldbiblio = TransformMarcToKoha( $dbh, $marcrecord, "" ); - $oldbiblio->{isbn} =~ s/ |-|\.//g, - $oldbiblio->{issn} =~ s/ |-|\.//g, + $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 @@ -284,14 +309,13 @@ sub displayresults { server => $servername[$k], numberpending => $numberpending, ); - output_html_with_http_headers $input, $cookie, $template->output if $numberpending == 0; # print $template->output if $firstresult !=1; $firstresult++; } displayresults(); -if ( --$nremaining > 0 ) { +while ( --$nremaining > 0 ) { displayresults(); } } ## if op=search