|
Lines 28-33
use Modern::Perl;
Link Here
|
| 28 |
# to perform, etc. |
28 |
# to perform, etc. |
| 29 |
## load Koha modules |
29 |
## load Koha modules |
| 30 |
use C4::Context; |
30 |
use C4::Context; |
|
|
31 |
use List::MoreUtils q/any/; |
| 31 |
|
32 |
|
| 32 |
my $searchengine = C4::Context->preference("SearchEngine"); |
33 |
my $searchengine = C4::Context->preference("SearchEngine"); |
| 33 |
for ( $searchengine ) { |
34 |
for ( $searchengine ) { |
|
Lines 213-223
my $cnt;
Link Here
|
| 213 |
my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes") || "itemtypes"; |
214 |
my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes") || "itemtypes"; |
| 214 |
my @advanced_search_types = split(/\|/, $advanced_search_types); |
215 |
my @advanced_search_types = split(/\|/, $advanced_search_types); |
| 215 |
|
216 |
|
|
|
217 |
my $hidingrules = {}; |
| 218 |
my $yaml = C4::Context->preference('OpacHiddenItems'); |
| 219 |
if ( $yaml =~ /\S/ ) { |
| 220 |
$yaml = "$yaml\n\n"; # YAML is anal on ending \n. Surplus does not hurt |
| 221 |
eval { |
| 222 |
$hidingrules = YAML::Load($yaml); |
| 223 |
}; |
| 224 |
if ($@) { |
| 225 |
warn "Unable to parse OpacHiddenItems syspref : $@"; |
| 226 |
} |
| 227 |
} |
| 228 |
|
| 216 |
foreach my $advanced_srch_type (@advanced_search_types) { |
229 |
foreach my $advanced_srch_type (@advanced_search_types) { |
|
|
230 |
$advanced_srch_type =~ s/^\s*//; |
| 231 |
$advanced_srch_type =~ s/\s*$//; |
| 217 |
if ($advanced_srch_type eq 'itemtypes') { |
232 |
if ($advanced_srch_type eq 'itemtypes') { |
| 218 |
# itemtype is a special case, since it's not defined in authorized values |
233 |
# itemtype is a special case, since it's not defined in authorized values |
| 219 |
my @itypesloop; |
234 |
my @itypesloop; |
| 220 |
foreach my $thisitemtype ( sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'} } keys %$itemtypes ) { |
235 |
foreach my $thisitemtype ( sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'} } keys %$itemtypes ) { |
|
|
236 |
next if $hidingrules->{itype} && any { $_ eq $thisitemtype } @{$hidingrules->{itype}}; |
| 237 |
next if $hidingrules->{itemtype} && any { $_ eq $thisitemtype } @{$hidingrules->{itemtype}}; |
| 221 |
my %row =( number=>$cnt++, |
238 |
my %row =( number=>$cnt++, |
| 222 |
ccl => "$itype_or_itemtype,phr", |
239 |
ccl => "$itype_or_itemtype,phr", |
| 223 |
code => $thisitemtype, |
240 |
code => $thisitemtype, |
|
Lines 234-239
foreach my $advanced_srch_type (@advanced_search_types) {
Link Here
|
| 234 |
my $advsearchtypes = GetAuthorisedValues($advanced_srch_type, '', 'opac'); |
251 |
my $advsearchtypes = GetAuthorisedValues($advanced_srch_type, '', 'opac'); |
| 235 |
my @authvalueloop; |
252 |
my @authvalueloop; |
| 236 |
for my $thisitemtype (@$advsearchtypes) { |
253 |
for my $thisitemtype (@$advsearchtypes) { |
|
|
254 |
my $hiding_key = lc $thisitemtype->{category}; |
| 255 |
$hiding_key = "location" if $hiding_key eq 'loc'; |
| 256 |
next if $hidingrules->{$hiding_key} && any { $_ eq $thisitemtype->{authorised_value} } @{$hidingrules->{$hiding_key}}; |
| 237 |
my %row =( |
257 |
my %row =( |
| 238 |
number=>$cnt++, |
258 |
number=>$cnt++, |
| 239 |
ccl => $advanced_srch_type, |
259 |
ccl => $advanced_srch_type, |
| 240 |
- |
|
|