Josh Rosenbaum wrote:
Robin Smidsrød wrote:
One a sidenote, is there some way for an object method to know if it is being called from a template (instead of from normal perl code)? Is there some variable that is set that the function has access to which is not set otherwise? Or can I use some kind of function (caller) to inspect the call stack to figure it out? My object contains both read and write methods, and I want to make sure the write method calls are not callable from within a template, only from native perl code. Any pointers would be most helpful.

If you have access to all the code, you could just set a global variable right before processing the template and then check for that in your function.
Hmmm... That is a reasonable suggestion. In my current setup this might work.

But my next question is then, how can I go about to set this variable automatically when $tt->process() is called? This way I don't have to change the many occurences of $tt->process() in my code. Are there some variable in the tt init code which could be set to a callback which is automatically run whenever I execute $tt->process?

I was looking through the code, and the only thing I could think of that could possible work is to use the [% CALL %] method, but then there is also the question of how to prepend this chunk of code in front of all the other templates without having to subclass Template...?

Suggestions?


-- Robin

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

Reply via email to