Reviving a report back from 2014. The workaround is now moved to a
separate helper module from another patch.
Test plan:
Test OPACXSLTDetailsDisplay with an https reference.
You may try:
https://library.rijksmuseum.nl/opac-tmpl/bootstrap/en/xslt/zztest.xsl
If you flush and restart, the opac detail pages will contain the
text 'This is my MARC record.'.
NOTE: If you point to an xslt file over https that contains includes or
imports, you will still get the error: Failed to load external entity.
To address that, we need to extend the _resolve_includes sub.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
via the err attribute.
Reloading XSLT files can be done with the refresh method.
+ The module refers to a (temporary) helper module Koha::XSLT::HTTPS that
+ resolves issues in libxml2/libxslt for https references.
+
=head1 METHODS
=head2 new
use Modern::Perl;
use XML::LibXML;
use XML::LibXSLT;
+use Koha::XSLT::HTTPS;
use Koha::XSLT::Security;
use base qw(Class::Accessor);
}
sub _load_xml_args {
- my $self = shift;
- return $_[1]? { 'string' => $_[1]//'' }: { 'location' => $_[0]//'' };
+ my ( $self, $filename, $code ) = @_;
+ return Koha::XSLT::HTTPS->load($filename) if $filename && $filename =~ /^https/i;
+ # Workaround for current problems with https location in libxml2/libxslt
+ # Returns response like { string => SOME_CODE }
+ return $code ? { string => $code } : { location => $filename };
}
# _set_error