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:
parent
7bc4a6025b
commit
8bd8aba577
|
|
@ -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 = {
|
||||
|
|
|
|||
15
C4/Search.pm
15
C4/Search.pm
|
|
@ -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, {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 ) %]&sort_by=[% sort_by %][% END %]&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 ) %]
|
||||
|
|
|
|||
|
|
@ -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 %]
|
||||
|
|
|
|||
|
|
@ -475,7 +475,7 @@ elsif (C4::Context->preference('NoZebra')) {
|
|||
$pasarParams .= '&simple_query=' . $simple_query;
|
||||
$pasarParams .= '&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
|
||||
|
|
|
|||
Loading…
Reference in New Issue