[Catalyst] context in ::V::TT::new()

KXCG Maas boy.maas at gmail.com
Tue Jul 19 12:09:19 CEST 2005


You can also supply a subroutine ref to fill in the include path using 
the Template Toolkit. This subroutine can use fe a package variable to 
supply a per request include path.

my @INC_TT;

sub set_inc_path { @INC_TT = @_ }
sub get_inc_path { \@INC_TT }

__PACKAGE__->config(
    DEBUG => Battles->debug ? DEBUG_PROVIDER : undef,
    INCLUDE_PATH => [ \&get_inc_path ]
);


-Boy

Todd Holbrook wrote:

>I hadn't checked to see what the performance hit was, but I'll trust
>Perrin's "don't do that".  I'm not sure if access to WRAPPER is
>available in the same way, but this seems to work for my INCLUDE_PATH
>problem.  It's probably not the "right" solution, but after attempting
>to search the various mail lists without coming up with a definitive
>solution I went with this (which is basically stolen from
>CGI::Application::Plugin::TT).  If someone does have a definitive
>solution, I (and others, I'm sure) would love to see it on the wiki.
>
>In App::View::TT which uses Catalyst::View::TT as a base:
>
>sub process { 
>        my $self = shift;
>        my $c    = shift;
>        my $root = $c->config->{root};
>        $self->template->context->load_templates->[0]->include_path([$c->stash->{extra_include_dir},
>$root, "$root/base"]);
>        $self->SUPER::process($c, @_);
>} 
>
>Actually, after preparing this I discovered I may not be able to use
>this after all without doing some other changes as it doesn't pick up
>when a template has been deleted.  I guess it keeps serving it out of
>a cache.  Unfortunately my application has a separate maintenance
>system that allows (trusted) administrators to modify/delete templates
>using a web tool.
>--
>Todd Holbrook
>Systems Consultant
>Simon Fraser University
>
>_______________________________________________
>Catalyst mailing list
>Catalyst at lists.rawmode.org
>http://lists.rawmode.org/mailman/listinfo/catalyst
>
>  
>



More information about the Catalyst mailing list