=cut
-use strict;
-use warnings;
+use Modern::Perl;
use CGI qw ( -utf8 );
-use C4::Koha;
-use C4::Auth;
+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_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 = C4::Search::new_record_from_zebra( 'biblioserver', $marcrecords->[$i] );
- my $biblio = TransformMarcToKoha( $marcrecord, '' );
+ 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;
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'}