Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
73a63de1
Commit
73a63de1
authored
Feb 14, 2008
by
wurblzap%gmail.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 413121 â UTF-8 in templates are garbaged.
Patch by Marc Schumann <wurblzap@gmail.com>; r=mkanat, a=mkanat
parent
a69f0f97
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
89 additions
and
0 deletions
+89
-0
Template.pm
Bugzilla/Template.pm
+23
-0
Parser.pm
Bugzilla/Template/Parser.pm
+66
-0
No files found.
Bugzilla/Template.pm
View file @
73a63de1
...
...
@@ -41,6 +41,7 @@ use Bugzilla::Util;
use
Bugzilla::
User
;
use
Bugzilla::
Error
;
use
Bugzilla::
Status
;
use
Bugzilla::Template::
Parser
;
use
Cwd
qw(abs_path)
;
use
MIME::
Base64
;
...
...
@@ -54,6 +55,28 @@ use IO::Dir;
use
base
qw(Template)
;
# As per the Template::Base documentation, the _init() method is being called
# by the new() constructor. We take advantage of this in order to plug our
# UTF-8-aware Parser object in neatly after the original _init() method has
# happened, in particular, after having set up the constants namespace.
# See bug 413121 for details.
sub
_init
{
my
$self
=
shift
;
my
$config
=
$_
[
0
];
$self
->
SUPER::
_init
(
@_
)
||
return
undef
;
$self
->
{
PARSER
}
=
$config
->
{
PARSER
}
=
new
Bugzilla::Template::
Parser
(
$config
);
# Now we need to re-create the default Service object, making it aware
# of our Parser object.
$self
->
{
SERVICE
}
=
$config
->
{
SERVICE
}
=
Template::
Config
->
service
(
$config
);
return
$self
;
}
# Convert the constants in the Bugzilla::Constants module into a hash we can
# pass to the template object for reflection into its "constants" namespace
# (which is like its "variables" namespace, but for constants). To do so, we
...
...
Bugzilla/Template/Parser.pm
0 → 100755
View file @
73a63de1
# -*- 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>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment