Owen Leonard
c73967d87c
This patch adds a new system preference, OpacAdvancedSearchTypes, as an OPAC-specific version of the AdvancedSearchTypes preference. Values from AdvancedSearchTypes are copied to OpacAdvancedSearchTypes so that behavior is consistent. The patch also alters the output of the "Most popular" page so that: 1. The page heading is correct ("Most popular titles" instead of "Top issues"). 2. The table show both item type and collection whether or not the user has submitted query with one of those fields as a filter. To test, apply the patch and run the database update process. - Go to Administration -> System preferences. - Search for AdvancedSearchTypes. You should get two results, one for the OPAC preference and one for the staff interface. - Check that the OpacAdvancedSearchTypes settings match the AdvancedSearchTypes settings. - View the advanced search pages in the staff interface and OPAC to confirm that the tabs look correct. - Change the OpacAdvancedSearchTypes and AdvancedSearchTypes settings to be different and confirm that each is applied separately to each interface. - Enable the OpacTopissue system preference. - View the "Most popular" page in the OPAC. - The page heading should be correct. - The OpacAdvancedSearchTypes settings should be reflected in the "Refine your search" sidebar: If "Collection" is checked, a filter for collection should appear. If "Item types" is checked, a filter for item types should appear. - The output of your search should include collection and item type regardless of what filters you've submitted. Signed-off-by: Lucas Gass <lucas@bywatersolutions.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
94 lines
2.8 KiB
Perl
Executable file
94 lines
2.8 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
|
|
# Copyright 2000-2002 Katipo Communications
|
|
# Parts Copyright Catalyst IT 2011
|
|
#
|
|
# 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 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.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
|
|
|
use Modern::Perl;
|
|
|
|
use CGI qw ( -utf8 );
|
|
use C4::Auth qw( get_template_and_user );
|
|
use C4::Context;
|
|
use C4::Search;
|
|
use C4::Output qw( output_html_with_http_headers );
|
|
use C4::Circulation qw( GetTopIssues );
|
|
|
|
=head1 NAME
|
|
|
|
plugin that shows a stats on borrowers
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
=cut
|
|
|
|
my $input = CGI->new;
|
|
|
|
# if OpacTopissue is disabled, leave immediately
|
|
if ( ! C4::Context->preference('OpacTopissue') ) {
|
|
print $input->redirect("/cgi-bin/koha/errors/404.pl");
|
|
exit;
|
|
}
|
|
|
|
my ($template, $borrowernumber, $cookie) = get_template_and_user(
|
|
{
|
|
template_name => 'opac-topissues.tt',
|
|
query => $input,
|
|
type => "opac",
|
|
authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
|
|
}
|
|
);
|
|
my $dbh = C4::Context->dbh;
|
|
# Displaying results
|
|
my $do_it = $input->param('do_it') || 0; # as form been posted
|
|
my $limit = $input->param('limit');
|
|
$limit = 10 unless ($limit && $limit =~ /^\d+$/); # control user input for SQL query
|
|
$limit = 100 if $limit > 100;
|
|
my $branch = $input->param('branch') || '';
|
|
if (!$do_it && C4::Context->userenv && C4::Context->userenv->{'branch'} ) {
|
|
$branch = C4::Context->userenv->{'branch'}; # select user branch by default
|
|
}
|
|
my $itemtype = $input->param('itemtype') || '';
|
|
my $timeLimit = $input->param('timeLimit') || 3;
|
|
my $advanced_search_types = C4::Context->preference('OpacAdvancedSearchTypes');
|
|
my @advanced_search_types = split /\|/, $advanced_search_types;
|
|
|
|
my $params = {
|
|
count => $limit,
|
|
branch => $branch,
|
|
newness => $timeLimit < 999 ? $timeLimit * 30 : undef,
|
|
};
|
|
|
|
@advanced_search_types = grep /^(ccode|itemtypes)$/, @advanced_search_types;
|
|
foreach my $type (@advanced_search_types) {
|
|
if ($type eq 'itemtypes') {
|
|
$type = 'itemtype';
|
|
}
|
|
$params->{$type} = $input->param($type);
|
|
$template->param('selected_' . $type => scalar $input->param($type));
|
|
}
|
|
|
|
my @results = GetTopIssues($params);
|
|
|
|
$template->param(
|
|
limit => $limit,
|
|
branch => $branch,
|
|
timeLimit => $timeLimit,
|
|
results => \@results,
|
|
);
|
|
|
|
output_html_with_http_headers $input, $cookie, $template->output;
|