Bug 6371 Item Types description not properly displayed if not pure ASCII
authorFrédéric Demians <f.demians@tamil.fr>
Thu, 19 May 2011 04:54:38 +0000 (06:54 +0200)
committerChris Cormack <chrisc@catalyst.net.nz>
Sat, 8 Oct 2011 07:10:29 +0000 (20:10 +1300)
In several places, C4::ItemType module is used to retrieve item types
and their description. If the description text contains non-ASCII
characters, those characters are not properly displayed.

This bug can be seen in:

  - 4xx plugin of a UNIMARC DB
  - Home > Admin > Item circulation alerts
  - others?...

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
  - Fixes display probems in circulation alerts and 4xx UNIMARC plugin
  - display in other places looks ok with and without patch

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
C4/ItemType.pm

index e66d917..70d2690 100644 (file)
@@ -73,12 +73,15 @@ C<description>.
 sub all {
     my ($class) = @_;
     my $dbh = C4::Context->dbh;
-    return    map { $class->new($_) }    @{$dbh->selectall_arrayref(
-        # The itemtypes table is small enough for
-        # `SELECT *` to be harmless.
-        "SELECT * FROM itemtypes ORDER BY description",
-        { Slice => {} },
-    )};
+
+    my @itypes;
+    for ( @{$dbh->selectall_arrayref(
+        "SELECT * FROM itemtypes ORDER BY description", { Slice => {} })} )
+    {
+        utf8::encode($_->{description});
+        push @itypes, $class->new($_);
+    }
+    return @itypes;
 }