[Catalyst] :Template() Attribute
Bill Moseley
moseley at hank.org
Mon Jun 18 15:20:16 GMT 2007
On Mon, Jun 18, 2007 at 09:28:36AM +0000, Zbigniew Lukasiak wrote:
> When we are at this View refactoring. When changing the template you
> need to put the whole path on stash ( $c->stash( template =
> template_path/template.tt) ). What I would propose is that the view
> automatically used the $c->action->namespace as the template_path - so
> that you would not need to specify the full path - only the template
> name.
Do you mean instead of $c->action->reverse like C::V::TT does now?
That is, so you always have to specify the template name?
This is what I currently do in my TT view:
sub template_name {
my ( $self, $c ) = @_;
return $c->stash->{template} if $c->stash->{template};
my $extension = $self->config->{TEMPLATE_EXTENSION} || '.tt';
my $template_suffix = delete $c->stash->{template_suffix} || q'';
my $name
= $c->stash->{template_action}
? $c->action->namespace . '/' . $c->stash->{template_action}
: $c->action->reverse;
return $name . $template_suffix . $extension;
}
So, in my case, is setting the template_action stash what you are describing?
I'm wondering how generic setting the template name can be. Do
different templating tools use similar template names, or is this
mostly for TT?
I almost always tweak the template paths, too. Sometimes it's for
skinning/branding or it's for I18N (e.g. root/templates/<language tag>/).
--
Bill Moseley
moseley at hank.org
More information about the Catalyst
mailing list