#!/usr/bin/perl
-use HTML::Template;
use strict;
-require Exporter;
+#use warnings; FIXME - Bug 2505
+
use C4::Record;
use C4::Auth;
use C4::Output;
use C4::Biblio;
use CGI;
-use C4::Auth;
+use C4::Ris;
+
+
my $query = new CGI;
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user({
+ template_name => "tools/export.tt",
+ query => $query,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { catalogue => 1 },
+ debug => 1,
+ });
+
my $op=$query->param("op");
my $format=$query->param("format");
+my $error = '';
if ($op eq "export") {
- my $biblionumber = $query->param("bib");
- my $dbh=C4::Context->dbh;
- my $sth;
- if ($biblionumber) {
- $sth=$dbh->prepare("SELECT marc FROM biblioitems WHERE biblionumber =?");
- $sth->execute($biblionumber);
- }
- while (my ($marc) = $sth->fetchrow) {
- if ($marc){
+ my $biblionumber = $query->param("bib");
+ if ($biblionumber){
+
+ my $marc = GetMarcBiblio($biblionumber, 1);
- if ($format =~ /endnote/) {
- $marc = marc2endnote($marc);
- $format = 'endnote';
- }
- elsif ($format =~ /marcxml/) {
- $marc = marc2marcxml($marc);
- }
- elsif ($format=~ /mods/) {
- $marc = marc2modsxml($marc);
- }
- elsif ($format =~ /dc/) {
- my $error;
- ($error,$marc) = marc2dcxml($marc,1);
- $format = "dublin-core.xml";
- }
- elsif ($format =~ /marc8/) {
- $marc = changeEncoding($marc,"MARC","MARC21","MARC-8");
- $marc = $marc->as_usmarc();
- }
- elsif ($format =~ /utf8/) {
- #default
- }
- print $query->header(
- -type => 'application/octet-stream',
+ if ($format =~ /endnote/) {
+ $marc = marc2endnote($marc);
+ $format = 'endnote';
+ }
+ elsif ($format =~ /marcxml/) {
+ $marc = marc2marcxml($marc);
+ $format = "marcxml";
+ }
+ elsif ($format=~ /mods/) {
+ $marc = marc2modsxml($marc);
+ $format = "mods";
+ }
+ elsif ($format =~ /ris/) {
+ $marc = marc2ris($marc);
+ $format = "ris";
+ }
+ elsif ($format =~ /bibtex/) {
+ $marc = marc2bibtex($marc);
+ $format = "bibtex";
+ }
+ elsif ($format =~ /dc/) {
+ ($error,$marc) = marc2dcxml($marc,1);
+ $format = "dublin-core.xml";
+ }
+ elsif ($format =~ /marc8/) {
+ $marc = changeEncoding($marc,"MARC","MARC21","MARC-8");
+ $marc = $marc->as_usmarc();
+ $format = "marc8";
+ }
+ elsif ($format =~ /utf8/) {
+ C4::Charset::SetUTF8Flag($marc, 1);
+ $marc = $marc->as_usmarc();
+ $format = "utf8";
+ }
+ elsif ($format =~ /marcstd/) {
+ C4::Charset::SetUTF8Flag($marc,1);
+ ($error, $marc) = marc2marc($marc, 'marcstd', C4::Context->preference('marcflavour'));
+ $format = "marcstd";
+ }
+ print $query->header(
+ -type => 'application/octet-stream',
-attachment=>"bib-$biblionumber.$format");
- print $marc;
- }
- }
+ print $marc;
+ }
}