bug 8215: (followup) rename GetItemReservesInfo
[koha.git] / catalogue / export.pl
index a6b7cb0..26e189b 100755 (executable)
@@ -1,36 +1,45 @@
 #!/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;
+
+
 
 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){
+               if ($biblionumber){
+
+                       my $marc = GetMarcBiblio($biblionumber, 1);
 
-                       if ($format =~ /marcxml/) {
+                       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";
                        }
@@ -39,12 +48,16 @@ if ($op eq "export") {
                                $marc = $marc->as_usmarc();
                        }
                        elsif ($format =~ /utf8/) {
-                               #default
+                               C4::Charset::SetUTF8Flag($marc, 1);
+                               $marc = $marc->as_usmarc();
                        }
+            elsif ($format =~ /marcstd/) {
+                C4::Charset::SetUTF8Flag($marc,1);
+                ($error, $marc) = marc2marc($marc, 'marcstd', C4::Context->preference('marcflavour'));
+            }
                        print $query->header(
                                -type => 'application/octet-stream',
                 -attachment=>"bib-$biblionumber.$format");
                        print $marc;
                }
-       }
 }