NAME
Catalyst::View::TT::ControllerLocal - Catalyst TT View with template names relative to the Controller
SYNOPSIS
Use the helper to create a View class for your
script/myapp_create.pl view TT TTControllerLocal
This creates the MyApp::View::TT class.
Forward to the View like you normally would
#Meanwhile, maybe in a private end action
if(!$c->res->body) {
if($c->stash->{template}) {
$c->forward('MyApp::View::TT');
} else {
die("No output method!\n");
}
}
DESCRIPTION
Catalyst::View::TT::ControllerLocal is like a normal Catalyst TT View, but with template file names relative to the current Controller. So with a set of templates like:
./root/edit.html
./root/add.html
./root/Frobniz/add.html
and an action add
in the Controller MyApp::Controller::Frobniz
, you set $c->stash->{template}
to add.html
in order for it to pick up the ./root/frobbiz/add.html
template.
Setting the $c->stash->{template}
from Controller MyApp::Controller::Bogon
would instead pick the default template in ./root/add.html
(since there is no Bogon subdirectory under root).
In addition, since there is no file edit.html
except in the Frobniz directory, C::V::TT::ControllerLocal will default to looking for edit.html
in ./root/ and ./root/base (or whatever you set MyApp->config->{INCLUDE_PATH} to).
METHODS
new
The constructor for the TT view. Sets up the template provider, and reads the application config.
process
Render the template specified in $c->stash->{template}
or $c->request->match
.
The template file name is fetched from one of the Template's include_paths. The name of the current action's namespace is prepended to this list, so for the action edit
in MyApp::Controller::Frobniz
, the prepended directory is ./root/frobniz
.
Example: If $c->stash->{template}
= edit.html
you can put a specific template in ./root/myaction/edit.html, or a general template in ./root/base/edit.html or ./root/edit.html.
If the action is MyApp::Controller::MyAction, the specific template is used. If the action is MyApp::Controller::MyOtherAction, the ./root/base/edit.html is used.
See also: Catalyst::View::TT::process.
AUTHOR
Johan Lindstrom <johanl ÄT cpan.org>
LICENSE
This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 146:
Non-ASCII character seen before =encoding in 'ÄT'. Assuming CP1252