use CGI qw ( -utf8 );
use C4::Acquisition qw( SearchOrders );
use C4::Auth qw(:DEFAULT get_session);
-use C4::Branch;
use C4::Koha;
use C4::Serials; #uses getsubscriptionfrom biblionumber
use C4::Output;
use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn);
use C4::External::Amazon;
use C4::External::Syndetics qw(get_syndetics_index get_syndetics_summary get_syndetics_toc get_syndetics_excerpt get_syndetics_reviews get_syndetics_anotes );
-use C4::Review;
-use C4::Ratings;
use C4::Members;
use C4::XSLT;
use C4::ShelfBrowser;
use C4::HTML5Media;
use C4::CourseReserves qw(GetItemCourseReservesInfo);
use Koha::RecordProcessor;
+use Koha::AuthorisedValues;
use Koha::Virtualshelves;
+use Koha::Ratings;
+use Koha::Reviews;
BEGIN {
if (C4::Context->preference('BakerTaylorEnabled')) {
print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
exit;
}
-my $record_processor = Koha::RecordProcessor->new({ filters => 'ViewPolicy' });
+my $framework = &GetFrameworkCode( $biblionumber );
+my $record_processor = Koha::RecordProcessor->new({
+ filters => 'ViewPolicy',
+ options => {
+ interface => 'opac',
+ frameworkcode => $framework
+ }
+});
$record_processor->process($record);
# redirect if opacsuppression is enabled and biblio is suppressed
my ($arrParamsBusc, $offset, $results_per_page) = @_;
my $expanded_facet = $arrParamsBusc->{'expand'};
- my $branches = GetBranches();
my $itemtypes = GetItemTypes;
my @servers;
@servers = @{$arrParamsBusc->{'server'}} if $arrParamsBusc->{'server'};
$sort_by[0] = $default_sort_by if !$sort_by[0] && defined($default_sort_by);
my ($error, $results_hashref, $facets);
eval {
- ($error, $results_hashref, $facets) = getRecords($arrParamsBusc->{'query'},$arrParamsBusc->{'simple_query'},\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,$branches,$itemtypes,$arrParamsBusc->{'query_type'},$arrParamsBusc->{'scan'});
+ ($error, $results_hashref, $facets) = getRecords($arrParamsBusc->{'query'},$arrParamsBusc->{'simple_query'},\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,undef,$itemtypes,$arrParamsBusc->{'query_type'},$arrParamsBusc->{'scan'});
};
my $hits;
my @newresults;
@items = @all_items;
}
-my $branches = GetBranches();
my $branch = '';
if (C4::Context->userenv){
$branch = C4::Context->userenv->{branch};
||
C4::Context->preference('HighlightOwnItemsOnOPACWhich') eq 'OpacURLBranch'
) {
- my $branchname;
+ my $branchcode;
if ( C4::Context->preference('HighlightOwnItemsOnOPACWhich') eq 'PatronBranch' ) {
- $branchname = $branches->{$branch}->{'branchname'};
+ $branchcode = $branch;
}
elsif ( C4::Context->preference('HighlightOwnItemsOnOPACWhich') eq 'OpacURLBranch' ) {
- $branchname = $branches->{ $ENV{'BRANCHCODE'} }->{'branchname'};
+ $branchcode = $ENV{'BRANCHCODE'};
}
my @our_items;
my @other_items;
foreach my $item ( @items ) {
- if ( $item->{'branchname'} eq $branchname ) {
+ if ( $item->{branchcode} eq $branchcode ) {
$item->{'this_branch'} = 1;
push( @our_items, $item );
} else {
$dat->{'imageurl'} = getitemtypeimagelocation( 'opac', $itemtypes->{$itemtype}->{'imageurl'} );
$dat->{'description'} = $itemtypes->{$itemtype}->{translated_description};
}
-my $shelflocations =GetKohaAuthorisedValues('items.location',$dat->{'frameworkcode'}, 'opac');
-my $collections = GetKohaAuthorisedValues('items.ccode',$dat->{'frameworkcode'}, 'opac');
-my $copynumbers = GetKohaAuthorisedValues('items.copynumber',$dat->{'frameworkcode'}, 'opac');
+
+my $shelflocations =
+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => $dat->{frameworkcode}, kohafield => 'items.location' } ) };
+my $collections =
+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => $dat->{frameworkcode}, kohafield => 'items.ccode' } ) };
+my $copynumbers =
+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => $dat->{frameworkcode}, kohafield => 'items.copynumber' } ) };
#coping with subscriptions
my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber);
$cell{histstartdate} = $subscription->{histstartdate};
$cell{histenddate} = $subscription->{histenddate};
$cell{branchcode} = $subscription->{branchcode};
- $cell{branchname} = GetBranchName($subscription->{branchcode});
$cell{hasalert} = $subscription->{hasalert};
$cell{callnumber} = $subscription->{callnumber};
$cell{closed} = $subscription->{closed};
my ( $transfertwhen, $transfertfrom, $transfertto ) = GetTransfers($itm->{itemnumber});
if ( defined( $transfertwhen ) && $transfertwhen ne '' ) {
$itm->{transfertwhen} = $transfertwhen;
- $itm->{transfertfrom} = $branches->{$transfertfrom}{branchname};
- $itm->{transfertto} = $branches->{$transfertto}{branchname};
+ $itm->{transfertfrom} = $transfertfrom;
+ $itm->{transfertto} = $transfertto;
}
if ( C4::Context->preference('OPACAcquisitionDetails')
ocoins => GetCOinSBiblio($record),
);
-my $libravatar_enabled = 0;
-if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
- eval {
- require Libravatar::URL;
- Libravatar::URL->import();
- };
- if (!$@ ) {
- $libravatar_enabled = 1;
+my ( $loggedincommenter, $reviews );
+if ( C4::Context->preference('reviewson') ) {
+ $reviews = Koha::Reviews->search(
+ {
+ biblionumber => $biblionumber,
+ -or => { approved => 1, borrowernumber => $borrowernumber }
+ },
+ {
+ order_by => { -desc => 'datereviewed' }
+ }
+ )->unblessed;
+ my $libravatar_enabled = 0;
+ if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto') ) {
+ eval {
+ require Libravatar::URL;
+ Libravatar::URL->import();
+ };
+ if ( !$@ ) {
+ $libravatar_enabled = 1;
+ }
}
-}
-
-my $reviews = getreviews( $biblionumber, 1 );
-my $loggedincommenter;
-
-
-
+ for my $review (@$reviews) {
+ my $borrowerData = GetMember( 'borrowernumber' => $review->{borrowernumber} );
+
+ # setting some borrower info into this hash
+ $review->{title} = $borrowerData->{'title'};
+ $review->{surname} = $borrowerData->{'surname'};
+ $review->{firstname} = $borrowerData->{'firstname'};
+ if ( $libravatar_enabled and $borrowerData->{'email'} ) {
+ $review->{avatarurl} = libravatar_url( email => $borrowerData->{'email'}, https => $ENV{HTTPS} );
+ }
+ $review->{userid} = $borrowerData->{'userid'};
+ $review->{cardnumber} = $borrowerData->{'cardnumber'};
-foreach ( @$reviews ) {
- my $borrowerData = GetMember('borrowernumber' => $_->{borrowernumber});
- # setting some borrower info into this hash
- $_->{title} = $borrowerData->{'title'};
- $_->{surname} = $borrowerData->{'surname'};
- $_->{firstname} = $borrowerData->{'firstname'};
- if ($libravatar_enabled and $borrowerData->{'email'}) {
- $_->{avatarurl} = libravatar_url(email => $borrowerData->{'email'}, https => $ENV{HTTPS});
+ if ( $borrowerData->{'borrowernumber'} eq $borrowernumber ) {
+ $review->{your_comment} = 1;
+ $loggedincommenter = 1;
+ }
}
- $_->{userid} = $borrowerData->{'userid'};
- $_->{cardnumber} = $borrowerData->{'cardnumber'};
-
- if ($borrowerData->{'borrowernumber'} eq $borrowernumber) {
- $_->{your_comment} = 1;
- $loggedincommenter = 1;
- }
}
if ( C4::Context->preference("OPACISBD") ) {
}
if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) {
- my $rating = GetRating( $biblionumber, $borrowernumber );
+ my $ratings = Koha::Ratings->search({ biblionumber => $biblionumber });
+ my $my_rating = $borrowernumber ? $ratings->search({ borrowernumber => $borrowernumber })->next : undef;
$template->param(
- rating_value => $rating->{'rating_value'},
- rating_total => $rating->{'rating_total'},
- rating_avg => $rating->{'rating_avg'},
- rating_avg_int => $rating->{'rating_avg_int'},
+ ratings => $ratings,
+ my_rating => $my_rating,
borrowernumber => $borrowernumber
);
}
# the user wants, and what's available for display
my $opac_serial_default = C4::Context->preference('opacSerialDefaultTab');
my $defaulttab =
+ $viewallitems
+ ? 'holdings' :
$opac_serial_default eq 'subscriptions' && $subscriptionsnumber
? 'subscriptions' :
$opac_serial_default eq 'serialcollection' && @serialcollections > 0
? 'serialcollection' :
$opac_serial_default eq 'holdings' && scalar (@itemloop) > 0
? 'holdings' :
+ scalar (@itemloop) == 0
+ ? 'media' :
$subscriptionsnumber
? 'subscriptions' :
@serialcollections > 0