Apache2-WebApp-Toolkit
view release on metacpan or search on metacpan
lib/Apache2/WebApp/Template.pm view on Meta::CPAN
# new(\%config)
#
# Constructor method used to instantiate a new template object.
sub new {
my $class = shift;
my $config = (ref $_[0] eq 'HASH') ? shift : { @_ };
my $self = bless({}, $class);
return $self->_init($config) || $class->error;
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~[ PRIVATE METHODS ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#----------------------------------------------------------------------------+
# _init(\%config)
#
# Return to the caller a new template object.
sub _init {
my ($self, $config) = @_;
return Template->new(
CACHE_SIZE => $config->{template_cache_size} || 0,
COMPILE_DIR => $config->{template_compile_dir},
INCLUDE_PATH => $config->{template_include_path},
STAT_TTL => $config->{template_stat_ttl},
ENCODING => $config->{template_encoding},
ABSOLUTE => 1
)
or $self->error($Template::ERROR);
}
1;
__END__
=head1 NAME
Apache2::WebApp::Template - Interface to the Template Toolkit
=head1 SYNOPSIS
$c->template->method( ... );
=head1 DESCRIPTION
A persistent template object that provides methods of the Template Toolkit that
are accessible from within your web application using C<%controller>. Template
options can be easily configured in your project I<webapp.conf>
=head1 EXAMPLES
=head2 Template processing
=head3 CONFIG
[template]
cache_size = 100 # total files to store in cache
compile_dir = /path/to/project/tmp/templates # path to template cache
include_path = /path/to/project/templates # path to template directory
stat_ttl = 60 # template to HTML build time (in seconds)
encoding = utf8 # template output encoding
=head3 METHOD
sub _default {
my ($self, $c) @_;
$c->request->content_type('text/html');
$c->template->process(
'file.tt', {
foo => 'bar',
baz => qw( bucket1 bucket2 bucket3 ),
qux => {
key1 => 'value1',
key2 => 'value2',
...
},
...
}
)
or $self->_error($c, 'Template process failed', $c->template->error() );
exit;
}
=head3 TEMPLATE
[% foo %]
[% FOREACH bucket = baz %]
[% bucket %]
[% END %]
[% qux.key1 %]
[% qux.key2 %]
=head1 SEE ALSO
L<Apache2::WebApp>, L<Template::Manual::Syntax>, L<Template::Manual::Directives>,
L<Template::Manual::Variables>, L<Template::Manual::Filters>, L<Template::Manual::VMethods>
=head1 AUTHOR
Marc S. Brooks, E<lt>mbrooks@cpan.orgE<gt> L<http://mbrooks.info>
=head1 COPYRIGHT
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See L<http://dev.perl.org/licenses/artistic.html>
=cut
( run in 2.026 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )