diff options
| author | Andreas Mair <amair.sob@googlemail.com> | 2006-10-27 12:00:31 +0200 |
|---|---|---|
| committer | Andreas Mair <amair.sob@googlemail.com> | 2006-10-27 12:00:31 +0200 |
| commit | 24b39843b935f8a37b2d9dc909a530b771a61c1f (patch) | |
| tree | 73869bd46144e37f32bdc6bff4f93453425f4951 /lib/Template/Plugin/JavaScript.pm | |
| parent | 86c56591df441fad78ac69d2f77196df05305758 (diff) | |
| download | vdradmin-am-3.5.0beta.tar.gz vdradmin-am-3.5.0beta.tar.bz2 | |
2006-10-27: 3.5.0betav3.5.0beta
- Added: script to convert existing AutoTimers to epgsearch (autotimer2searchtimer.pl).
- Added: Hack for MSIE to always show vertical scroller to prevent horizontal scroller (Submitted by Udo Richter).
- Added: Support for epgsearch plugin; AutoTimer now considered deprecated and unsupported.
- Minor bugfixes
Diffstat (limited to 'lib/Template/Plugin/JavaScript.pm')
| -rw-r--r-- | lib/Template/Plugin/JavaScript.pm | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/lib/Template/Plugin/JavaScript.pm b/lib/Template/Plugin/JavaScript.pm new file mode 100644 index 0000000..4a82b60 --- /dev/null +++ b/lib/Template/Plugin/JavaScript.pm @@ -0,0 +1,73 @@ +package Template::Plugin::JavaScript; + +use strict; +use vars qw($VERSION); +$VERSION = '0.01'; + +require Template::Plugin; +use base qw(Template::Plugin); + +use vars qw($FILTER_NAME); +$FILTER_NAME = 'js'; + +sub new { + my($self, $context, @args) = @_; + my $name = $args[0] || $FILTER_NAME; + $context->define_filter($name, \&encode_js, 0); + return $self; +} + +sub encode_js { + local $_ = shift; + return '' unless defined $_; + + s!(['"])!\\$1!g; + s!\n!\\n!g; + s!\f!\\f!g; + s!\r!\\r!g; + s!\t!\\t!g; + $_; +} + +1; +__END__ + +=head1 NAME + +Template::Plugin::JavaScript - Encodes text to be safe in JavaScript + +=head1 SYNOPSIS + + [% USE JavaScript %] + <script type="text/javascript"> + document.write("[% sometext | js %]"); + </script> + +=head1 DESCRIPTION + +Template::Plugin::JavaScript is a TT filter that filters text so it +can be safely used in JavaScript quotes. + + [% USE JavaScript %] + document.write("[% FILTER js %] + Here's some text going on. + [% END %]"); + +will become: + + document.write("\nHere\'s some text going on.\n"); + +=head1 AUTHOR + +The original idea comes from Movable Type's C<encode_js> global filter. + +Tatsuhiko Miyagawa E<lt>miyagawa@bulknews.netE<gt> + +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=head1 SEE ALSO + +L<Apache::JavaScript::DocumentWrite> + +=cut |
