Bug 10129: Babeltheque does not depend on COinSinOPACResults
This patch groups all loops on the new_results array into one. It is useless to loop on the same results array several times. Test plan: Quite hard to test all cases. This patch deals with 5 sysprefs: COinSinOPACResults, Babeltheque, TagsEnabled, TagsShowOnList and OpacStarRatings. Try to enable/disable all of them and verify there is no difference with and without this patch. The only different will be: The Babeltheque information should be displayed even if the COinSinOPACResults syspref is disabled. Signed-off-by: Owen Leonard <oleonard@myacpl.org> This revised patch works fine for me, thanks. Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Verified following system preferences still work as expected: - COinSinOPACResults on/off - TagsEnabled, TagsShowOnList, TagsInputOnList on/off - OpacStarRatings Couldn't test Babeltheque functionality as this requires an account. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
parent
27a1017e44
commit
98dae69c71
|
|
@ -560,52 +560,50 @@ for (my $i=0;$i<@servers;$i++) {
|
|||
$results_hashref->{$server}->{"RECORDS"});
|
||||
}
|
||||
|
||||
# must define a value for size if not present in DB
|
||||
# in order to avoid problems generated by the default size value in TT
|
||||
foreach my $line (@newresults) {
|
||||
if ( not exists $line->{'size'} ) { $line->{'size'} = "" }
|
||||
foreach my $res (@newresults) {
|
||||
|
||||
# must define a value for size if not present in DB
|
||||
# in order to avoid problems generated by the default size value in TT
|
||||
if ( not exists $res->{'size'} ) { $res->{'size'} = "" }
|
||||
# while we're checking each line, see if item is in the cart
|
||||
if ( grep {$_ eq $line->{'biblionumber'}} @cart_list) {
|
||||
$line->{'incart'} = 1;
|
||||
if ( grep {$_ eq $res->{'biblionumber'}} @cart_list) {
|
||||
$res->{'incart'} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $tag_quantity;
|
||||
if (C4::Context->preference('TagsEnabled') and
|
||||
$tag_quantity = C4::Context->preference('TagsShowOnList')) {
|
||||
foreach (@newresults) {
|
||||
my $bibnum = $_->{biblionumber} or next;
|
||||
$_->{itemsissued} = CountItemsIssued( $bibnum );
|
||||
$_ ->{'TagLoop'} = get_tags({biblionumber=>$bibnum, approved=>1, 'sort'=>'-weight',
|
||||
limit=>$tag_quantity });
|
||||
if (C4::Context->preference('COinSinOPACResults')) {
|
||||
my $record = GetMarcBiblio($res->{'biblionumber'});
|
||||
$res->{coins} = GetCOinSBiblio($record);
|
||||
}
|
||||
}
|
||||
|
||||
if (C4::Context->preference('COinSinOPACResults')) {
|
||||
foreach (@newresults) {
|
||||
my $record = GetMarcBiblio($_->{'biblionumber'});
|
||||
$_->{coins} = GetCOinSBiblio($record);
|
||||
if ( C4::Context->preference( "Babeltheque" ) and $_->{normalized_isbn} ) {
|
||||
my $isbn = Business::ISBN->new( $_->{normalized_isbn} );
|
||||
next if not $isbn;
|
||||
if ( C4::Context->preference( "Babeltheque" ) and $res->{normalized_isbn} ) {
|
||||
if( my $isbn = Business::ISBN->new( $res->{normalized_isbn} ) ) {
|
||||
$isbn = $isbn->as_isbn13->as_string;
|
||||
$isbn =~ s/-//g;
|
||||
my $social_datas = C4::SocialData::get_data( $isbn );
|
||||
next if not $social_datas;
|
||||
for my $key ( keys %$social_datas ) {
|
||||
$_->{$key} = $$social_datas{$key};
|
||||
if ( $key eq 'score_avg' ){
|
||||
$_->{score_int} = sprintf("%.0f", $$social_datas{score_avg} );
|
||||
if ( $social_datas ) {
|
||||
for my $key ( keys %$social_datas ) {
|
||||
$res->{$key} = $$social_datas{$key};
|
||||
if ( $key eq 'score_avg' ){
|
||||
$res->{score_int} = sprintf("%.0f", $$social_datas{score_avg} );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (C4::Context->preference('TagsEnabled') and
|
||||
C4::Context->preference('TagsShowOnList')) {
|
||||
if ( my $bibnum = $res->{biblionumber} ) {
|
||||
$res->{itemsissued} = CountItemsIssued( $bibnum );
|
||||
$res->{'TagLoop'} = get_tags({
|
||||
biblionumber => $bibnum,
|
||||
approved => 1,
|
||||
sort => '-weight',
|
||||
limit => C4::Context->preference('TagsShowOnList')
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ( C4::Context->preference('OpacStarRatings') eq 'all' ) {
|
||||
foreach my $res (@newresults) {
|
||||
if ( C4::Context->preference('OpacStarRatings') eq 'all' ) {
|
||||
my $rating = GetRating( $res->{'biblionumber'}, $borrowernumber );
|
||||
$res->{'rating_value'} = $rating->{'rating_value'};
|
||||
$res->{'rating_total'} = $rating->{'rating_total'};
|
||||
|
|
|
|||
Loading…
Reference in New Issue