Catalyst::View::TT::ControllerLocal - Catalyst TT View with template names relative to the Controller
script/myapp_create.pl view TT TTControllerLocal
This creates the MyApp::View::TT class.
#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"); } }
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.
add
MyApp::Controller::Frobniz
$c->stash->{template}
add.html
./root/frobbiz/add.html
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).
MyApp::Controller::Bogon
./root/add.html
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).
edit.html
The constructor for the TT view. Sets up the template provider, and reads the application config.
Render the template specified in $c->stash->{template} or $c->request->match.
$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.
edit
./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.
Johan Lindstrom <johanl ÄT cpan.org>
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:
Non-ASCII character seen before =encoding in 'ÄT'. Assuming CP1252
To install Catalyst::View::TT::ControllerLocal, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catalyst::View::TT::ControllerLocal
CPAN shell
perl -MCPAN -e shell install Catalyst::View::TT::ControllerLocal
For more information on module installation, please visit the detailed CPAN module installation guide.