From f72a6e81fbd542f27808328823f10a103604e2f8 Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@gmail.com>
Date: Tue, 10 Feb 2015 20:24:22 -0300
Subject: [PATCH] [PASSED QA] Bug 13695: Add ISBD export option to OPAC (detail)

This patch adds the option to export a record (from within the
OPAC record detail page) in the ISBD format.

To test:
- Enable ISBD on the OpacExportOptions syspref
- Look for a record on your opac
- On the detail page, notice there's a new ISBD option for 'Save record'
- Choose ISBD
=> SUCCESS: a file containing the ISBD format for the record is downloaded

Sponsored-by: Orex Digital

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
---
 .../bootstrap/en/includes/opac-detail-sidebar.inc  |    1 +
 opac/opac-export.pl                                |   11 +++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc
index 8f8ffa5..a4ef40e 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc
@@ -50,6 +50,7 @@
                                             [% CASE 'marcstd' %]MARC (Unicode/UTF-8, Standard)
                                             [% CASE 'mods' %]MODS (XML)
                                             [% CASE 'ris' %]RIS
+                                            [% CASE 'isbd' %]ISBD
                                         [% END %]
                                     </a>
                                 </li>
diff --git a/opac/opac-export.pl b/opac/opac-export.pl
index 707392f..3d983f9 100755
--- a/opac/opac-export.pl
+++ b/opac/opac-export.pl
@@ -79,6 +79,10 @@ elsif ($format =~ /marcstd/) {
     ($error,$marc) = marc2marc($marc, 'marcstd', C4::Context->preference('marcflavour'));
     $format = 'marcstd';
 }
+elsif ( $format =~ /isbd/ ) {
+    $marc   = GetISBDView($biblionumber, "opac");
+    $format = 'isbd';
+}
 else {
     $error= "Format $format is not supported.";
 }
@@ -96,6 +100,13 @@ else {
             -type => 'application/marc',
             -charset=>'ISO-2022',
             -attachment=>"bib-$biblionumber.$format");
+    }
+    elsif ( $format eq 'isbd' ) {
+        print $query->header(
+            -type       => 'text/plain',
+            -charset    => 'utf-8',
+            -attachment =>  "bib-$biblionumber.txt"
+        );
     }else{
         print $query->header(
             -type => 'application/octet-stream',
-- 
1.7.2.5