Bug 4255 - Add item type to facet list

This is for MARC 21 only.

Made following changed:

- In getFacets in C4/Koha.pm added item type facet for 952y and 942c
- In getRecords in C4:Search.pm added code to get description of itemtype codes
- facets.inc in both staff and opac to show item types related label in the facets block

To test:

Add records such that a certain itype (say BK) is present in both 942c and 952y in two DIFFERENT records.

Run a search where both test records are present. Test to see if itype types are presented in the facets block (both OPAC and staff).

Click on the itype (say BK), both the test records should appear in the refined results. This shows that the feature works for both 942c and 952y.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Ian Walls <koha.sekjal@gmail.com>

QA Comment: fixed capitalization in template includes according to HTML4 coding
guideline ("Item types" instead of "ItemTypes")

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This commit is contained in:
Meenakshi.R 2012-05-30 16:06:33 +05:30 committed by Paul Poulain
parent 7bc4a6025b
commit 8bd8aba577
6 changed files with 23 additions and 4 deletions

View File

@ -760,6 +760,12 @@ sub getFacets {
tags => [ qw/ 440a 490a / ],
sep => ', ',
},
{
idx => 'itype',
label => 'ItemTypes',
tags => [ qw/ 952y 942c / ],
sep => ', ',
},
];
my $library_facet;
$library_facet = {

View File

@ -287,7 +287,7 @@ sub SimpleSearch {
( undef, $results_hashref, \@facets_loop ) = getRecords (
$koha_query, $simple_query, $sort_by_ref, $servers_ref,
$results_per_page, $offset, $expanded_facet, $branches,
$results_per_page, $offset, $expanded_facet, $branches,$itemtypes,
$query_type, $scan
);
@ -301,7 +301,7 @@ See verbse embedded documentation.
sub getRecords {
my (
$koha_query, $simple_query, $sort_by_ref, $servers_ref,
$results_per_page, $offset, $expanded_facet, $branches,
$results_per_page, $offset, $expanded_facet, $branches,$itemtypes,
$query_type, $scan
) = @_;
@ -555,6 +555,17 @@ sub getRecords {
$facet_label_value = "*";
}
}
# if it's a itemtype, label by the name, not the code,
if ( $link_value =~ /itype/ ) {
if (defined $itemtypes
&& ref($itemtypes) eq "HASH"
&& defined $itemtypes->{$one_facet}
&& ref ($itemtypes->{$one_facet}) eq "HASH")
{
$facet_label_value =
$itemtypes->{$one_facet}->{'description'};
}
}
# but we're down with the whole label being in the link's title.
push @this_facets_array, {

View File

@ -529,7 +529,7 @@ if (C4::Context->preference('NoZebra')) {
};
} else {
eval {
($error, $results_hashref, $facets) = getRecords($query,$simple_query,\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,$branches,$query_type,$scan);
($error, $results_hashref, $facets) = getRecords($query,$simple_query,\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,$branches,$itemtypes,$query_type,$scan);
};
}
# This sorts the facets into alphabetical order

View File

@ -15,6 +15,7 @@
[% IF ( facets_loo.type_label_Topics ) %]Topics[% END %]
[% IF ( facets_loo.type_label_Places ) %]Places[% END %]
[% IF ( facets_loo.type_label_Series ) %]Series[% END %]
[% IF ( facets_loo.type_label_ItemTypes ) %]Item types[% END %]
[% IF ( facets_loo.type_label_Libraries ) %]Libraries[% END %]
<ul>
[% FOREACH facet IN facets_loo.facets %]<li><a href="/cgi-bin/koha/catalogue/search.pl?[% query_cgi |html %][% limit_cgi |html %][% IF ( sort_by ) %]&amp;sort_by=[% sort_by %][% END %]&amp;limit=[% facet.type_link_value %]:[% facet.facet_link_value %]" title="[% facet.facet_title_value %]">[% facet.facet_label_value %]</a> [% IF ( displayFacetCount ) %]([% facet.facet_count %])[% END %]</li>[% END %][% IF ( facets_loo.expandable ) %]

View File

@ -14,6 +14,7 @@
[% IF ( facets_loo.type_label_Topics ) %]Topics[% END %]
[% IF ( facets_loo.type_label_Places ) %]Places[% END %]
[% IF ( facets_loo.type_label_Series ) %]Series[% END %]
[% IF ( facets_loo.type_label_ItemTypes ) %]Item types[% END %]
[% UNLESS ( singleBranchMode ) %]
[% IF ( facets_loo.type_label_Libraries ) %]Libraries[% END %]
[% END %]

View File

@ -475,7 +475,7 @@ elsif (C4::Context->preference('NoZebra')) {
$pasarParams .= '&amp;simple_query=' . $simple_query;
$pasarParams .= '&amp;query_type=' . $query_type if ($query_type);
eval {
($error, $results_hashref, $facets) = getRecords($query,$simple_query,\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,$branches,$query_type,$scan);
($error, $results_hashref, $facets) = getRecords($query,$simple_query,\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,$branches,$itemtypes,$query_type,$scan);
};
}
# This sorts the facets into alphabetical order