X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=catalogue%2Fdetail.pl;h=a615f1605d852e4b5aef5d29f4e7a6c5e63c98d3;hb=12c60fac6aa2d80bcaf4db23715191951432bfee;hp=97bba419cc5d6a2a3e5cc7f2589c7599bfd6984b;hpb=17dbb9725399a5f7c16ed89a861e3583b7073192;p=koha.git diff --git a/catalogue/detail.pl b/catalogue/detail.pl index 97bba419cc..a615f1605d 100755 --- a/catalogue/detail.pl +++ b/catalogue/detail.pl @@ -34,6 +34,7 @@ use C4::Members; use C4::Serials; use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn get_biblio_from_xisbn); use C4::External::Amazon; +use C4::Search; # enabled_staff_search_views # use Smart::Comments; @@ -65,7 +66,7 @@ my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour ); my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour ); my $marcseriesarray = GetMarcSeries($record,$marcflavour); my $marcurlsarray = GetMarcUrls ($record,$marcflavour); -my $subtitle = C4::Biblio::get_koha_field_from_marc('bibliosubtitle', 'subtitle', $record, ''); +my $subtitle = GetRecordValue('subtitle', $record, $fw); # Get Branches, Itemtypes and Locations my $branches = GetBranches(); @@ -128,7 +129,7 @@ foreach my $item (@items) { $item->{'location'} = $shelflocations->{$shelfcode} if ( defined( $shelfcode ) && defined($shelflocations) && exists( $shelflocations->{$shelfcode} ) ); my $ccode = $item->{'ccode'}; $item->{'ccode'} = $collections->{$ccode} if ( defined( $ccode ) && defined($collections) && exists( $collections->{$ccode} ) ); - foreach (qw(ccode enumchron copynumber)) { + foreach (qw(ccode enumchron copynumber uri)) { $itemfields{$_} = 1 if ( $item->{$_} ); } @@ -174,8 +175,11 @@ $template->param( subtitle => $subtitle, itemdata_ccode => $itemfields{ccode}, itemdata_enumchron => $itemfields{enumchron}, + itemdata_uri => $itemfields{uri}, itemdata_copynumber => $itemfields{copynumber}, volinfo => $itemfields{enumchron} || $dat->{'serial'} , + z3950_search_params => C4::Search::z3950_search_args($dat), + C4::Search::enabled_staff_search_views, ); my @results = ( $dat, ); @@ -183,6 +187,9 @@ foreach ( keys %{$dat} ) { $template->param( "$_" => defined $dat->{$_} ? $dat->{$_} : '' ); } +# does not work: my %views_enabled = map { $_ => 1 } $template->query(loop => 'EnableViews'); +# method query not found?!?! + $template->param( itemloop => \@itemloop, biblionumber => $biblionumber, @@ -207,27 +214,45 @@ if (C4::Context->preference("FRBRizeEditions")==1) { }; if ($@) { warn "XISBN Failed $@"; } } -if ( C4::Context->preference("AmazonContent") == 1 ) { - my $similar_products_exist; - my $amazon_details = &get_amazon_details( $xisbn, $record, $marcflavour ); - my $item_attributes = \%{$amazon_details->{Items}->{Item}->{ItemAttributes}}; - my $customer_reviews = \@{$amazon_details->{Items}->{Item}->{CustomerReviews}->{Review}}; - my @similar_products; - for my $similar_product (@{$amazon_details->{Items}->{Item}->{SimilarProducts}->{SimilarProduct}}) { - # do we have any of these isbns in our collection? - my $similar_biblionumbers = get_biblionumber_from_isbn($similar_product->{ASIN}); - # verify that there is at least one similar item - if (scalar(@$similar_biblionumbers)){ - $similar_products_exist++ if ($similar_biblionumbers && $similar_biblionumbers->[0]); - push @similar_products, +{ similar_biblionumbers => $similar_biblionumbers, title => $similar_product->{Title}, ASIN => $similar_product->{ASIN} }; + +if ( C4::Context->preference("AmazonEnabled") == 1 ) { + $template->param( AmazonTld => get_amazon_tld() ); + my $amazon_reviews = C4::Context->preference("AmazonReviews"); + my $amazon_similars = C4::Context->preference("AmazonSimilarItems"); + my $isbn = $dat->{'isbn'}; + my @services; + if ( $amazon_reviews ) { + $template->param( AmazonReviews => 1 ); + push( @services, 'EditorialReview' ); + } + if ( $amazon_similars ) { + $template->param( AmazonSimilarItems => 1 ); + push( @services, 'Similarities' ); + } + my $amazon_details = &get_amazon_details( $isbn, $record, $marcflavour, \@services ); + if ( $amazon_similars ) { + my $similar_products_exist; + my @similar_products; + for my $similar_product (@{$amazon_details->{Items}->{Item}->[0]->{SimilarProducts}->{SimilarProduct}}) { + # do we have any of these isbns in our collection? + my $similar_biblionumbers = get_biblionumber_from_isbn($similar_product->{ASIN}); + # verify that there is at least one similar item + if (scalar(@$similar_biblionumbers)){ + $similar_products_exist++ if ($similar_biblionumbers && $similar_biblionumbers->[0]); + push @similar_products, +{ similar_biblionumbers => $similar_biblionumbers, title => $similar_product->{Title}, ASIN => $similar_product->{ASIN} }; + } } + $template->param( AmazonSimilarItems => $similar_products_exist ); + $template->param( AMAZON_SIMILAR_PRODUCTS => \@similar_products ); + } + if ( $amazon_reviews ) { + my $item = $amazon_details->{Items}->{Item}->[0]; + my $editorial_reviews = \@{ $item->{EditorialReviews}->{EditorialReview} }; + my $customer_reviews = \@{$amazon_details->{Items}->{Item}->[0]->{CustomerReviews}->{Review}}; + my $average_rating = $amazon_details->{Items}->{Item}->[0]->{CustomerReviews}->{AverageRating} || 0; + $template->param( amazon_average_rating => $average_rating * 20 ); + $template->param( AMAZON_CUSTOMER_REVIEWS => $customer_reviews ); + $template->param( AMAZON_EDITORIAL_REVIEWS => $editorial_reviews ); } - my $editorial_reviews = \@{$amazon_details->{Items}->{Item}->{EditorialReviews}->{EditorialReview}}; - my $average_rating = $amazon_details->{Items}->{Item}->{CustomerReviews}->{AverageRating} || 0; - $template->param( AmazonSimilarItems => $similar_products_exist ); - $template->param( amazon_average_rating => $average_rating * 20 ); - $template->param( AMAZON_CUSTOMER_REVIEWS => $customer_reviews ); - $template->param( AMAZON_SIMILAR_PRODUCTS => \@similar_products ); - $template->param( AMAZON_EDITORIAL_REVIEWS => $editorial_reviews ); } output_html_with_http_headers $query, $cookie, $template->output;