Merge remote branch 'kc/new/bug_5301' into kcmaster

This commit is contained in:
Chris Cormack 2010-11-03 06:54:50 +13:00
commit ae6ae0b39d
3 changed files with 29 additions and 4 deletions

View File

@ -62,6 +62,7 @@ BEGIN {
&GetNormalizedISBN
&GetNormalizedEAN
&GetNormalizedOCLCNumber
&xml_escape
$DEBUG
);
@ -1194,6 +1195,25 @@ sub GetKohaAuthorisedValuesFromField {
}
}
=head2 xml_escape
my $escaped_string = C4::Koha::xml_escape($string);
Convert &, <, >, ', and " in a string to XML entities
=cut
sub xml_escape {
my $str = shift;
return '' unless defined $str;
$str =~ s/&/&amp;/g;
$str =~ s/</&lt;/g;
$str =~ s/>/&gt;/g;
$str =~ s/'/&apos;/g;
$str =~ s/"/&quot;/g;
return $str;
}
=head2 display_marc_indicators
my $display_form = C4::Koha::display_marc_indicators($field);

View File

@ -210,9 +210,8 @@ sub buildKohaItemsNamespace {
} else {
$status = "available";
}
my $homebranch = $branches->{$item->{homebranch}}->{'branchname'};
my $itemcallnumber = $item->{itemcallnumber} || '';
$itemcallnumber =~ s/\&/\&amp\;/g;
my $homebranch = xml_escape($branches->{$item->{homebranch}}->{'branchname'});
my $itemcallnumber = xml_escape($item->{itemcallnumber});
$xml.= "<item><homebranch>$homebranch</homebranch>".
"<status>$status</status>".
"<itemcallnumber>".$itemcallnumber."</itemcallnumber>"

View File

@ -2,7 +2,7 @@
use strict;
use warnings;
use Test::More tests => 2;
use Test::More tests => 5;
use_ok('C4::Koha');
@ -13,3 +13,9 @@ my $date = "01/01/2002";
my $newdate = &slashifyDate("2002-01-01");
ok($date eq $newdate, 'slashifyDate');
my $undef = undef;
is(xml_escape($undef), '', 'xml_escape() returns empty string on undef input');
my $str = q{'"&<>'};
is(xml_escape($str), '&apos;&quot;&amp;&lt;&gt;&apos;', 'xml_escape() works as expected');
is($str, q{'"&<>'}, '... and does not change input in place');