File Coverage

blib/lib/Apache2/Controller/Render/Template.pm
Criterion Covered Total %
statement 13 15 86.6
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 18 20 90.0


line stmt bran cond sub pod time code
1             package Apache2::Controller::Render::Template;
2              
3             =head1 NAME
4              
5             Apache2::Controller::Render::Template - A2C render() with Template Toolkit
6              
7             =head1 VERSION
8              
9             Version 1.001.001
10              
11             =cut
12              
13 1     1   2139 use version;
  1         4  
  1         6  
14             our $VERSION = version->new('1.001.001');
15              
16             =head1 SYNOPSIS
17              
18             # apache2 config file
19              
20             PerlLoadModule Apache2::Controller::Directives
21             PerlLoadModule Apache2::Controller::DBI::Connector
22              
23             # location of templates - must be defined
24             A2C_Render_Template_Path /var/myapp/templates /var/myapp/template_components
25              
26            
27             SetHandler modperl
28             PerlInitHandler MyApp::Dispatch::Foo
29              
30             # set directives A2C_DBI_DSN, etc.
31             PerlHeaderParserHandler Apache2::Controller::DBI::Connector
32            
33              
34             See L for A2C Dispatch implementations.
35              
36             See L and L.
37              
38             package MyApp::C::Bar; # let's assume this controller was dispatched
39              
40             use strict;
41             use warnings;
42              
43             use base qw(
44             Apache2::Controller
45             Apache2::Controller::Render::Template
46             );
47              
48             use Apache2::Const -compile => qw( HTTP_OK );
49              
50             sub allowed_methods {qw( default )}
51              
52             sub default {
53             my ($self, @first, @last) = @_;
54             my @path_args = $self->my_detaint_path_args('name'); # from $self->{path_args}
55              
56             $self->{stash}{creditcards} = $self->pnotes->{a2c}{dbh}->fetchall_arrayref(
57             q{ SELECT ccnum, exp, addr1, zip, cac
58             FROM customer_credit_cards
59             WHERE lname = ? AND fname = ?
60             }, undef, @path_args
61             );
62              
63             # request was like http://myserver.xyz/foo/Larry/Wall
64              
65             $self->render(); # renders /var/myapp/templates/foo/default.html
66             return Apache2::Const::HTTP_OK;
67              
68             }
69              
70             __END__
71             [%# /var/myapp/templates/foo/default.html %]
72            

Here is the credit card info you requested for

73             everyone named [% path_args.reverse.join(' ') %]:

74            
75             [% FOREACH card = creditcards %]
76             [% FOREACH field = ['ccnum','exp','addr1','zip','cac'] %]
77            
  • [% field %]: [% card.$field %]
  • 78             [% END %]
    79             [% END %]
    80            
    81             [%# end template toolkit file %]
    82              
    83              
    84             =head1 DESCRIPTION
    85              
    86             This module provides a nice rendering mechanism for Apache2::Controller.
    87              
    88             =head1 TEMPLATE OPTIONS
    89              
    90             You can specify options for L