From 5ade5292849ae56ede6a8f90f3b37aedc0915608 Mon Sep 17 00:00:00 2001 From: Henri-Damien LAURENT Date: Mon, 24 Aug 2009 23:47:19 +0200 Subject: [PATCH] Adding download for Cart and Shelf at OPAC Signed-off-by: Galen Charlton --- koha-tmpl/opac-tmpl/prog/en/js/basket.js | 10 +++ .../prog/en/modules/opac-downloadcart.tmpl | 24 ++++++ .../prog/en/modules/opac-downloadshelf.tmpl | 24 ++++++ .../prog/en/modules/opac-shelves.tmpl | 1 + opac/opac-downloadcart.pl | 80 ++++++++++++++++++ opac/opac-downloadshelf.pl | 81 +++++++++++++++++++ 6 files changed, 220 insertions(+) create mode 100644 koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadcart.tmpl create mode 100644 koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadshelf.tmpl create mode 100755 opac/opac-downloadcart.pl create mode 100755 opac/opac-downloadshelf.pl diff --git a/koha-tmpl/opac-tmpl/prog/en/js/basket.js b/koha-tmpl/opac-tmpl/prog/en/js/basket.js index 70da7df451..958dab361b 100644 --- a/koha-tmpl/opac-tmpl/prog/en/js/basket.js +++ b/koha-tmpl/opac-tmpl/prog/en/js/basket.js @@ -342,6 +342,16 @@ function sendBasket() { var win_form = open(loc,"win_form",optWin); } +function downloadBasket() { + var nameCookie = "bib_list"; + var valCookie = readCookie(nameCookie); + var strCookie = nameCookie + "=" + valCookie; + + var loc = CGIBIN + "opac-downloadcart.pl?" + strCookie; + + open(loc,"win_form",'dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100'); +} + function printBasket() { var loc = document.location + "&print=1"; document.location = loc; diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadcart.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadcart.tmpl new file mode 100644 index 0000000000..aa71a3d473 --- /dev/null +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadcart.tmpl @@ -0,0 +1,24 @@ +Download shelf + + + + Your Download should automatically start + +
+ + + " /> + +
+ +

Close this window

+
+ + + + diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadshelf.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadshelf.tmpl new file mode 100644 index 0000000000..a36caf0e22 --- /dev/null +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-downloadshelf.tmpl @@ -0,0 +1,24 @@ +Download shelf + + + + Your Download should automatically start + +
+ + + " /> + +
+ +

Close this window

+
+ + + + diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tmpl index 4b8429a26e..4a6bca22aa 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tmpl +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tmpl @@ -184,6 +184,7 @@ $(function() { | ','win_form','dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100'); return false; ">Send List + ','win_form','dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100')">Download List &op=modif">Edit List
diff --git a/opac/opac-downloadcart.pl b/opac/opac-downloadcart.pl new file mode 100755 index 0000000000..25fe7ce3da --- /dev/null +++ b/opac/opac-downloadcart.pl @@ -0,0 +1,80 @@ +#!/usr/bin/perl + +# Copyright 2009 BibLibre +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +use strict; +use warnings; + +use CGI; +use Encode qw(encode); +use Switch; + +use C4::Auth; +use C4::Biblio; +use C4::Items; +use C4::Output; +use C4::VirtualShelves; +use C4::Record; +use C4::Ris; +use utf8; +use open qw( :std :utf8); +my $query = new CGI; + +my ( $template, $borrowernumber, $cookie ) = get_template_and_user ( + { + template_name => "opac-downloadcart.tmpl", + query => $query, + type => "opac", + authnotrequired => 1, + flagsrequired => { borrow => 1 }, + } +); + +my $bib_list = $query->param('bib_list'); +my $format = $query->param('format'); +my $dbh = C4::Context->dbh; + +if ($bib_list && $format) { + + my @bibs = split( /\//, $bib_list ); + + my $marcflavour = C4::Context->preference('marcflavour'); + my $output; + + # retrieve biblios from shelf + foreach my $biblio (@bibs) { + + my $record = GetMarcBiblio($biblio); + + switch ($format) { + case "iso2709" { $output .= $record->as_usmarc(); } + case "ris" { $output .= marc2ris($record); } + case "bibtex" { $output .= marc2bibtex($record, $biblio); } + } + } + + print $query->header( + -type => 'application/octet-stream', + -'Content-Transfer-Encoding' => 'binary', + -attachment=>"cart.$format"); + print $output; + +} else { + $template->param(bib_list => $bib_list); + output_html_with_http_headers $query, $cookie, $template->output; +} diff --git a/opac/opac-downloadshelf.pl b/opac/opac-downloadshelf.pl new file mode 100755 index 0000000000..b377109ca2 --- /dev/null +++ b/opac/opac-downloadshelf.pl @@ -0,0 +1,81 @@ +#!/usr/bin/perl + +# Copyright 2009 BibLibre +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +use strict; +use warnings; + +use CGI; +use Encode qw(encode); +use Switch; + +use C4::Auth; +use C4::Biblio; +use C4::Items; +use C4::Output; +use C4::VirtualShelves; +use C4::Record; +use C4::Ris; +use utf8; +use open qw( :std :utf8); +my $query = new CGI; + +my ( $template, $borrowernumber, $cookie ) = get_template_and_user ( + { + template_name => "opac-downloadshelf.tmpl", + query => $query, + type => "opac", + authnotrequired => 1, + flagsrequired => { borrow => 1 }, + } +); + +my $shelfid = $query->param('shelfid'); +my $format = $query->param('format'); +my $dbh = C4::Context->dbh; + +if ($shelfid && $format) { + + my @shelf = GetShelf($shelfid); + my ($items, $totitems) = GetShelfContents($shelfid); + my $marcflavour = C4::Context->preference('marcflavour'); + my $output; + + # retrieve biblios from shelf + foreach my $biblio (@$items) { + my $biblionumber = $biblio->{biblionumber}; + + my $record = GetMarcBiblio($biblionumber); + + switch ($format) { + case "iso2709" { $output .= $record->as_usmarc(); } + case "ris" { $output .= marc2ris($record); } + case "bibtex" { $output .= marc2bibtex($record, $biblionumber); } + } + } + + print $query->header( + -type => 'application/octet-stream', + -'Content-Transfer-Encoding' => 'binary', + -attachment=>"shelf.$format"); + print $output; + +} else { + $template->param(shelfid => $shelfid); + output_html_with_http_headers $query, $cookie, $template->output; +} -- 2.39.2