On 9/13/05, Wojciech Pietron <[EMAIL PROTECTED]> wrote:
> There are some variables that I would like to have defined in all templates
> I am going to use, ie. name of the user, url, sysdate etc.
> 
> The question is: what is the simplest/best practice to maintain global 
> template
> variables and not redefine them all after loading a new template? I am
> specially interested in CAP::AnyTemplate environment.

I know you are looking for AnyTemplate answers, but I thought I would
mention how this is done with the TT plugin.  Everytime you call
tt_process to render a template, an automatic call is made to
tt_pre_process which will receive the template name, and all template
parameters that were passed to tt_process.  This allows you to alter
the parameters at the last moment before the template is rendered. 
here is the relevant section of the docs:

       tt_pre_process

       This is an overridable method that works in the spirit of
       cgiapp_prerun.  The method will be called just before a
       template is processed, and will be passed the same parame-
       ters that were passed to tt_process (ie the template file-
       name, and a hashref of template parameters).  It can be
       used to make last minute changes to the template, or the
       parameters before the template is processed.

Here is a quick example that adds the session object to every template:

sub tt_pre_process {
  my $self = shift;
  my $template = shift;
  my $vars = shift;

  $vars->{session} = $self->session;
}

I believe there is similar functionality in AnyTemplate, but I don't
know the exact syntax...  Check the docs

Cheers,

Cees

---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[email protected]/
              http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to