package SL::Template::Plugin::JavaScript;
-use base qw( Template::Plugin );
-use Template::Plugin;
+use base qw( Template::Plugin::Filter );
use strict;
+my $cached_instance;
+
sub new {
- my ($class, $context, @args) = @_;
+ my $class = shift;
+
+ return $cached_instance ||= $class->SUPER::new(@_);
+}
+
+sub init {
+ my $self = shift;
+
+ $self->install_filter($self->{ _ARGS }->[0] || 'js');
- return bless {
- CONTEXT => $context,
- }, $class;
+ return $self;
}
#
return $text;
}
+sub filter {
+ my ($self, $text) = @_;
+ return $self->escape($text);
+}
+
sub replace_with {
return _replace_helper('replaceWith', @_);
}
<input type="submit" value="Delete"
onclick="if (confirm('Do you really want to delete this: [% JavaScript.escape(obj.description) %]') return true; else return false;">
+You can also use the filter syntax instead:
+
+ <input type="submit" value="Delete"
+ onclick="if (confirm('Do you really want to delete this: [% obj.description | js %]') return true; else return false;">
+
=item C<replace_with $selector, $template, %locals>
Returns code replacing the DOM elements matched by C<$selector> with