[Templates] [DOC PATCH] component.caller and component.callers
Dave Cash
dave@gnofn.org
Wed, 17 Mar 2004 11:12:26 -0600 (CST)
As I promised way back on January 18, here's a patch to the 2.13
docs for the 'caller' and 'callers' fields I added to 'component'.
For reference, here's the post with the code patch:
http://template-toolkit.org/pipermail/templates/2004-January/005581.html
Enjoy,
Dave
/L\_/E\_/A\_/R\_/N\_/T\_/E\_/A\_/C\_/H\_/L\_/E\_/A\_/R\_/N\
Dave Cash Power to the People!
Frolicking in Fields of Garlic Right On-Line!
dave@gnofn.org Dig it all.
diff -ru lib/Template/Manual/Variables.pod.orig lib/Template/Manual/Variables.pod
##### BEGIN PATCH #####
--- lib/Template/Manual/Variables.pod.orig Fri Jan 30 12:37:50 2004
+++ lib/Template/Manual/Variables.pod Wed Mar 17 10:00:51 2004
@@ -767,6 +767,36 @@
[% template.name %] # foo
[% component.name %] # footer
+Additionally, the 'component' variable has two special fields:
+'caller' and 'callers'. 'caller' contains the name of the template
+that called the current template (or undef if the values of
+'template' and 'component' are the same). 'callers' contains a
+ref to a list of all the templates that have been called on the
+road to calling the current component template (like a call stack),
+with the outer-most template first.
+
+Here's an example:
+
+'outer.tt2':
+
+ [% component.name %] # 'outer.tt2'
+ [% component.caller %] # undef
+ [% component.callers %] # undef
+ [% PROCESS 'middle.tt2' %]
+
+'middle.tt2':
+
+ [% component.name %] # 'middle.tt2'
+ [% component.caller %] # 'outer.tt2'
+ [% component.callers %] # [ 'outer.tt2' ]
+ [% PROCESS 'inner.tt2' %]
+
+'inner.tt2':
+
+ [% component.name %] # 'inner.tt2'
+ [% component.caller %] # 'middle.tt2'
+ [% component.callers %] # [ 'outer.tt2', 'middle.tt2' ]
+
=item loop
Within a FOREACH loop, the 'loop' variable references the Template::Iterator
###### END PATCH ######
diff -ru docs/src/Manual/Variables.html.orig docs/src/Manual/Variables.html
##### BEGIN PATCH #####
--- docs/src/Manual/Variables.html.orig Fri Jan 30 12:37:18 2004
+++ docs/src/Manual/Variables.html Wed Mar 17 09:56:45 2004
@@ -769,6 +769,39 @@
<pre> [% tt_start_tag %] template.name [% tt_end_tag %] # foo
[% tt_start_tag %] component.name [% tt_end_tag %] # footer</pre>
+<p>
+Additionally, the 'component' variable has two special fields:
+'caller' and 'callers'. 'caller' contains the name of the template
+that called the current template (or undef if the values of
+'template' and 'component' are the same). 'callers' contains a
+ref to a list of all the templates that have been called on the
+road to calling the current component template (like a call stack),
+with the outer-most template first.
+</p>
+<p>
+Here's an example:
+</p>
+<p>
+'outer.tt2':
+</p>
+<pre> [% tt_start_tag %] component.name [% tt_end_tag %] # 'outer.tt2'
+ [% tt_start_tag %] component.caller [% tt_end_tag %] # undef
+ [% tt_start_tag %] component.callers [% tt_end_tag %] # undef
+ [% tt_start_tag %] PROCESS 'middle.tt2' [% tt_end_tag %]</pre>
+<p>
+'middle.tt2':
+</p>
+<pre> [% tt_start_tag %] component.name [% tt_end_tag %] # 'middle.tt2'
+ [% tt_start_tag %] component.caller [% tt_end_tag %] # 'outer.tt2'
+ [% tt_start_tag %] component.callers [% tt_end_tag %] # [ 'outer.tt2' ]
+ [% tt_start_tag %] PROCESS 'inner.tt2' [% tt_end_tag %]</pre>
+<p>
+'inner.tt2':
+</p>
+<pre> [% tt_start_tag %] component.name [% tt_end_tag %] # 'inner.tt2'
+ [% tt_start_tag %] component.caller [% tt_end_tag %] # 'middle.tt2'
+ [% tt_start_tag %] component.callers [% tt_end_tag %] # [ 'outer.tt2', 'middle.tt2' ]</pre>
+
<li><b>loop</b><br>
<p>
Within a FOREACH loop, the 'loop' variable references the Template::Iterator
###### END PATCH ######