Continuing fixing license and metadata
[koha.git] / opac / opac-detail.pl
index e810272..a95329f 100755 (executable)
@@ -35,7 +35,6 @@ use C4::Dates qw/format_date/;
 use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn get_biblio_from_xisbn);
 use C4::External::Amazon;
 use C4::Review;
-use C4::Serials;
 use C4::Members;
 use C4::XSLT;
 
@@ -58,12 +57,16 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
 );
 
 my $biblionumber = $query->param('biblionumber') || $query->param('bib');
+
+$template->param( 'AllowOnShelfHolds' => C4::Context->preference('AllowOnShelfHolds') );
+$template->param( 'ItemsIssued' => CountItemsIssued( $biblionumber ) );
+
 my $record       = GetMarcBiblio($biblionumber);
 $template->param( biblionumber => $biblionumber );
 # XSLT processing of some stuff
 if (C4::Context->preference("XSLTDetailsDisplay") ) {
-    my $newxmlrecord = XSLTParse4Display($biblionumber,C4::Context->config('opachtdocs')."/prog/en/xslt/MARC21slim2OPACDetail.xsl");
-    $template->param('XSLTBloc' => $newxmlrecord);
+    $template->param(
+        'XSLTBloc' => XSLTParse4Display($biblionumber, $record, 'Detail') );
 }
 
 # change back when ive fixed request.pl
@@ -97,7 +100,7 @@ my $collections =  GetKohaAuthorisedValues('items.ccode',$dat->{'frameworkcode'}
 my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber);
 my @subscriptions       = GetSubscriptions( $dat->{title}, $dat->{issn}, $biblionumber );
 my @subs;
-$dat->{'serial'}=1 if $subscriptionsnumber;
+$dat->{'serials'}=1 if $subscriptionsnumber;
 foreach my $subscription (@subscriptions) {
     my %cell;
     $cell{subscriptionid}    = $subscription->{subscriptionid};
@@ -143,7 +146,7 @@ for my $itm (@items) {
         $itm->{'imageurl'}    = getitemtypeimagelocation( 'opac', $itemtypes->{ $itm->{itype} }->{'imageurl'} );
         $itm->{'description'} = $itemtypes->{ $itm->{itype} }->{'description'};
     }
-    foreach (qw(ccode enumchron copynumber itemnotes)) {
+    foreach (qw(ccode enumchron copynumber itemnotes uri)) {
         $itemfields{$_} = 1 if ($itm->{$_});
     }
 
@@ -190,6 +193,7 @@ my $subtitle         = C4::Biblio::get_koha_field_from_marc('bibliosubtitle', 's
                      RequestOnOpac           => C4::Context->preference("RequestOnOpac"),
                      itemdata_ccode          => $itemfields{ccode},
                      itemdata_enumchron      => $itemfields{enumchron},
+                     itemdata_uri            => $itemfields{uri},
                      itemdata_copynumber     => $itemfields{copynumber},
                      itemdata_itemnotes          => $itemfields{itemnotes},
                      authorised_value_images => $biblio_authorised_value_images,
@@ -214,6 +218,7 @@ foreach ( @$reviews ) {
     $_->{surname}   = $borrowerData->{'surname'};
     $_->{firstname} = $borrowerData->{'firstname'};
     $_->{userid}    = $borrowerData->{'userid'};
+    $_->{cardnumber}    = $borrowerData->{'cardnumber'};
     $_->{datereviewed} = format_date($_->{datereviewed});
     if ($borrowerData->{'borrowernumber'} eq $borrowernumber) {
                $_->{your_comment} = 1;
@@ -276,30 +281,49 @@ if ( C4::Context->preference("OPACAmazonEnabled") ) {
 }
 if ( C4::Context->preference("OPACAmazonEnabled") && C4::Context->preference("OPACAmazonSimilarItems") ) {
     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}};
-    for my $one_review (@$customer_reviews) {
-        $one_review->{Date} = format_date($one_review->{Date});
-    }
-    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}  };
+    my $amazon_reviews  = C4::Context->preference("AmazonReviews");
+    my $amazon_similars = C4::Context->preference("AmazonSimilarItems");
+    my @services;
+    my $amazon_details = &get_amazon_details( $dat->{isbn}, $record, $marcflavour, \@services );
+
+    if ( $amazon_reviews ) {
+       
+        my $item = $amazon_details->{Items}->{Item}->[0];
+        my $customer_reviews = \@{ $item->{CustomerReviews}->{Review} };
+        for my $one_review ( @$customer_reviews ) {
+            $one_review->{Date} = format_date($one_review->{Date});
         }
+        my $editorial_reviews = \@{ $item->{EditorialReviews}->{EditorialReview} };
+        my $average_rating = $item->{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( OPACAmazonSimilarItems => $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 );
+    if ( $amazon_similars ) {
+        my $item = $amazon_details->{Items}->{Item}->[0];
+        my @similar_products;
+        for my $similar_product (@{ $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}  };
+            }
+        }
+       $template->param( OPACAmazonSimilarItems => $similar_products_exist );
+       $template->param( AMAZON_SIMILAR_PRODUCTS => \@similar_products );
+    }    
+    
 }
+
+# Babelthèque
+if ( C4::Context->preference("Babeltheque") ) {
+    $template->param( 
+        Babeltheque => 1,
+    );
+}
+
 # Shelf Browser Stuff
 if (C4::Context->preference("OPACShelfBrowser")) {
     # pick the first itemnumber unless one was selected by the user
@@ -368,8 +392,10 @@ if (C4::Context->preference("OPACShelfBrowser")) {
             ((cn_sort = ? AND itemnumber >= ?) OR cn_sort > ?) AND
             homebranch = ? AND location = ?
         ORDER BY cn_sort, itemnumber LIMIT 3
+        ");
       $sth_shelfbrowse_next->execute($starting_cn_sort, $starting_itemnumber, $starting_cn_sort, $starting_homebranch->{code}, $starting_location->{code});
-    } else {
+    } 
+    else {
       $sth_shelfbrowse_next = $dbh->prepare("
         SELECT *
         FROM items