my $stylesheet;
sub XSLTParse4Display {
- my ( $biblionumber, $orig_record, $xslfilename ) = @_;
+ my ( $biblionumber, $orig_record, $type ) = @_;
+ my $xslfilename=C4::Context->preference("XSLT$type"."Filename")||_buildfilename($type);
# grab the XML, run it through our stylesheet, push it out to the browser
my $record = transformMARCXML4XSLT($biblionumber, $orig_record);
#return $record->as_formatted();
my $itemsxml = buildKohaItemsNamespace($biblionumber);
- my $xmlrecord = $record->as_xml();
- $xmlrecord =~ s/\<\/record\>/$itemsxml\<\/record\>/;
+ my $xmlrecord = $record->as_xml(C4::Context->preference('marcflavour'));
+ my $sysxml = "";
+ foreach my $syspref ( qw/OPACURLOpenInNewWindow DisplayOPACiconsXSLT URLLinkText/ ) {
+ if (C4::Context->preference( $syspref ) ){
+ $sysxml .= "<syspref name=\"$syspref\">" .
+ C4::Context->preference( $syspref ) .
+ "</syspref>\n";
+ }
+ }
+ $sysxml = "<sysprefs>\n".$sysxml."</sysprefs>\n" if length($sysxml);
+ $xmlrecord =~ s/\<\/record\>/$itemsxml$sysxml\<\/record\>/;
+ $xmlrecord =~ s/\& /\&\; /;
+
my $parser = XML::LibXML->new();
# don't die when you find &, >, etc
- $parser->recover_silently(1);
+ $parser->recover_silently(0);
my $source = $parser->parse_string($xmlrecord);
unless ( $stylesheet->{$xslfilename} ) {
my $xslt = XML::LibXSLT->new();
return $newxmlrecord;
}
+
+sub _buildfilename{
+ my $type=shift;
+ return C4::Context->config('opachtdocs') .
+ "/prog/en/xslt/" .
+ C4::Context->preference('marcflavour') .
+ "slim2OPAC$type.xsl";
+}
+
sub buildKohaItemsNamespace {
my ($biblionumber) = @_;
my @items = C4::Items::GetItemsInfo($biblionumber);