From 348b74b0849ee3079c81ebf13fc2b612dcd3d467 Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Tue, 3 Jan 2012 19:57:41 +1300 Subject: [PATCH] [SIGNED-OFF] Bug 7394 : Fixing scoping issue with XSLT processing. Also bailing out early for 404 inestead of doing unnessecary processing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Frédéric Demians I can confirm the bug and the solution. Signed-off-by: Katrin Fischer Second sign-off from me, patch fixes display of detail page for last record on a result page. --- C4/XSLT.pm | 2 +- opac/opac-detail.pl | 28 ++++++++++++++++------------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/C4/XSLT.pm b/C4/XSLT.pm index 39071d5..d22a3ac 100755 --- a/C4/XSLT.pm +++ b/C4/XSLT.pm @@ -58,7 +58,7 @@ Replaces codes with authorized values in a MARC::Record object sub transformMARCXML4XSLT { my ($biblionumber, $record) = @_; - my $frameworkcode = GetFrameworkCode($biblionumber); + my $frameworkcode = GetFrameworkCode($biblionumber) || ''; my $tagslib = &GetMarcStructure(1,$frameworkcode); my @fields; # FIXME: wish there was a better way to handle exceptions diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index f82dde2..8949444 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -66,6 +66,22 @@ 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 ); + + +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 +367,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 -- 1.7.5.4