X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-detail.pl;h=b5702159db94d748c135f6cc2839a399985241a4;hb=dfbf2ed05ca098f399df9b08b7344d898a9b774f;hp=f82dde2c2b524255a01d191bb1bd2c0ca4493401;hpb=6323bb081e353029bef8f6a28244b228915dbd43;p=koha.git diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index f82dde2c2b..b5702159db 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -41,10 +41,13 @@ use C4::Members; use C4::VirtualShelves; use C4::XSLT; use C4::ShelfBrowser; +use C4::Reserves; use C4::Charset; use MARC::Record; use MARC::Field; use List::MoreUtils qw/any none/; +use C4::Images; +use Koha::DateUtils; BEGIN { if (C4::Context->preference('BakerTaylorEnabled')) { @@ -66,6 +69,33 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( my $biblionumber = $query->param('biblionumber') || $query->param('bib'); +my $record = GetMarcBiblio($biblionumber); +if ( ! $record ) { + print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early + exit; +} +$template->param( biblionumber => $biblionumber ); + +# get biblionumbers stored in the cart +my @cart_list; + +if($query->cookie("bib_list")){ + my $cart_list = $query->cookie("bib_list"); + @cart_list = split(/\//, $cart_list); + if ( grep {$_ eq $biblionumber} @cart_list) { + $template->param( incart => 1 ); + } +} + + +SetUTF8Flag($record); + +# XSLT processing of some stuff +if (C4::Context->preference("OPACXSLTDetailsDisplay") ) { + $template->param( 'XSLTBloc' => XSLTParse4Display($biblionumber, $record, 'Detail', 'opac') ); +} + + # We look for the busc param to build the simple paging from the search my $session = get_session($query->cookie("CGISESSID")); my %paging = (previous => {}, next => {}); @@ -351,19 +381,7 @@ if ($session->param('busc')) { $template->param( 'AllowOnShelfHolds' => C4::Context->preference('AllowOnShelfHolds') ); $template->param( 'ItemsIssued' => CountItemsIssued( $biblionumber ) ); -my $record = GetMarcBiblio($biblionumber); -if ( ! $record ) { - print $query->redirect("/cgi-bin/koha/errors/404.pl"); - exit; -} -$template->param( biblionumber => $biblionumber ); -SetUTF8Flag($record); - -# XSLT processing of some stuff -if (C4::Context->preference("OPACXSLTDetailsDisplay") ) { - $template->param( 'XSLTBloc' => XSLTParse4Display($biblionumber, $record, 'Detail', 'opac') ); -} $template->param('OPACShowCheckoutName' => C4::Context->preference("OPACShowCheckoutName") ); # change back when ive fixed request.pl @@ -477,7 +495,7 @@ for my $itm (@items) { # I can't actually find any case in which this is defined. --amoore 2008-12-09 $itm->{ $itm->{'publictype'} } = 1; } - $itm->{datedue} = format_date($itm->{datedue}); + $itm->{datedue} = format_sqldatetime($itm->{datedue}); $itm->{datelastseen} = format_date($itm->{datelastseen}); # get collection code description, too @@ -504,11 +522,9 @@ for my $itm (@items) { $itm->{'lostimageurl'} = $lostimageinfo->{ 'imageurl' }; $itm->{'lostimagelabel'} = $lostimageinfo->{ 'label' }; } - - if( $itm->{'count_reserves'}){ - if( $itm->{'count_reserves'} eq "Waiting"){ $itm->{'waiting'} = 1; } - if( $itm->{'count_reserves'} eq "Reserved"){ $itm->{'onhold'} = 1; } - } + my ($reserve_status) = C4::Reserves::CheckReserves($itm->{itemnumber}); + if( $reserve_status eq "Waiting"){ $itm->{'waiting'} = 1; } + if( $reserve_status eq "Reserved"){ $itm->{'onhold'} = 1; } my ( $transfertwhen, $transfertfrom, $transfertto ) = GetTransfers($itm->{itemnumber}); if ( defined( $transfertwhen ) && $transfertwhen ne '' ) { @@ -686,6 +702,11 @@ if (scalar(@serialcollections) > 0) { serialcollections => \@serialcollections); } +# Local cover Images stuff +if (C4::Context->preference("OPACLocalCoverImages")){ + $template->param(OPACLocalCoverImages => 1); +} + # Amazon.com Stuff if ( C4::Context->preference("OPACAmazonEnabled") ) { $template->param( AmazonTld => get_amazon_tld() ); @@ -881,8 +902,15 @@ if (C4::Context->preference("OPACURLOpenInNewWindow")) { $template->param(covernewwindow => 'false'); } +#Export options +my $OpacExportOptions=C4::Context->preference("OpacExportOptions"); +my @export_options = split(/\|/,$OpacExportOptions); +$template->{VARS}->{'export_options'} = \@export_options; + #Search for title in links -my $marccontrolnumber = GetMarcControlnumber ($record, $marcflavour); +my $marccontrolnumber = GetMarcControlnumber ($record, $marcflavour); +my $marcissns = GetMarcISSN ( $record, $marcflavour ); +my $issn = $marcissns->[0] || ''; if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ $dat->{author} ? $search_for_title =~ s/{AUTHOR}/$dat->{author}/g : $search_for_title =~ s/{AUTHOR}//g; @@ -890,9 +918,10 @@ if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ $dat->{title} =~ s/\s+$//; # remove trailing space $dat->{title} ? $search_for_title =~ s/{TITLE}/$dat->{title}/g : $search_for_title =~ s/{TITLE}//g; $isbn ? $search_for_title =~ s/{ISBN}/$isbn/g : $search_for_title =~ s/{ISBN}//g; + $issn ? $search_for_title =~ s/{ISSN}/$issn/g : $search_for_title =~ s/{ISSN}//g; $marccontrolnumber ? $search_for_title =~ s/{CONTROLNUMBER}/$marccontrolnumber/g : $search_for_title =~ s/{CONTROLNUMBER}//g; $search_for_title =~ s/{BIBLIONUMBER}/$biblionumber/g; - $template->param('OPACSearchForTitleIn' => $search_for_title); + $template->param('OPACSearchForTitleIn' => $search_for_title); } # We try to select the best default tab to show, according to what @@ -911,4 +940,9 @@ my $defaulttab = ? 'serialcollection' : 'subscription'; $template->param('defaulttab' => $defaulttab); +if (C4::Context->preference('OPACLocalCoverImages') == 1) { + my @images = ListImagesForBiblio($biblionumber); + $template->{VARS}->{localimages} = \@images; +} + output_html_with_http_headers $query, $cookie, $template->output;