#
# 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 <http://www.gnu.org/licenses>.
=head1 NAME
=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;
( $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};
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;
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'}