From 19b9e61ad59de355979d8244ff3e888d535ecdc7 Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Mon, 4 Apr 2011 15:09:43 +1200 Subject: [PATCH] [SIGNED-OFF] Bug 6040 : Adding some error handling to the opac export Signed-off-by: Matthias Meusburger --- opac/opac-export.pl | 44 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 37 insertions(+), 7 deletions(-) diff --git a/opac/opac-export.pl b/opac/opac-export.pl index 4c53aff..f9d3c25 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; + } } } } -- 1.7.1