Tim Keefer wrote:
I would like to modify some of the template configuration options after the TT object is created. For example, I'd like to change the WRAPPER setting "midstream" without having to recreate the TT object. As far as I can tell, the WRAPPER setting must be passed to the constructor. Is there already a way to do this?

my $tt = Template->new({
WRAPPER         => 'wrapper1.tt',
INCLUDE_PATH    => '/mydir',       });

# maybe do something like this
$tt->wrapper( 'new_wrapper.tt' );
or
$tt->set_wrapper( 'new_wrapper.tt' );


After you do Template->new, you could do:
$tt->service->{WRAPPER} = ['new_wrapper.tt'];

Although, I might be wary of doing that since that behavior could change. 
(Generally a bad idea to modify another classes parts.) I also have no clue if 
that would have any side-effects. ( I didn't look at the code that closely. 
It's in Template/Service.pm if you want to take a gander. Might need to check 
elsewhere as well, though.)

A couple of alternatives:
*) Use a code routine for include path and toggle the first search directory 
based on what you need to do. (Just keep the same wrapper name, but put the 
wrappers in different directories.
*) make your wrapper do the decision to use a different template. In essence, 
it'd just be a shell. For example:
[% IF foo %]
[% PROCESS new_wrapper.tt %]
[% ELSE %]
[% PROCESS wrapper_default.tt %]
[% END %]

-- Josh

_______________________________________________
templates mailing list
[email protected]
http://lists.template-toolkit.org/mailman/listinfo/templates

Reply via email to