X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=serials%2Fsubscription-bib-search.pl;h=2853404bcb3bc1f50724b7df6ce56a83b2c58cd6;hb=ad67b88d2895f2d01429d42e62a691a01641043a;hp=8d6310c10cf0e150ad59eca1a43c915ad2e47763;hpb=fd22187914afe5c806a98ea6eda0b2d0b455ab36;p=koha-ffzg.git diff --git a/serials/subscription-bib-search.pl b/serials/subscription-bib-search.pl index 8d6310c10c..2853404bcb 100755 --- a/serials/subscription-bib-search.pl +++ b/serials/subscription-bib-search.pl @@ -6,18 +6,18 @@ # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . =head1 NAME @@ -46,19 +46,21 @@ to multipage gestion. =cut -use strict; -use warnings; +use Modern::Perl; -use CGI; -use C4::Koha; -use C4::Auth; +use CGI qw ( -utf8 ); +use C4::Koha qw( GetAuthorisedValues ); +use C4::Auth qw( get_template_and_user ); use C4::Context; -use C4::Output; -use C4::Search; -use C4::Biblio; -use C4::Debug; +use C4::Output qw( output_html_with_http_headers ); +use C4::Search qw( new_record_from_zebra ); +use C4::Biblio qw( TransformMarcToKoha ); -my $input = new CGI; +use Koha::ItemTypes; +use Koha::SearchEngine; +use Koha::SearchEngine::Search; + +my $input = CGI->new; my $op = $input->param('op') || q{}; my $dbh = C4::Context->dbh; @@ -77,27 +79,25 @@ if ( $op eq "do_search" && $query ) { ( $template, $loggedinuser, $cookie ) = get_template_and_user( { - template_name => "serials/result.tmpl", + template_name => "serials/result.tt", query => $input, type => "intranet", - authnotrequired => 0, flagsrequired => { catalogue => 1, serials => '*' }, - debug => 1, } ); # add the limits if applicable my $itemtypelimit = $input->param('itemtypelimit'); my $ccodelimit = $input->param('ccodelimit'); - my $op = C4::Context->preference('UseQueryParser') ? '&&' : 'and'; + my $op = 'AND'; $query .= " $op $itype_or_itemtype:$itemtypelimit" if $itemtypelimit; $query .= " $op ccode:$ccodelimit" if $ccodelimit; - $debug && warn $query; $resultsperpage = $input->param('resultsperpage'); $resultsperpage = 20 if ( !defined $resultsperpage ); + my $searcher = Koha::SearchEngine::Search->new({index => $Koha::SearchEngine::BIBLIOS_INDEX}); my ( $error, $marcrecords, $total_hits ) = - SimpleSearch( $query, $startfrom * $resultsperpage, $resultsperpage ); + $searcher->simple_search_compat( $query, $startfrom * $resultsperpage, $resultsperpage ); my $total = 0; if ( defined $marcrecords ) { $total = scalar @{$marcrecords}; @@ -113,17 +113,20 @@ if ( $op eq "do_search" && $query ) { for ( my $i = 0 ; $i < $total ; $i++ ) { my %resultsloop; - my $marcrecord = MARC::File::USMARC::decode( $marcrecords->[$i] ); - my $biblio = TransformMarcToKoha( C4::Context->dbh, $marcrecord, '' ); + my $marcrecord = C4::Search::new_record_from_zebra( 'biblioserver', $marcrecords->[$i] ); + my $biblio = TransformMarcToKoha({ record => $marcrecord }); #build the hash for the template. $resultsloop{highlight} = ( $i % 2 ) ? (1) : (0); $resultsloop{title} = $biblio->{'title'}; $resultsloop{subtitle} = $biblio->{'subtitle'}; + $resultsloop{medium} = $biblio->{'medium'}; + $resultsloop{part_number} = $biblio->{'part_number'}; + $resultsloop{part_name} = $biblio->{'part_name'}; $resultsloop{biblionumber} = $biblio->{'biblionumber'}; $resultsloop{author} = $biblio->{'author'}; $resultsloop{publishercode} = $biblio->{'publishercode'}; - $resultsloop{publicationyear} = $biblio->{'publicationyear'}; + $resultsloop{publicationyear} = $biblio->{'publicationyear'} ? $biblio->{'publicationyear'} : $biblio->{'copyrightdate'}; $resultsloop{issn} = $biblio->{'issn'}; push @results, \%resultsloop; @@ -182,18 +185,18 @@ if ( $op eq "do_search" && $query ) { else { ( $template, $loggedinuser, $cookie ) = get_template_and_user( { - template_name => "serials/subscription-bib-search.tmpl", + template_name => "serials/subscription-bib-search.tt", query => $input, type => "intranet", - authnotrequired => 0, flagsrequired => { catalogue => 1, serials => '*' }, - debug => 1, } ); # load the itemtypes - my $itemtypes = GetItemTypes(); + my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } }; my @itemtypesloop; + # FIXME This is uselessly complex, the iterator should be send to the template + # FIXME The translated_description should be used foreach my $thisitemtype ( sort { $itemtypes->{$a}->{'description'}