X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;ds=sidebyside;f=cataloguing%2Fz3950_search.pl;h=fd4eff9e13d8960040e8b16cb38d82e72d0f0438;hb=827ef0e83c594d92c2fc387760b3f0e43adfe032;hp=a44b5ea50c67e50c0108f7def69975042426bd3b;hpb=9b8b74fd8f2b8b3af102cfb60437e3b8b4040110;p=koha_fer diff --git a/cataloguing/z3950_search.pl b/cataloguing/z3950_search.pl index a44b5ea50c..fd4eff9e13 100755 --- a/cataloguing/z3950_search.pl +++ b/cataloguing/z3950_search.pl @@ -49,6 +49,12 @@ my $stdid = $input->param('stdid'); my $srchany = $input->param('srchany'); my $random = $input->param('random') || rand(1000000000); # this var is not useful anymore just kept for rel2_2 compatibility my $op = $input->param('op'); + +my $page = $input->param('current_page') || 1; +$page = $input->param('goto_page') if $input->param('changepage_goto'); +my $show_next = 0; +my $total_pages = 0; + my $numberpending; my $attr = ''; my $term; @@ -80,24 +86,28 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ }); $template->param( frameworkcode => $frameworkcode, ); +$template->param( + isbn => $isbn, + issn => $issn, + lccn => $lccn, + lccall => $lccall, + title => $title, + author => $author, + controlnumber=> $controlnumber, + stdid => $stdid, + srchany => $srchany, + biblionumber => $biblionumber, + dewey => $dewey, + subject => $subject, +); if ( $op ne "do_search" ) { my $sth = $dbh->prepare("SELECT id,host,name,checked FROM z3950servers ORDER BY rank, name"); $sth->execute(); my $serverloop = $sth->fetchall_arrayref( {} ); $template->param( - isbn => $isbn, - issn => $issn, - lccn => $lccn, - lccall => $lccall, - title => $title, - author => $author, - controlnumber=> $controlnumber, - stdid => $stdid, - srchany => $srchany, serverloop => $serverloop, opsearch => "search", - biblionumber => $biblionumber, ); output_html_with_http_headers $input, $cookie, $template->output; } @@ -117,10 +127,14 @@ else { my $s = 0; my $query = ''; my $nterms; - if ($isbn || $issn) { - $term=$isbn if ($isbn); - $term=$issn if ($issn); - $query .= " \@or \@attr 1=8 \"$term\" \@attr 1=7 \"$term\" "; + if ($isbn) { + $term=$isbn; + $query .= " \@attr 1=7 \@attr 5=1 \"$term\" "; + $nterms++; + } + if ($issn) { + $term=$issn; + $query .= " \@attr 1=8 \@attr 5=1 \"$term\" "; $nterms++; } if ($title) { @@ -231,8 +245,10 @@ warn "query ".$query if $DEBUG; my $numresults = $oResult[$k]->size(); my $i; my $result = ''; - if ( $numresults > 0 ) { - for ($i = 0; $i < (($numresults < 20) ? $numresults : 20); $i++) { + 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; @@ -245,6 +261,10 @@ warn "query ".$query if $DEBUG; ## 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 @@ -280,13 +300,24 @@ warn "query ".$query if $DEBUG; } } # if $k !=0 $numberpending = $nremaining - 1; + + my @servers = (); + foreach my $id (@id) { + push(@servers,{id => $id}); + } + $template->param( breeding_loop => \@breeding_loop, server => $servername[$k], numberpending => $numberpending, biblionumber => $biblionumber, - errconn => \@errconn + errconn => \@errconn, + 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; output_html_with_http_headers $input, $cookie, $template->output if $numberpending == 0;