Parser.pm 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. # -*- Mode: perl; indent-tabs-mode: nil -*-
  2. #
  3. # The contents of this file are subject to the Mozilla Public
  4. # License Version 1.1 (the "License"); you may not use this file
  5. # except in compliance with the License. You may obtain a copy of
  6. # the License at http://www.mozilla.org/MPL/
  7. #
  8. # Software distributed under the License is distributed on an "AS
  9. # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  10. # implied. See the License for the specific language governing
  11. # rights and limitations under the License.
  12. #
  13. # The Original Code is the Bugzilla Bug Tracking System.
  14. #
  15. # The Initial Developer of the Original Code is Marc Schumann.
  16. # Portions created by Marc Schumann are Copyright (C) 2008 Marc Schumann.
  17. # All Rights Reserved.
  18. #
  19. # Contributor(s): Marc Schumann <wurblzap@gmail.com>
  20. package Bugzilla::Template::Parser;
  21. use strict;
  22. use base qw(Template::Parser);
  23. sub parse {
  24. my ($self, $text, @params) = @_;
  25. if (Bugzilla->params->{'utf8'}) {
  26. utf8::is_utf8($text) || utf8::decode($text);
  27. }
  28. return $self->SUPER::parse($text, @params);
  29. }
  30. 1;
  31. __END__
  32. =head1 NAME
  33. Bugzilla::Template::Parser - Wrapper around the Template Toolkit
  34. C<Template::Parser> object
  35. =head1 DESCRIPTION
  36. This wrapper makes the Template Toolkit aware of UTF-8 templates.
  37. =head1 SUBROUTINES
  38. =over
  39. =item C<parse($options)>
  40. Description: Parses template text using Template::Parser::parse(),
  41. converting the text to UTF-8 encoding before, if necessary.
  42. Params: C<$text> - Text to pass to Template::Parser::parse().
  43. Returns: Parsed text as returned by Template::Parser::parse().
  44. =back
  45. =head1 SEE ALSO
  46. L<Template>