diff options
author | wurblzap%gmail.com <> | 2008-02-14 05:40:10 +0100 |
---|---|---|
committer | wurblzap%gmail.com <> | 2008-02-14 05:40:10 +0100 |
commit | 73a63de1cd7bffc8d9d41df8c4c99fc34886247c (patch) | |
tree | 9370965f557fd040b9f0feaf2a82e3c8bfb5f300 /Bugzilla/Template | |
parent | a69f0f970db82cc5c4c0fab3bedd4197d6005f2b (diff) | |
download | bugzilla-73a63de1cd7bffc8d9d41df8c4c99fc34886247c.tar.gz bugzilla-73a63de1cd7bffc8d9d41df8c4c99fc34886247c.tar.xz |
Bug 413121 â UTF-8 in templates are garbaged.
Patch by Marc Schumann <wurblzap@gmail.com>;
r=mkanat, a=mkanat
Diffstat (limited to 'Bugzilla/Template')
-rwxr-xr-x | Bugzilla/Template/Parser.pm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Bugzilla/Template/Parser.pm b/Bugzilla/Template/Parser.pm new file mode 100755 index 000000000..0965e078e --- /dev/null +++ b/Bugzilla/Template/Parser.pm @@ -0,0 +1,66 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Marc Schumann. +# Portions created by Marc Schumann are Copyright (C) 2008 Marc Schumann. +# All Rights Reserved. +# +# Contributor(s): Marc Schumann <wurblzap@gmail.com> + + +package Bugzilla::Template::Parser; + +use strict; + +use base qw(Template::Parser); + +sub parse { + my ($self, $text, @params) = @_; + if (Bugzilla->params->{'utf8'}) { + utf8::is_utf8($text) || utf8::decode($text); + } + return $self->SUPER::parse($text, @params); +} + +1; + +__END__ + +=head1 NAME + +Bugzilla::Template::Parser - Wrapper around the Template Toolkit +C<Template::Parser> object + +=head1 DESCRIPTION + +This wrapper makes the Template Toolkit aware of UTF-8 templates. + +=head1 SUBROUTINES + +=over + +=item C<parse($options)> + +Description: Parses template text using Template::Parser::parse(), +converting the text to UTF-8 encoding before, if necessary. + +Params: C<$text> - Text to pass to Template::Parser::parse(). + +Returns: Parsed text as returned by Template::Parser::parse(). + +=back + +=head1 SEE ALSO + +L<Template> |