[Koha-patches] [PATCH] bug_7520: Created opac/advanced_search_types.json
Srdjan Jankovic
srdjan at catalyst.net.nz
Mon Feb 13 08:20:27 CET 2012
Returns json of AdvancedSearchTypes (collection codes or itemtypes).
Useful for dynamic gbuilding of the search forms.
---
opac/advanced_search_types.json | 62 +++++++++++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 0 deletions(-)
create mode 100755 opac/advanced_search_types.json
diff --git a/opac/advanced_search_types.json b/opac/advanced_search_types.json
new file mode 100755
index 0000000..45b557c
--- /dev/null
+++ b/opac/advanced_search_types.json
@@ -0,0 +1,62 @@
+#!/usr/bin/perl
+
+# Copyright 2012 CatalystIT Ltd
+#
+# 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 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.
+
+=head1 opac/itemtypes.json
+
+Returns json list of itemtype, description. Suitable for building drop down lists.
+
+=cut
+
+use strict;
+use warnings;
+
+use CGI;
+use JSON;
+
+use C4::Koha;
+use C4::Context;
+use C4::Auth;
+
+my $input = new CGI;
+checkauth($input, 0, {}, "opac") unless C4::Context->preference("OpacPublic");
+
+my $dbh = C4::Context->dbh;
+my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes");
+my ($ccl, @typesloop);
+if (!$advanced_search_types or $advanced_search_types eq 'itemtypes') {
+ my $itemtypes = GetItemTypes;
+ my $itype_or_itemtype = (C4::Context->preference("item-level_itypes"))?'itype':'itemtype';
+ @typesloop = map {
+ code => $_,
+ description => $itemtypes->{$_}->{'description'},
+ imageurl => getitemtypeimagelocation( 'opac', $itemtypes->{$_}->{'imageurl'} ),
+ }, sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'} } keys %$itemtypes;
+ $ccl = "$itype_or_itemtype,phr";
+} else {
+ my $advsearchtypes = GetAuthorisedValues($advanced_search_types);
+ @typesloop = map {
+ code => $_->{authorised_value},
+ description => $_->{'lib'},
+ imageurl => getitemtypeimagelocation( 'opac', $_->{'imageurl'} ),
+ }, @$advsearchtypes;
+ $ccl = $advanced_search_types;
+}
+
+print $input->header('application/json');
+print to_json({ ccl => $advanced_search_types, types => \@typesloop });
--
1.6.5
More information about the Koha-patches
mailing list