From a9f5a990f36655d234e7e59cae91de0c1284fd4e Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Tue, 5 Apr 2011 11:32:41 +0200 Subject: [PATCH] Bug 6040 : Adding some error handling to the opac export Signed-off-by: Matthias Meusburger Signed-off-by: Chris Cormack (cherry picked from commit 58013b6c2ad01b87c778ec56bf02dd58e826200e) Signed-off-by: Chris Nighswonger --- opac/opac-export.pl | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/opac/opac-export.pl b/opac/opac-export.pl index 4c53aff006..f9d3c253d3 100755 --- a/opac/opac-export.pl +++ b/opac/opac-export.pl @@ -1,5 +1,24 @@ #!/usr/bin/perl -use HTML::Template::Pro; + +# Parts Copyright Catalyst IT 2011 +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA +# + + use strict; use warnings; @@ -22,6 +41,7 @@ if ($op eq "export") { $sth=$dbh->prepare("SELECT marc FROM biblioitems WHERE biblionumber =?"); $sth->execute($biblionumber); } + my $error; while (my ($marc) = $sth->fetchrow) { if ($marc){ @@ -41,21 +61,31 @@ if ($op eq "export") { elsif ($format =~ /bibtex/) { $marc = marc2bibtex(C4::Biblio::GetMarcBiblio($biblionumber),$biblionumber); }elsif ($format =~ /dc/) { - my $error; - ($error,$marc) = marc2dcxml($marc,1); + ($error,$marc) = marc2dcxml($marc,1); $format = "dublin-core.xml"; } elsif ($format =~ /marc8/) { - $marc = changeEncoding($marc,"MARC","MARC21","MARC-8"); - $marc = $marc->as_usmarc(); + ($error,$marc) = changeEncoding($marc,"MARC","MARC21","MARC-8"); + if (! $error){ + $marc = $marc->as_usmarc(); + } } elsif ($format =~ /utf8/) { #default } - print $query->header( + if ($error){ + print $query->header(); + print $query->start_html(); + print "

An error occured

"; + print $error; + print $query->end_html(); + } + else { + print $query->header( -type => 'application/octet-stream', -attachment=>"bib-$biblionumber.$format"); - print $marc; + print $marc; + } } } } -- 2.39.5