View | Details | Raw Unified | Return to bug 14385
Collapse All | Expand All

(-)a/C4/Items.pm (-4 / +13 lines)
Lines 1696-1711 sub GetBarcodeFromItemnumber { Link Here
1696
1696
1697
=head2 GetHiddenItemnumbers
1697
=head2 GetHiddenItemnumbers
1698
1698
1699
    my @itemnumbers_to_hide = GetHiddenItemnumbers(@items);
1699
    my @itemnumbers_to_hide = GetHiddenItemnumbers({ items => \@items, borcat => $category });
1700
1700
1701
Given a list of items it checks which should be hidden from the OPAC given
1701
Given a list of items it checks which should be hidden from the OPAC given
1702
the current configuration. Returns a list of itemnumbers corresponding to
1702
the current configuration. Returns a list of itemnumbers corresponding to
1703
those that should be hidden.
1703
those that should be hidden. Optionally takes a borcat parameter for certain borrower types
1704
to be excluded
1704
1705
1705
=cut
1706
=cut
1706
1707
1707
sub GetHiddenItemnumbers {
1708
sub GetHiddenItemnumbers {
1708
    my (@items) = @_;
1709
    my $params = shift;
1710
    my $items = $params->{items};
1711
    if (my $exceptions = C4::Context->preference('OpacHiddenItemsExceptions') and $params->{'borcat'}){
1712
        foreach my $except (split(/\|/, $exceptions)){
1713
            if ($params->{'borcat'} eq $except){
1714
                return; # we dont hide anything for this borrower category
1715
            }
1716
        }
1717
    }
1709
    my @resultitems;
1718
    my @resultitems;
1710
1719
1711
    my $yaml = C4::Context->preference('OpacHiddenItems');
1720
    my $yaml = C4::Context->preference('OpacHiddenItems');
Lines 1722-1728 sub GetHiddenItemnumbers { Link Here
1722
    my $dbh = C4::Context->dbh;
1731
    my $dbh = C4::Context->dbh;
1723
1732
1724
    # For each item
1733
    # For each item
1725
    foreach my $item (@items) {
1734
    foreach my $item (@$items) {
1726
1735
1727
        # We check each rule
1736
        # We check each rule
1728
        foreach my $field (keys %$hidingrules) {
1737
        foreach my $field (keys %$hidingrules) {
(-)a/C4/Search.pm (-7 / +7 lines)
Lines 1846-1854 sub searchResults { Link Here
1846
1846
1847
    require C4::Items;
1847
    require C4::Items;
1848
1848
1849
    $search_context = 'opac' if !$search_context || $search_context ne 'intranet';
1849
    $search_context->{'interface'} = 'opac' if !$search_context->{'interface'} || $search_context->{'interface'} ne 'intranet';
1850
    my ($is_opac, $hidelostitems);
1850
    my ($is_opac, $hidelostitems);
1851
    if ($search_context eq 'opac') {
1851
    if ($search_context->{'interface'} eq 'opac') {
1852
        $hidelostitems = C4::Context->preference('hidelostitems');
1852
        $hidelostitems = C4::Context->preference('hidelostitems');
1853
        $is_opac       = 1;
1853
        $is_opac       = 1;
1854
    }
1854
    }
Lines 1946-1952 sub searchResults { Link Here
1946
        # add imageurl to itemtype if there is one
1946
        # add imageurl to itemtype if there is one
1947
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1947
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1948
1948
1949
        $oldbiblio->{'authorised_value_images'}  = ($search_context eq 'opac' && C4::Context->preference('AuthorisedValueImages')) || ($search_context eq 'intranet' && C4::Context->preference('StaffAuthorisedValueImages')) ? C4::Items::get_authorised_value_images( C4::Biblio::get_biblio_authorised_values( $oldbiblio->{'biblionumber'}, $marcrecord ) ) : [];
1949
        $oldbiblio->{'authorised_value_images'}  = ($search_context->{'interface'} eq 'opac' && C4::Context->preference('AuthorisedValueImages')) || ($search_context->{'interface'} eq 'intranet' && C4::Context->preference('StaffAuthorisedValueImages')) ? C4::Items::get_authorised_value_images( C4::Biblio::get_biblio_authorised_values( $oldbiblio->{'biblionumber'}, $marcrecord ) ) : [];
1950
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1950
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1951
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1951
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1952
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
1952
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
Lines 2077-2083 sub searchResults { Link Here
2077
                    next;
2077
                    next;
2078
                }
2078
                }
2079
                # hidden based on OpacHiddenItems syspref
2079
                # hidden based on OpacHiddenItems syspref
2080
                my @hi = C4::Items::GetHiddenItemnumbers($item);
2080
                my @hi = C4::Items::GetHiddenItemnumbers({ items=> [ $item ], borcat => $search_context->{category} });
2081
                if (scalar @hi) {
2081
                if (scalar @hi) {
2082
                    push @hiddenitems, @hi;
2082
                    push @hiddenitems, @hi;
2083
                    $hideatopac_count++;
2083
                    $hideatopac_count++;
Lines 2201-2207 sub searchResults { Link Here
2201
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2201
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2202
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2202
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2203
					$other_items->{$key}->{description} = $item->{description};
2203
					$other_items->{$key}->{description} = $item->{description};
2204
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2204
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2205
                }
2205
                }
2206
                # item is available
2206
                # item is available
2207
                else {
2207
                else {
Lines 2212-2218 sub searchResults { Link Here
2212
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2212
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2213
					}
2213
					}
2214
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2214
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2215
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2215
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2216
                }
2216
                }
2217
            }
2217
            }
2218
        }    # notforloan, item level and biblioitem level
2218
        }    # notforloan, item level and biblioitem level
Lines 2237-2243 sub searchResults { Link Here
2237
        }
2237
        }
2238
2238
2239
        # XSLT processing of some stuff
2239
        # XSLT processing of some stuff
2240
        my $interface = $search_context eq 'opac' ? 'OPAC' : '';
2240
        my $interface = $search_context->{'interface'} eq 'opac' ? 'OPAC' : '';
2241
        if (!$scan && C4::Context->preference($interface . "XSLTResultsDisplay")) {
2241
        if (!$scan && C4::Context->preference($interface . "XSLTResultsDisplay")) {
2242
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $interface."XSLTResultsDisplay", 1, \@hiddenitems);
2242
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $interface."XSLTResultsDisplay", 1, \@hiddenitems);
2243
        # the last parameter tells Koha to clean up the problematic ampersand entities that Zebra outputs
2243
        # the last parameter tells Koha to clean up the problematic ampersand entities that Zebra outputs
(-)a/catalogue/search.pl (-1 / +1 lines)
Lines 553-559 for (my $i=0;$i<@servers;$i++) { Link Here
553
    if ($server =~/biblioserver/) { # this is the local bibliographic server
553
    if ($server =~/biblioserver/) { # this is the local bibliographic server
554
        $hits = $results_hashref->{$server}->{"hits"};
554
        $hits = $results_hashref->{$server}->{"hits"};
555
        my $page = $cgi->param('page') || 0;
555
        my $page = $cgi->param('page') || 0;
556
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
556
        my @newresults = searchResults({ 'interface' => 'intranet' }, $query_desc, $hits, $results_per_page, $offset, $scan,
557
                                       $results_hashref->{$server}->{"RECORDS"});
557
                                       $results_hashref->{$server}->{"RECORDS"});
558
        $total = $total + $results_hashref->{$server}->{"hits"};
558
        $total = $total + $results_hashref->{$server}->{"hits"};
559
559
(-)a/cataloguing/addbooks.pl (-1 / +4 lines)
Lines 94-100 if ($query) { Link Here
94
    # format output
94
    # format output
95
    # SimpleSearch() give the results per page we want, so 0 offet here
95
    # SimpleSearch() give the results per page we want, so 0 offet here
96
    my $total = @{$marcresults};
96
    my $total = @{$marcresults};
97
    my @newresults = searchResults( 'intranet', $query, $total, $results_per_page, 0, 0, $marcresults );
97
    my @newresults = searchResults( {'interface' => 'intranet'}, $query, $total, $results_per_page, 0, 0, $marcresults );
98
    foreach my $line (@newresults) {
99
        if ( not exists $line->{'size'} ) { $line->{'size'} = "" }
100
    }
98
    $template->param(
101
    $template->param(
99
        total          => $total_hits,
102
        total          => $total_hits,
100
        query          => $query,
103
        query          => $query,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref (+3 lines)
Lines 534-539 OPAC: Link Here
534
              class: code
534
              class: code
535
            - Allows to define custom rules for hiding specific items at opac. See docs/opac/OpacHiddenItems.txt for more informations
535
            - Allows to define custom rules for hiding specific items at opac. See docs/opac/OpacHiddenItems.txt for more informations
536
        -
536
        -
537
            - pref: OpacHiddenItemsExceptions
538
            - List of borrower categories, separated by |, that can see items otherwise hidden by <tt>OpacHiddenItems</tt>
539
        -
537
            - pref: OpacAllowPublicListCreation
540
            - pref: OpacAllowPublicListCreation
538
              default: 1
541
              default: 1
539
              choices:
542
              choices:
(-)a/opac/opac-ISBDdetail.pl (-1 / +9 lines)
Lines 84-90 my $marcflavour = C4::Context->preference("marcflavour"); Link Here
84
84
85
my @items = GetItemsInfo($biblionumber);
85
my @items = GetItemsInfo($biblionumber);
86
if (scalar @items >= 1) {
86
if (scalar @items >= 1) {
87
    my @hiddenitems = GetHiddenItemnumbers(@items);
87
    my $borcat;
88
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
89
90
        # we need to fetch the borrower info here, so we can pass the category
91
        my $borrower = GetMember( borrowernumber => $borrowernumber );
92
        $borcat = $borrower->{categorycode};
93
    }
94
95
    my @hiddenitems = GetHiddenItemnumbers( { items => \@items, borcat => $borcat });
88
96
89
    if (scalar @hiddenitems == scalar @items ) {
97
    if (scalar @hiddenitems == scalar @items ) {
90
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
98
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
(-)a/opac/opac-MARCdetail.pl (-1 / +8 lines)
Lines 71-77 if ( ! $biblionumber ) { Link Here
71
my @all_items = GetItemsInfo($biblionumber);
71
my @all_items = GetItemsInfo($biblionumber);
72
my @items2hide;
72
my @items2hide;
73
if (scalar @all_items >= 1) {
73
if (scalar @all_items >= 1) {
74
    push @items2hide, GetHiddenItemnumbers(@all_items);
74
    my $borcat;
75
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
76
77
        # we need to fetch the borrower info here, so we can pass the category
78
        my $borrower = GetMember( borrowernumber => $borrowernumber );
79
        $borcat = $borrower->{categorycode};
80
    }
81
    push @items2hide, GetHiddenItemnumbers({ items => \@all_items, borcat => $botcat });
75
82
76
    if (scalar @items2hide == scalar @all_items ) {
83
    if (scalar @items2hide == scalar @all_items ) {
77
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
84
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
(-)a/opac/opac-detail.pl (-3 / +12 lines)
Lines 75-82 $biblionumber = int($biblionumber); Link Here
75
75
76
my @all_items = GetItemsInfo($biblionumber);
76
my @all_items = GetItemsInfo($biblionumber);
77
my @hiddenitems;
77
my @hiddenitems;
78
if (scalar @all_items >= 1) {
78
if ( scalar @all_items >= 1 ) {
79
    push @hiddenitems, GetHiddenItemnumbers(@all_items);
79
    my $borcat;
80
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
81
82
        # we need to fetch the borrower info here, so we can pass the category
83
        my $borrower = GetMember( borrowernumber => $borrowernumber );
84
        $borcat = $borrower->{categorycode};
85
    }
86
87
    push @hiddenitems,
88
      GetHiddenItemnumbers( { items => \@all_items, borcat => $borcat } );
80
89
81
    if (scalar @hiddenitems == scalar @all_items ) {
90
    if (scalar @hiddenitems == scalar @all_items ) {
82
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
91
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
Lines 206-212 if ($session->param('busc')) { Link Here
206
        for (my $i=0;$i<@servers;$i++) {
215
        for (my $i=0;$i<@servers;$i++) {
207
            my $server = $servers[$i];
216
            my $server = $servers[$i];
208
            $hits = $results_hashref->{$server}->{"hits"};
217
            $hits = $results_hashref->{$server}->{"hits"};
209
            @newresults = searchResults('opac', '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
218
            @newresults = searchResults({ 'interface' => 'opac' }, '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
210
        }
219
        }
211
        return \@newresults;
220
        return \@newresults;
212
    }#searchAgain
221
    }#searchAgain
(-)a/opac/opac-search.pl (-2 / +11 lines)
Lines 42-47 use C4::Branch; # GetBranches Link Here
42
use C4::SocialData;
42
use C4::SocialData;
43
use C4::Ratings;
43
use C4::Ratings;
44
use C4::External::OverDrive;
44
use C4::External::OverDrive;
45
use C4::Borrowers qw(GetMember);
45
46
46
use POSIX qw(ceil floor strftime);
47
use POSIX qw(ceil floor strftime);
47
use URI::Escape;
48
use URI::Escape;
Lines 593-598 if ($@ || $error) { Link Here
593
# At this point, each server has given us a result set
594
# At this point, each server has given us a result set
594
# now we build that set for template display
595
# now we build that set for template display
595
my @sup_results_array;
596
my @sup_results_array;
597
my $search_context = {};
598
$search_context->{'interface'} = 'opac';
599
if (C4::Context->preference('OpacHiddenItemsExceptions')){
600
    # we need to fetch the borrower info here, so we can pass the category 
601
    my $borrower = GetMember( borrowernumber => $borrowernumber );
602
    $search_context->{'category'} = $borrower->{'categorycode'};
603
}
604
596
for (my $i=0;$i<@servers;$i++) {
605
for (my $i=0;$i<@servers;$i++) {
597
    my $server = $servers[$i];
606
    my $server = $servers[$i];
598
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
607
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
Lines 604-615 for (my $i=0;$i<@servers;$i++) { Link Here
604
                # because pazGetRecords handles retieving only the records
613
                # because pazGetRecords handles retieving only the records
605
                # we want as specified by $offset and $results_per_page,
614
                # we want as specified by $offset and $results_per_page,
606
                # we need to set the offset parameter of searchResults to 0
615
                # we need to set the offset parameter of searchResults to 0
607
                my @group_results = searchResults( 'opac', $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
616
                my @group_results = searchResults( $search_context, $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
608
                                                   $group->{"RECORDS"});
617
                                                   $group->{"RECORDS"});
609
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
618
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
610
            }
619
            }
611
        } else {
620
        } else {
612
            @newresults = searchResults('opac', $query_desc, $hits, $results_per_page, $offset, $scan,
621
            @newresults = searchResults( $search_context, $query_desc, $hits, $results_per_page, $offset, $scan,
613
                                        $results_hashref->{$server}->{"RECORDS"});
622
                                        $results_hashref->{$server}->{"RECORDS"});
614
        }
623
        }
615
        $hits = 0 unless @newresults;
624
        $hits = 0 unless @newresults;
(-)a/t/db_dependent/Items.t (-6 / +6 lines)
Lines 113-131 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
113
113
114
    # Empty OpacHiddenItems
114
    # Empty OpacHiddenItems
115
    C4::Context->set_preference('OpacHiddenItems','');
115
    C4::Context->set_preference('OpacHiddenItems','');
116
    ok( !defined( GetHiddenItemnumbers( @items ) ),
116
    ok( !defined( GetHiddenItemnumbers( { items => \@items } ) ),
117
        "Hidden items list undef if OpacHiddenItems empty");
117
        "Hidden items list undef if OpacHiddenItems empty");
118
118
119
    # Blank spaces
119
    # Blank spaces
120
    C4::Context->set_preference('OpacHiddenItems','  ');
120
    C4::Context->set_preference('OpacHiddenItems','  ');
121
    ok( scalar GetHiddenItemnumbers( @items ) == 0,
121
    ok( scalar GetHiddenItemnumbers( { items => \@items } ) == 0,
122
        "Hidden items list empty if OpacHiddenItems only contains blanks");
122
        "Hidden items list empty if OpacHiddenItems only contains blanks");
123
123
124
    # One variable / value
124
    # One variable / value
125
    $opachiddenitems = "
125
    $opachiddenitems = "
126
        withdrawn: [1]";
126
        withdrawn: [1]";
127
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
127
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
128
    @hidden = GetHiddenItemnumbers( @items );
128
    @hidden = GetHiddenItemnumbers( { items => \@items } );
129
    ok( scalar @hidden == 1, "Only one hidden item");
129
    ok( scalar @hidden == 1, "Only one hidden item");
130
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
130
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
131
131
Lines 133-139 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
133
    $opachiddenitems = "
133
    $opachiddenitems = "
134
        withdrawn: [1,0]";
134
        withdrawn: [1,0]";
135
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
135
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
136
    @hidden = GetHiddenItemnumbers( @items );
136
    @hidden = GetHiddenItemnumbers( { items => \@items } );
137
    ok( scalar @hidden == 2, "Two items hidden");
137
    ok( scalar @hidden == 2, "Two items hidden");
138
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
138
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
139
139
Lines 143-155 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
143
        homebranch: [$branch2]
143
        homebranch: [$branch2]
144
    ";
144
    ";
145
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
145
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
146
    @hidden = GetHiddenItemnumbers( @items );
146
    @hidden = GetHiddenItemnumbers( { items => \@items } );
147
    ok( scalar @hidden == 2, "Two items hidden");
147
    ok( scalar @hidden == 2, "Two items hidden");
148
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch=MPL hidden");
148
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch=MPL hidden");
149
149
150
    # Valid OpacHiddenItems, empty list
150
    # Valid OpacHiddenItems, empty list
151
    @items = ();
151
    @items = ();
152
    @hidden = GetHiddenItemnumbers( @items );
152
    @hidden = GetHiddenItemnumbers( { items => \@items } );
153
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
153
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
154
154
155
    $dbh->rollback;
155
    $dbh->rollback;
(-)a/t/db_dependent/Search.t (-7 / +6 lines)
Lines 467-473 if ( $indexing_mode eq 'dom' ) { Link Here
467
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
467
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
468
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
468
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
469
469
470
    my @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
470
    my @newresults = searchResults({'interface' => 'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
471
        $results_hashref->{'biblioserver'}->{"RECORDS"});
471
        $results_hashref->{'biblioserver'}->{"RECORDS"});
472
    is(scalar @newresults,18, "searchResults returns requested number of hits");
472
    is(scalar @newresults,18, "searchResults returns requested number of hits");
473
473
Lines 549-555 if ( $indexing_mode eq 'dom' ) { Link Here
549
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
549
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
550
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
550
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
551
551
552
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
552
    @newresults = searchResults({'interface'=>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
553
        $results_hashref->{'biblioserver'}->{"RECORDS"});
553
        $results_hashref->{'biblioserver'}->{"RECORDS"});
554
    my $allavailable = 'true';
554
    my $allavailable = 'true';
555
    foreach my $result (@newresults) {
555
    foreach my $result (@newresults) {
Lines 681-687 if ( $indexing_mode eq 'dom' ) { Link Here
681
    # Let's just test a few other bits and bobs, just for fun
681
    # Let's just test a few other bits and bobs, just for fun
682
682
683
    ($error, $results_hashref, $facets_loop) = getRecords("Godzina pąsowej róży","Godzina pąsowej róży",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
683
    ($error, $results_hashref, $facets_loop) = getRecords("Godzina pąsowej róży","Godzina pąsowej róży",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
684
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
684
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
685
        $results_hashref->{'biblioserver'}->{"RECORDS"});
685
        $results_hashref->{'biblioserver'}->{"RECORDS"});
686
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
686
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
687
687
Lines 700-706 if ( $indexing_mode eq 'dom' ) { Link Here
700
    });
700
    });
701
701
702
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
702
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
703
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
703
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
704
        $results_hashref->{'biblioserver'}->{"RECORDS"});
704
        $results_hashref->{'biblioserver'}->{"RECORDS"});
705
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
705
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
706
706
Lines 708-714 if ( $indexing_mode eq 'dom' ) { Link Here
708
    ( undef, $results_hashref, $facets_loop ) =
708
    ( undef, $results_hashref, $facets_loop ) =
709
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
709
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
710
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
710
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
711
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
711
    @newresults = searchResults({'interface' =>'intranet'} , $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
712
        $results_hashref->{'biblioserver'}->{"RECORDS"});
712
        $results_hashref->{'biblioserver'}->{"RECORDS"});
713
    is(scalar(@newresults), 0, 'a record that cannot be parsed by MARC::Record is simply skipped (bug 10684)');
713
    is(scalar(@newresults), 0, 'a record that cannot be parsed by MARC::Record is simply skipped (bug 10684)');
714
714
Lines 843-849 if ( $indexing_mode eq 'dom' ) { Link Here
843
    ( undef, $results_hashref, $facets_loop ) =
843
    ( undef, $results_hashref, $facets_loop ) =
844
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
844
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
845
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
845
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
846
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
846
    @newresults = searchResults({'interface' =>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
847
        $results_hashref->{'biblioserver'}->{"RECORDS"});
847
        $results_hashref->{'biblioserver'}->{"RECORDS"});
848
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
848
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
849
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
849
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
850
- 

Return to bug 14385