[Koha-patches] [PATCH] Bug 5639 (MT #3605) Fix escaping in ILSDI
Chris Cormack
chrisc at catalyst.net.nz
Thu Mar 31 22:24:42 CEST 2011
From: Jean-André Santoni <jeanandre.santoni at biblibre.com>
---
C4/ILSDI/Services.pm | 15 ++------
koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tmpl | 44 ++++++++++++------------
opac/ilsdi.pl | 1 -
3 files changed, 26 insertions(+), 34 deletions(-)
diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm
index ba0c429..90f741a 100644
--- a/C4/ILSDI/Services.pm
+++ b/C4/ILSDI/Services.pm
@@ -193,15 +193,12 @@ sub GetRecords {
# Get the biblioitem from the biblionumber
my $biblioitem = ( GetBiblioItemByBiblioNumber( $biblionumber, undef ) )[0];
if ( not $biblioitem->{'biblionumber'} ) {
- $biblioitem = "RecordNotFound";
+ $biblioitem->{code} = "RecordNotFound";
}
# We don't want MARC to be displayed
delete $biblioitem->{'marc'};
- # nor the XML declaration of MARCXML
- $biblioitem->{'marcxml'} =~ s/<\?xml version="1.0" encoding="UTF-8"\?>//go;
-
# Get most of the needed data
my $biblioitemnumber = $biblioitem->{'biblioitemnumber'};
my @reserves = GetReservesFromBiblionumber( $biblionumber, undef, undef );
@@ -224,8 +221,6 @@ sub GetRecords {
$biblioitem->{'reserves'}->{'reserve'} = $reserves[1];
$biblioitem->{'issues'}->{'issue'} = $issues;
- map { $biblioitem->{$_} = encode_entities( $biblioitem->{$_}, '&' ) } grep( !/marcxml/, keys %$biblioitem );
-
push @records, $biblioitem;
}
@@ -256,18 +251,16 @@ sub GetAuthorityRecords {
return { code => 'UnsupportedSchema' };
}
- my $records;
+ my @records;
# Let's loop over the authority IDs
foreach my $authid ( split( / /, $cgi->param('id') ) ) {
# Get the record as XML string, or error code
- my $record = GetAuthorityXML($authid) || "<record><code>RecordNotFound</code></record>";
- $record =~ s/<\?xml(.*)\?>//go;
- $records .= $record;
+ push @records, GetAuthorityXML($authid) || { code => 'RecordNotFound' };
}
- return $records;
+ return { record => \@records };
}
=head2 LookupPatron
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tmpl
index 9ffb236..a067507 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tmpl
@@ -120,6 +120,7 @@
<biblioitemnumber>1</biblioitemnumber>
<isbn>9782862749198</isbn>
<marcxml>
+ <?xml version="1.0" encoding="UTF-8" ?>
<record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
@@ -208,6 +209,7 @@
<biblioitemnumber>2</biblioitemnumber>
<isbn>9782265078031</isbn>
<marcxml>
+ <?xml version="1.0" encoding="UTF-8" ?>
<record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
@@ -316,41 +318,39 @@
ilsdi.pl?service=GetAuthorityRecords&id=1+2+99999
</a>
<h4>Example Response</h4>
-<pre><?xml version="1.0" encoding="ISO-8859-1" ?>
+<pre><xml version="1.0" encoding="UTF-8">;
<GetAuthorityRecords>
+ <record>
+ <?xml version="1.0" encoding="UTF-8"?>
<record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
xmlns="http://www.loc.gov/MARC21/slim">
- <leader>00126nx j2200073 4500 </leader>
+ <leader>00182 2200085 4500</leader>
<controlfield tag="001">1</controlfield>
- <datafield tag="250" ind1=" " ind2=" ">
- <subfield code="a">TECHNIQUE</subfield>
+ <datafield tag="200" ind1=" " ind2=" ">
+ <subfield code="a">Hugo</subfield>
+ <subfield code="b">Victor</subfield>
</datafield>
- <datafield tag="100" ind1=" " ind2=" ">
- <subfield code="a">20071210afrey50 ba0</subfield>
- </datafield>
- <datafield tag="152" ind1=" " ind2=" ">
- <subfield code="b">NC</subfield>
- </datafield>
- </record>
- <record
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
- xmlns="http://www.loc.gov/MARC21/slim">
- <leader>00130nx j2200073 4500 </leader>
- <controlfield tag="001">2</controlfield>
- <datafield tag="250" ind1=" " ind2=" ">
- <subfield code="a">CHEMIN DE FER</subfield>
+ <datafield tag="801" ind1=" " ind2=" ">
+ <subfield code="a">France</subfield>
+ <subfield code="b">Nimes</subfield>
+ <subfield code="c">2010/04/13</subfield>
</datafield>
<datafield tag="100" ind1=" " ind2=" ">
- <subfield code="a">20071210afrey50 ba0</subfield>
+ <subfield code="a">20100413 50 </subfield>
</datafield>
<datafield tag="152" ind1=" " ind2=" ">
- <subfield code="b">NC</subfield>
+ <subfield code="b">NP</subfield>
</datafield>
</record>
- <record>RecordNotFound</record>
+ </record>
+ <record>
+ <code>RecordNotFound</code>
+ </record>
+ <record>
+ <code>RecordNotFound</code>
+ </record>
</GetAuthorityRecords></pre>
<!-- TMPL_ELSIF NAME="LookupPatron" -->
diff --git a/opac/ilsdi.pl b/opac/ilsdi.pl
index 56058f0..48fd7ba 100755
--- a/opac/ilsdi.pl
+++ b/opac/ilsdi.pl
@@ -233,7 +233,6 @@ print CGI::header('-type'=>'text/xml', '-charset'=>'utf-8');
print XMLout(
$out,
noattr => 1,
- noescape => 1,
nosort => 1,
xmldecl => '<?xml version="1.0" encoding="UTF-8" ?>',
RootName => $service,
--
1.7.1
More information about the Koha-patches
mailing list