X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FXSLT.pm;h=28a70fc4154689ac4e40b2d83853bb16606a78ae;hb=499c694daf408571cc8370b4c20568336ba35cde;hp=d454981626fa467652c327f2c671c6be068b2942;hpb=546a0244bb34832e37827c14498963eb3d1b3b82;p=koha_fer diff --git a/C4/XSLT.pm b/C4/XSLT.pm old mode 100644 new mode 100755 index d454981626..28a70fc415 --- a/C4/XSLT.pm +++ b/C4/XSLT.pm @@ -1,6 +1,8 @@ package C4::XSLT; # Copyright (C) 2006 LibLime # +# Parts Copyright Katrin Fischer 2011 +# Parts Copyright ByWater Solutions 2011 # # This file is part of Koha. # @@ -120,7 +122,7 @@ sub getAuthorisedValues4MARCSubfields { my $stylesheet; sub XSLTParse4Display { - my ( $biblionumber, $orig_record, $xsl_suffix, $interface ) = @_; + my ( $biblionumber, $orig_record, $xsl_suffix, $interface, $fixamps ) = @_; $interface = 'opac' unless $interface; # grab the XML, run it through our stylesheet, push it out to the browser my $record = transformMARCXML4XSLT($biblionumber, $orig_record); @@ -128,15 +130,25 @@ sub XSLTParse4Display { my $itemsxml = buildKohaItemsNamespace($biblionumber); my $xmlrecord = $record->as_xml(C4::Context->preference('marcflavour')); my $sysxml = "\n"; - foreach my $syspref ( qw/OPACURLOpenInNewWindow DisplayOPACiconsXSLT URLLinkText viewISBD/ ) { - $sysxml .= "" . - C4::Context->preference( $syspref ) . - "\n"; + foreach my $syspref ( qw/ hidelostitems OPACURLOpenInNewWindow + DisplayOPACiconsXSLT URLLinkText viewISBD + OPACBaseURL TraceCompleteSubfields + UseAuthoritiesForTracings TraceSubjectSubdivisions + Display856uAsImage OPACDisplay856uAsImage + UseControlNumber + AlternateHoldingsField AlternateHoldingsSeparator / ) + { + my $sp = C4::Context->preference( $syspref ); + next unless defined($sp); + $sysxml .= "$sp\n"; } $sysxml .= "\n"; $xmlrecord =~ s/\<\/record\>/$itemsxml$sysxml\<\/record\>/; + if ($fixamps) { # We need to correct the ampersand entities that Zebra outputs + $xmlrecord =~ s/\&amp;/\&/g; + } $xmlrecord =~ s/\& /\&\; /; - $xmlrecord=~ s/\&\;amp\; /\&\; /; + $xmlrecord =~ s/\&\;amp\; /\&\; /; my $parser = XML::LibXML->new(); # don't die when you find &, >, etc @@ -210,16 +222,15 @@ sub buildKohaItemsNamespace { } else { $status = "available"; } - my $homebranch = $branches->{$item->{homebranch}}->{'branchname'}; - my $itemcallnumber = $item->{itemcallnumber} || ''; - $itemcallnumber =~ s/\&/\&\;/g; + my $homebranch = xml_escape($branches->{$item->{homebranch}}->{'branchname'}); + my $itemcallnumber = xml_escape($item->{itemcallnumber}); $xml.= "$homebranch". "$status". "".$itemcallnumber."" . ""; } - $xml = "".$xml.""; + $xml = "".$xml.""; return $xml; }