@@ -, +, @@
the lists and fix tests for CustomXSLTExportList
---
C4/XSLT.pm | 11 ++--
basket/basket.pl | 3 +-
basket/downloadcart.pl | 12 ++++-
catalogue/detail.pl | 2 +-
catalogue/export.pl | 18 +++++--
.../en/includes/virtualshelves-toolbar.inc | 2 +-
.../prog/en/modules/basket/basket.tt | 2 +-
.../en/includes/opac-detail-sidebar.inc | 52 +++++++++----------
.../bootstrap/en/modules/opac-basket.tt | 8 +++
.../bootstrap/en/modules/opac-shelves.tt | 8 +++
opac/opac-basket.pl | 2 +
opac/opac-detail.pl | 3 +-
opac/opac-downloadcart.pl | 12 ++++-
opac/opac-downloadshelf.pl | 16 ++++--
opac/opac-export.pl | 17 ++++--
opac/opac-shelves.pl | 5 +-
virtualshelves/downloadshelf.pl | 14 ++++-
virtualshelves/shelves.pl | 2 +-
18 files changed, 130 insertions(+), 59 deletions(-)
--- a/C4/XSLT.pm
+++ a/C4/XSLT.pm
@@ -127,24 +127,24 @@ sub get_xslt_sysprefs {
}
sub get_xsl_filename {
- my ( $xslsyspref ) = @_;
+ my ( $xslsyspref, $xslfilename ) = @_;
my $lang = C4::Languages::getlanguage();
- my $xslfilename = C4::Context->preference($xslsyspref) || "default";
+ $xslfilename ||= C4::Context->preference($xslsyspref) || "default";
if ($xslsyspref eq "XSLTCustomExport") {
my $dir;
$dir = C4::Context->config('intrahtdocs') .
'/' . C4::Context->preference("template") .
- '/' . C4::Languages::getlanguage() .
+ '/' . $lang .
'/xslt/biblioexport';
$xslfilename = $dir . "/" . $xslfilename;
} elsif ($xslsyspref eq "OPACXSLTCustomExport") {
my $dir;
$dir = C4::Context->config('opachtdocs') .
'/' . C4::Context->preference("opacthemes") .
- '/' . C4::Languages::getlanguage() .
+ '/' . $lang .
'/xslt/biblioexport';
$xslfilename = $dir . "/" . $xslfilename;
} elsif ( $xslfilename =~ /^\s*"?default"?\s*$/i ) {
@@ -205,11 +205,12 @@ sub XSLTParse4Display {
my $variables = $params->{xslt_variables};
my $items_rs = $params->{items_rs};
my $interface = C4::Context->interface;
+ my $xslfilename = $params->{xslfilename};
die "Mandatory \$params->{xsl_syspref} was not provided, called with biblionumber $params->{biblionumber}"
if not defined $params->{xsl_syspref};
- my $xslfilename = get_xsl_filename( $xslsyspref);
+ $xslfilename = get_xsl_filename( $xslsyspref, $xslfilename);
my $frameworkcode = GetFrameworkCode($biblionumber) || '';
my $record_processor = Koha::RecordProcessor->new(
--- a/basket/basket.pl
+++ a/basket/basket.pl
@@ -27,8 +27,7 @@ use C4::Biblio qw(
);
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
-use C4::XSLT;
-
+use C4::XSLT qw( CustomXSLTExportList );
use Koha::AuthorisedValues;
use Koha::Biblios;
--- a/basket/downloadcart.pl
+++ a/basket/downloadcart.pl
@@ -26,7 +26,7 @@ use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use C4::Record;
use C4::Ris qw( marc2ris );
-use C4::XSLT;
+use C4::XSLT qw( XSLTParse4Display );
use Koha::CsvProfiles;
use Koha::Biblios;
@@ -66,6 +66,7 @@ if ($bib_list && $format) {
my $biblio = Koha::Biblios->find($biblionumber);
my $record = $biblio->metadata->record({ embed_items => 1 });
+ my $xslFile = $query->param("file");
next unless $record;
if ($format eq 'iso2709') {
@@ -80,7 +81,14 @@ if ($bib_list && $format) {
$output .= marc2bibtex($record, $biblionumber);
}
elsif ($format =~ /^xsl\.(.*)$/) {
- $output .= XSLTParse4Display($biblio, $record, 'XSLTCustomExport', 1, undef, , '', $1, '');
+ $output .= XSLTParse4Display({
+ biblionumber => $biblio,
+ record => $record,
+ xsl_syspref => "XSLTCustomExport",
+ fix_amps => 1,
+ hidden_items => undef,
+ xslfilename => $xslFile,
+ });
}
}
}
--- a/catalogue/detail.pl
+++ a/catalogue/detail.pl
@@ -40,7 +40,7 @@ use C4::XISBN qw( get_xisbns );
use C4::External::Amazon qw( get_amazon_tld );
use C4::Search qw( z3950_search_args enabled_staff_search_views new_record_from_zebra );
use C4::Tags qw( get_tags );
-use C4::XSLT qw( XSLTParse4Display );
+use C4::XSLT qw( XSLTParse4Display CustomXSLTExportList );
use Koha::DateUtils qw( format_sqldatetime );
use C4::HTML5Media;
use C4::CourseReserves qw( GetItemCourseReservesInfo );
--- a/catalogue/export.pl
+++ a/catalogue/export.pl
@@ -7,8 +7,8 @@ use C4::Output;
use C4::Biblio qw( GetMarcControlnumber );
use CGI qw ( -utf8 );
use C4::Ris qw( marc2ris );
-use C4::XSLT;
-
+use C4::XSLT qw( XSLTParse4Display );
+use Koha::Biblios;
@@ -92,11 +92,21 @@ if ($op eq "export") {
my $biblionumber = $query->param("bib");
if ($biblionumber){
my $xslFile = $query->param("file");
- my $marc = GetMarcBiblio( { biblionumber => $biblionumber, embed_items => 1 } );
+ my $biblio = Koha::Biblios->find($biblionumber);
+ my $marc = $biblio->metadata->record( { embed_items => 1 } );
my $format=$query->param("format")||'txt';
my @hiddenitems;
- $marc = XSLTParse4Display($biblionumber, $marc, 'XSLTCustomExport', 1, \@hiddenitems, '', $xslFile,'');
+ $marc = XSLTParse4Display(
+ {
+ biblionumber => $biblionumber,
+ record => $marc,
+ xsl_syspref => "XSLTCustomExport",
+ fix_amps => 1,
+ hidden_items => \@hiddenitems,
+ xslfilename => $xslFile,
+ }
+ );
print $query->header(
-type => 'application/octet-stream',
-attachment=>"bib-$biblionumber.$format");
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/virtualshelves-toolbar.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/virtualshelves-toolbar.inc
@@ -39,7 +39,7 @@
New list |
+ [% SET export_options = Koha.Preference('OpacExportOptions').split(',') %]
--- a/opac/opac-basket.pl
+++ a/opac/opac-basket.pl
@@ -28,6 +28,7 @@ use C4::Biblio qw(
);
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
+use C4::XSLT qw( CustomXSLTExportList );
use Koha::RecordProcessor;
use Koha::CsvProfiles;
use Koha::AuthorisedValues;
@@ -134,6 +135,7 @@ $template->param(
{ type => 'marc', used_for => 'export_records', staff_only => 0 } ),
bib_list => $bib_list,
BIBLIO_RESULTS => $resultsarray,
+ xsl_exports => CustomXSLTExportList(),
);
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
--- a/opac/opac-detail.pl
+++ a/opac/opac-detail.pl
@@ -58,7 +58,7 @@ use C4::External::Syndetics qw(
get_syndetics_toc
);
use C4::Members;
-use C4::XSLT qw( XSLTParse4Display );
+use C4::XSLT qw( XSLTParse4Display CustomXSLTExportList );
use C4::ShelfBrowser qw( GetNearbyItems );
use C4::Reserves qw( GetReserveStatus IsAvailableForItemLevelRequest );
use C4::Charset qw( SetUTF8Flag );
@@ -103,7 +103,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
}
);
-#### ADD CUSTOM XSLT
$template->param(filesOptions => CustomXSLTExportList(1));
my $patron = Koha::Patrons->find( $borrowernumber );
--- a/opac/opac-downloadcart.pl
+++ a/opac/opac-downloadcart.pl
@@ -28,7 +28,7 @@ use C4::Output qw( output_html_with_http_headers );
use C4::Record;
use C4::Ris qw( marc2ris );
use Koha::Biblios;
-use C4::XSLT;
+use C4::XSLT qw( XSLTParse4Display );
use Koha::CsvProfiles;
use Koha::RecordProcessor;
@@ -86,6 +86,7 @@ if ($bib_list && $format) {
patron => $patron,
}
);
+ my $xslFile = $query->param("file");
my $framework = &GetFrameworkCode( $biblio );
$record_processor->options({
interface => 'opac',
@@ -117,7 +118,14 @@ if ($bib_list && $format) {
$type = "text/plain";
}
elsif ($format =~ /^xsl\.(.*)$/) {
- $output .= XSLTParse4Display($biblio, $record, 'OPACXSLTCustomExport', 1, undef, undef, $1, '');
+ $output .= XSLTParse4Display({
+ biblionumber => $biblio,
+ record => $record,
+ xsl_syspref => "OPACXSLTCustomExport",
+ fix_amps => 1,
+ hidden_items => undef,
+ xslfilename => $xslFile,
+ });
}
}
}
--- a/opac/opac-downloadshelf.pl
+++ a/opac/opac-downloadshelf.pl
@@ -27,7 +27,7 @@ use C4::Output qw( output_html_with_http_headers );
use C4::Record;
use C4::Ris qw( marc2ris );
use Koha::Biblios;
-use C4::XSLT;
+use C4::XSLT qw( XSLTParse4Display );
use Koha::CsvProfiles;
use Koha::RecordProcessor;
@@ -99,6 +99,7 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) {
patron => $patron,
}
);
+ my $xslFile = $query->param("file");
my $framework = $biblio->frameworkcode;
$record_processor->options({
interface => 'opac',
@@ -125,8 +126,17 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) {
$extension = "txt";
$type = "text/plain";
}elsif ($format =~ /^xsl\.(.*)$/){
- $output .= XSLTParse4Display($biblionumber, $record, 'XSLTCustomExport', 1, undef, undef, $1, '', 1);
- }
+ $output .= XSLTParse4Display(
+ {
+ biblionumber => $biblionumber,
+ record => $record,
+ xsl_syspref => "XSLTCustomExport",
+ fix_amps => 1,
+ hidden_items => undef,
+ xslfilename => $xslFile,
+ }
+ );
+ }
}
}
--- a/opac/opac-export.pl
+++ a/opac/opac-export.pl
@@ -31,8 +31,7 @@ use CGI qw ( -utf8 );
use C4::Auth;
use C4::Ris qw( marc2ris );
use Koha::Biblios;
-use C4::XSLT;
-
+use C4::XSLT qw( XSLTParse4Display );
use Koha::RecordProcessor;
my $query = CGI->new;
@@ -142,10 +141,20 @@ elsif ( $format =~ /isbd/ ) {
elsif ($format =~ /html/ ) {
if ($biblionumber){
my $xslFile = $query->param("file");
- $marc = C4::Biblio::GetMarcBiblio({biblionumber => $biblionumber});
+ my $biblio = Koha::Biblios->find($biblionumber);
+ $marc = $biblio->metadata->record;
my @hiddenitems;
- $marc = XSLTParse4Display($biblionumber, $marc, 'OPACXSLTCustomExport', 1, \@hiddenitems, undef, $xslFile, undef);
+ $marc = XSLTParse4Display(
+ {
+ biblionumber => $biblionumber,
+ record => $marc,
+ xsl_syspref => "OPACXSLTCustomExport",
+ fix_amps => 1,
+ hidden_items => \@hiddenitems,
+ xslfilename => $xslFile,
+ }
+ );
}
}
else {
--- a/opac/opac-shelves.pl
+++ a/opac/opac-shelves.pl
@@ -32,7 +32,7 @@ use C4::Koha qw(
use C4::Members;
use C4::Output qw( pagination_bar output_with_http_headers );
use C4::Tags qw( get_tags );
-use C4::XSLT qw( XSLTParse4Display );
+use C4::XSLT qw( XSLTParse4Display CustomXSLTExportList );
use Koha::Biblios;
use Koha::Biblioitems;
@@ -503,7 +503,8 @@ $template->param(
print => scalar $query->param('print') || 0,
listsview => 1,
staffuser => $staffuser,
- permitteduser => $permitteduser
+ permitteduser => $permitteduser,
+ xsl_exports => CustomXSLTExportList()
);
my $content_type = $query->param('rss')? 'rss' : 'html';
--- a/virtualshelves/downloadshelf.pl
+++ a/virtualshelves/downloadshelf.pl
@@ -25,7 +25,7 @@ use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use C4::Record;
use C4::Ris qw( marc2ris );
-use C4::XSLT;
+use C4::XSLT qw( XSLTParse4Display );
use Koha::Biblios;
@@ -72,6 +72,7 @@ if ($shelfid && $format) {
my $biblionumber = $content->biblionumber;
my $biblio = Koha::Biblios->find($biblionumber);
my $record = $biblio->metadata->record({ embed_items => 1 });
+ my $xslFile = $query->param("file");
if ($format eq 'iso2709') {
$output .= $record->as_usmarc();
}
@@ -82,7 +83,16 @@ if ($shelfid && $format) {
$output .= marc2bibtex($record, $biblionumber);
}
elsif ($format =~ /^xsl\.(.*)$/){
- $output .= XSLTParse4Display($biblionumber, $record, 'XSLTCustomExport', 1, undef, ,'',$1,'');
+ $output .= XSLTParse4Display(
+ {
+ biblionumber => $biblionumber,
+ record => $record,
+ xsl_syspref => 'XSLTCustomExport',
+ fix_amps => 1,
+ hidden_items => undef,
+ xslfilename => $xslFile,
+ }
+ );
}
}
}
--- a/virtualshelves/shelves.pl
+++ a/virtualshelves/shelves.pl
@@ -30,7 +30,7 @@ use C4::Koha qw(
);
use C4::Members;
use C4::Output qw( pagination_bar output_html_with_http_headers output_and_exit_if_error );
-use C4::XSLT qw( XSLTParse4Display );
+use C4::XSLT qw( XSLTParse4Display CustomXSLTExportList );
use Koha::Biblios;
use Koha::Biblioitems;
--