From 93addad23a2bccb41e2f56759d4dbde2a78db7de Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 10 Feb 2015 20:30:23 -0300 Subject: [PATCH] Bug 13695: Add ISBD export option for the OPAC cart and lists 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 Signed-off-by: Brendan Gallagher Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi --- .../bootstrap/en/modules/opac-downloadcart.tt | 1 + .../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 8536c460fe..9f1f65d570 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 @@ + [% FOREACH csv_profile IN csv_profiles %] 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 128cec2e1c..a9c53f9eb1 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 @@ + [% FOREACH csv_profile IN csv_profiles %] diff --git a/opac/opac-downloadcart.pl b/opac/opac-downloadcart.pl index 98a7f3c0de..5164c2ebf2 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 7a6b1dd9e5..0230ebad87 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.20.1