kivitendo/SL/Template/Plugin/Base64.pm @ ac51747a
9cddaf37 | Moritz Bunkus | package SL::Template::Plugin::Base64;
|
|
use strict;
|
|||
use vars qw($VERSION);
|
|||
$VERSION = 0.01;
|
|||
use base qw(Template::Plugin);
|
|||
use Template::Plugin;
|
|||
use Template::Stash;
|
|||
use MIME::Base64 ();
|
|||
$Template::Stash::SCALAR_OPS->{'encode_base64'} = \&_encode_base64;
|
|||
$Template::Stash::SCALAR_OPS->{'decode_base64'} = \&_decode_base64;
|
|||
sub new {
|
|||
my ($class, $context, $options) = @_;
|
|||
$context->define_filter('encode_base64', \&_encode_base64);
|
|||
$context->define_filter('decode_base64', \&_decode_base64);
|
|||
return bless {}, $class;
|
|||
}
|
|||
sub _encode_base64 {
|
|||
return MIME::Base64::encode_base64(shift, '');
|
|||
}
|
|||
sub _decode_base64 {
|
|||
my ($self, $var) = @_;
|
|||
return MIME::Base64::decode_base64(shift);
|
|||
}
|
|||
1;
|
|||
__END__
|
|||
=head1 NAME
|
|||
SL::Template::Plugin::Base64 - TT2 interface to base64 encoding/decoding
|
|||
=head1 SYNOPSIS
|
|||
[% USE Base64 -%]
|
|||
[% SELF.some_object.binary_stuff.encode_base64 -%]
|
|||
[% SELF.some_object.binary_stuff FILTER encode_base64 -%]
|
|||
=head1 DESCRIPTION
|
|||
The I<Base64> Template Toolkit plugin provides access to the Base64
|
|||
routines from L<MIME::Base64>.
|
|||
The following filters (and vmethods of the same name) are installed
|
|||
into the current context:
|
|||
=over 4
|
|||
=item C<encode_base64>
|
|||
Returns the string encoded as Base64.
|
|||
=item C<decode_base64>
|
|||
Returns the Base64 string decoded back to binary.
|
|||
=back
|
|||
As the filters are also available as vmethods the following are all
|
|||
equivalent:
|
|||
FILTER encode_base64; content; END;
|
|||
content FILTER encode_base64;
|
|||
content.encode_base64;
|
|||
=head1 AUTHOR
|
|||
Moritz Bunkus E<lt>m.bunkus@linet-services.de<gt>
|
|||
=cut
|