[Dancer-users] Private template in Dancer

igor.bujna at post.cz igor.bujna at post.cz
Wed Jun 30 13:54:13 CEST 2010


Hello,
in function 'sub run_before_template_filters' will be beter put this code $tokens->{$k} = $d if (!exists($tokens->{$k})); To controling if from function before_template can't change something putted in $tokens in given function.

My idea with before_template is this. I want put some standart definition like own function which wil be called from every template or given template enabled or disabled via options 'before_template' in template definition. 

Like this:

use URI::Escape ();
set before_template => '1';
before_template sub {
    return {
        urlencode => sub { return URI::Escape::uri_escape(@_); },
        urldecode => sub { return URI::Escape::uri_unescape(@_); },
    };
};

Now in every called template i can use function for decode|encode codepage string like this:
[% urlencode(" hello " %]

 
> ------------ Původní zpráva ------------
> Od:  <igor.bujna at post.cz>
> Předmět: Re: [Dancer-users] Private template in Dancer
> Datum: 30.6.2010 07:50:40
> ----------------------------------------
> Hello,
> i make cleaner code for "private template". I use similar code as "before"
> filter. Better is when you looking my patch than I write how it works.  Now its
> simply and cleaner :)
> 
> 
> > ------------ Původní zpráva ------------
> > Od: David Precious <davidp at preshweb.co.uk>
> > Předmět: Re: [Dancer-users] Private template in Dancer
> > Datum: 15.6.2010 12:06:54
> > ----------------------------------------
> > On Tuesday 15 June 2010 09:18:11 Alexis Sukrieh wrote:
> > > Le 15/06/2010 09:14, igor.bujna at post.cz a écrit :
> > > > Now in
> > > > every template i can use this variables via 'private' call. It must be
> > > > enabled for every template via set private_template =>  '1' Or can
> > > > enabled or disabled separately in options 'private_template' in given
> > > > using template.
> > > >
> > > >   It would be good to make something similar in this framework.
> > 
> > > My first opinion is that using settings for private template variables
> > > is not a good idea. Setting should remain.... setting ;)
> > 
> > Agreed :)
> > 
> > > We also had in mind to provide a new kind of hook, called
> > > "before_template" which could process variables before any template is
> > > called.
> > 
> > I would definitely agree, this is a good case where using a before_template 
> > hook would be nice, it could inject whatever params it wanted into the hashref
> 
> > of params about to be passed off to the template.
> > 
> > FWIW, one way that may be suitable to handle this is to shove something in the
> 
> > session, if you're using sessions, then the template can access that.
> > 
> > For instance, 
> > 
> > session 'foo' => $foo;
> > 
> > Then, in the template,
> > 
> > [% session.foo %]
> > 
> > Once we have proper hook support, implementing it with a before_template hook
> 
> > would probably be cleaner, though!
> > 
> > _______________________________________________
> > Dancer-users mailing list
> > Dancer-users at perldancer.org
> > http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
> > 
> > 
> > 
> 
> 


More information about the Dancer-users mailing list