Re: [SMARTY-DEV] knowing your template

[email protected] ("messju mohr") Tue, 13 Dec 2005 00:02:51 +0100
Newsgroups php.smarty.dev
Message-ID <20051212230251.GB15899@dune>
On Mon, Dec 12, 2005 at 11:27:12PM +0100, [email protected] wrote:
> boots wrote:
> >No, unfortuantely there is not. If you are in a compiler function (or a
> >prefilter) you can access a private member, $compiler->_current_file --
> >which is the fullpath to the actual template file -- but if you want to
> >use it after compile time, you will need to insert a corresponding
> >assignment into the template code. There shouldn't be a problem with
> >nesting as scope is restored after an include is completed.
> 
> Is there a plan for this in 3.0 or so?

You can automate that very easy. write a prefilter that prepends
'{assign var=current_template value=$smarty.template}' to each source.

you can access $smarty->get_template_vars('current_template') inside
your plugins then. and smarty does the bookkeeping of nesting
automagically since it restores the old value of $current_template
when the template is left (you cannot change vars of including
templates inside included template)

have fun
messju