[Koha-patches] [PATCH 3/3] Bug 13695: Add ISBD export option for the OPAC cart and lists

Tomas Cohen Arazi tomascohen at gmail.com
Wed Feb 11 00:46:32 CET 2015


This patch adds the option to download records from the cart, and
lists in the ISBD format from the OPAC.

To test (cart):
- Apply the patch
- Add several records to your OPAC cart.
- Go to your cart, and choose 'Download'
=> SUCCESS: There's an ISBD option
- Dowload and open the exported records
=> SUCCESS: The file contains the ISBD format for the records on the cart

To test (lists):
- Add several records to a list (i did it from the cart ;-))
- Open the list
- Choose 'Download list'
=> SUCCESS: There's an ISBD option
- Download and open the exported records
=> SUCCESS: The file contains the ISBD format for the records on the list.

- Sign off :-D

Sponsored-by: Orex Digital
---
 .../opac-tmpl/bootstrap/en/modules/opac-downloadcart.tt  |  1 +
 .../opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt |  1 +
 opac/opac-downloadcart.pl                                | 16 ++++++++++++----
 opac/opac-downloadshelf.pl                               | 14 +++++++++++---
 4 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadcart.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadcart.tt
index 8536c46..9f1f65d 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadcart.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadcart.tt
@@ -14,6 +14,7 @@
                                 <option value="">-- Choose format --</option>
                                 <option value="ris">RIS (Zotero, EndNote, others)</option>
                                 <option value="bibtex">BibTeX</option>
+                                <option value="isbd">ISBD</option>
                                 <option value="iso2709">MARC</option>
                                 [% FOREACH csv_profile IN csv_profiles %]
                                     <option value="[% csv_profile.export_format_id %]">CSV - [% csv_profile.profile %]</option>
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt
index 128cec2..a9c53f9 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt
@@ -53,6 +53,7 @@
                                             <option value="">-- Choose format --</option>
                                             <option value="ris">RIS (Zotero, EndNote, others)</option>
                                             <option value="bibtex">BibTeX</option>
+                                            <option value="isbd">ISBD</option>
                                             <option value="iso2709">MARC</option>
                                             [% FOREACH csv_profile IN csv_profiles %]
                                             <option value="[% csv_profile.export_format_id |html %]">CSV - [% csv_profile.profile |html %]</option>
diff --git a/opac/opac-downloadcart.pl b/opac/opac-downloadcart.pl
index 98a7f3c..5164c2e 100755
--- a/opac/opac-downloadcart.pl
+++ b/opac/opac-downloadcart.pl
@@ -52,8 +52,10 @@ if ($bib_list && $format) {
 
     my @bibs = split( /\//, $bib_list );
 
-    my $marcflavour         = C4::Context->preference('marcflavour');
+    my $marcflavour = C4::Context->preference('marcflavour');
     my $output;
+    my $extension;
+    my $type;
 
     # CSV   
     if ($format =~ /^\d+$/) {
@@ -76,6 +78,11 @@ if ($bib_list && $format) {
             elsif ($format eq 'bibtex') {
                 $output .= marc2bibtex($record, $biblio);
             }
+            elsif ( $format eq 'isbd' ) {
+                $output   .= GetISBDView($biblio, "opac");
+                $extension = "txt";
+                $type      = "text/plain";
+            }
         }
     }
 
@@ -83,9 +90,10 @@ if ($bib_list && $format) {
     $format = "csv" if ($format =~ m/^\d+$/);
 
     print $query->header(
-	-type => 'application/octet-stream',
-	-'Content-Transfer-Encoding' => 'binary',
-	-attachment=>"cart.$format");
+                               -type => ($type) ? $type : 'application/octet-stream',
+        -'Content-Transfer-Encoding' => 'binary',
+                         -attachment => ($extension) ? "cart.$format.$extension" : "cart.$format"
+    );
     print $output;
 
 } else { 
diff --git a/opac/opac-downloadshelf.pl b/opac/opac-downloadshelf.pl
index 7a6b1dd..0230eba 100755
--- a/opac/opac-downloadshelf.pl
+++ b/opac/opac-downloadshelf.pl
@@ -57,6 +57,8 @@ if ( ShelfPossibleAction( (defined($borrowernumber) ? $borrowernumber : -1), $sh
         my ($items, $totitems)  = GetShelfContents($shelfid);
         my $marcflavour         = C4::Context->preference('marcflavour');
         my $output;
+        my $extension;
+        my $type;
 
        # CSV
         if ($format =~ /^\d+$/) {
@@ -83,6 +85,11 @@ if ( ShelfPossibleAction( (defined($borrowernumber) ? $borrowernumber : -1), $sh
                 elsif ($format eq 'bibtex') {
                     $output .= marc2bibtex($record, $biblionumber);
                 }
+                elsif ( $format eq 'isbd' ) {
+                    $output   .= GetISBDView($biblionumber, "opac");
+                    $extension = "txt";
+                    $type      = "text/plain";
+                }
             }
         }
 
@@ -90,9 +97,10 @@ if ( ShelfPossibleAction( (defined($borrowernumber) ? $borrowernumber : -1), $sh
         $format = "csv" if ($format =~ m/^\d+$/);
 
         print $query->header(
-    	-type => 'application/octet-stream',
-    	-'Content-Transfer-Encoding' => 'binary',
-    	-attachment=>"shelf.$format");
+                                   -type => ($type) ? $type : 'application/octet-stream',
+            -'Content-Transfer-Encoding' => 'binary',
+                             -attachment => ($extension) ? "shelf.$format.$extension" : "shelf.$format"
+        );
         print $output;
 
     } else {
-- 
2.3.0



More information about the Koha-patches mailing list