Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

* fixed up bug in XS stash introduced with SCALAR_OPS lookup added to…

… fallback

  after failed object methods

* prep for release 2.06c


git-svn-id: svn://svn.tt2.org/tt/Template2/trunk@280 d5a88997-0a34-4036-9ed2-92fb5d660d91
  • Loading branch information...
commit e9d30219e9ffd4e98402ed234fcead4dcabf248a 1 parent dc7f069
@abw authored
Showing with 1,209 additions and 808 deletions.
  1. +19 −2 Changes
  2. +2 −2 HACKING
  3. +9 −9 INSTALL
  4. +8 −5 Makefile.PL
  5. +5 −5 README
  6. +1 −1  TODO
  7. +1 −1  bin/release
  8. +3 −3 bin/tpage
  9. +3 −3 bin/ttree
  10. +146 −131 docs/lib/docset/config
  11. +2 −2 docs/src/FAQ/FAQ.html
  12. +2 −2 docs/src/Library/HTML.html
  13. +2 −2 docs/src/Library/PostScript.html
  14. +2 −2 docs/src/Library/Splash.html
  15. +1 −1  docs/src/Manual/Config.html
  16. +2 −1  docs/src/Manual/Credits.html
  17. +1 −1  docs/src/Manual/Directives.html
  18. +1 −1  docs/src/Manual/Filters.html
  19. +1 −1  docs/src/Manual/Internals.html
  20. +1 −1  docs/src/Manual/Intro.html
  21. +1 −1  docs/src/Manual/Plugins.html
  22. +1 −1  docs/src/Manual/Refs.html
  23. +1 −1  docs/src/Manual/Syntax.html
  24. +1 −1  docs/src/Manual/Variables.html
  25. +1 −1  docs/src/Manual/Views.html
  26. +1 −1  docs/src/Modules/Template.html
  27. +2 −2 docs/src/Modules/Template/Base.html
  28. +2 −2 docs/src/Modules/Template/Config.html
  29. +3 −3 docs/src/Modules/Template/Constants.html
  30. +2 −2 docs/src/Modules/Template/Context.html
  31. +2 −2 docs/src/Modules/Template/Document.html
  32. +2 −2 docs/src/Modules/Template/Exception.html
  33. +2 −2 docs/src/Modules/Template/Filters.html
  34. +2 −2 docs/src/Modules/Template/Iterator.html
  35. +2 −2 docs/src/Modules/Template/Parser.html
  36. +2 −2 docs/src/Modules/Template/Plugin.html
  37. +2 −2 docs/src/Modules/Template/Plugin/Autoformat.html
  38. +3 −3 docs/src/Modules/Template/Plugin/CGI.html
  39. +252 −138 docs/src/Modules/Template/Plugin/DBI.html
  40. +2 −2 docs/src/Modules/Template/Plugin/Datafile.html
  41. +3 −3 docs/src/Modules/Template/Plugin/Date.html
  42. +2 −2 docs/src/Modules/Template/Plugin/Directory.html
  43. +2 −2 docs/src/Modules/Template/Plugin/Dumper.html
  44. +2 −2 docs/src/Modules/Template/Plugin/File.html
  45. +2 −2 docs/src/Modules/Template/Plugin/Format.html
  46. +2 −2 docs/src/Modules/Template/Plugin/GD/Constants.html
  47. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/area.html
  48. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/bars.html
  49. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/bars3d.html
  50. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/lines.html
  51. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/lines3d.html
  52. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/linespoints.html
  53. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/mixed.html
  54. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/pie.html
  55. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/pie3d.html
  56. +2 −2 docs/src/Modules/Template/Plugin/GD/Graph/points.html
  57. +2 −2 docs/src/Modules/Template/Plugin/GD/Image.html
  58. +2 −2 docs/src/Modules/Template/Plugin/GD/Polygon.html
  59. +2 −2 docs/src/Modules/Template/Plugin/GD/Text.html
  60. +2 −2 docs/src/Modules/Template/Plugin/GD/Text/Align.html
  61. +2 −2 docs/src/Modules/Template/Plugin/GD/Text/Wrap.html
  62. +2 −2 docs/src/Modules/Template/Plugin/HTML.html
  63. +2 −2 docs/src/Modules/Template/Plugin/Iterator.html
  64. +2 −2 docs/src/Modules/Template/Plugin/Pod.html
  65. +2 −2 docs/src/Modules/Template/Plugin/Table.html
  66. +2 −2 docs/src/Modules/Template/Plugin/URL.html
  67. +2 −2 docs/src/Modules/Template/Plugin/View.html
  68. +2 −2 docs/src/Modules/Template/Plugin/Wrap.html
  69. +1 −1  docs/src/Modules/Template/Plugin/XML/DOM.html
  70. +2 −2 docs/src/Modules/Template/Plugin/XML/RSS.html
  71. +2 −2 docs/src/Modules/Template/Plugin/XML/Simple.html
  72. +2 −2 docs/src/Modules/Template/Plugin/XML/XPath.html
  73. +2 −2 docs/src/Modules/Template/Plugins.html
  74. +2 −2 docs/src/Modules/Template/Provider.html
  75. +2 −2 docs/src/Modules/Template/Service.html
  76. +2 −2 docs/src/Modules/Template/Stash.html
  77. +2 −2 docs/src/Modules/Template/Stash/Context.html
  78. +1 −1  docs/src/Modules/Template/Stash/XS.html
  79. +2 −2 docs/src/Modules/Template/Test.html
  80. +1 −1  docs/src/Modules/index.html
  81. +23 −2 docs/src/Release/Changes.html
  82. +2 −2 docs/src/Release/HACKING.html
  83. +9 −9 docs/src/Release/INSTALL.html
  84. +5 −5 docs/src/Release/README.html
  85. +2 −2 docs/src/Release/TODO.html
  86. +2 −2 docs/src/Tools/tpage.html
  87. +2 −2 docs/src/Tools/ttree.html
  88. +1 −1  docs/src/Tutorial/Datafile.html
  89. +2 −2 docs/src/Tutorial/Web.html
  90. +1 −1  docs/src/index.html
  91. +6 −0 docsrc/src/Modules/Template/Plugin/DBI.tt2
  92. +8 −4 docsrc/src/Release/Changes.tt2
  93. +1 −1  docsrc/src/Release/TODO.tt2
  94. +2 −2 lib/Template.pm
  95. +3 −3 lib/Template/Base.pm
  96. +3 −3 lib/Template/Config.pm
  97. +3 −3 lib/Template/Constants.pm
  98. +3 −3 lib/Template/Context.pm
  99. +3 −3 lib/Template/Document.pm
  100. +3 −3 lib/Template/Exception.pm
  101. +3 −3 lib/Template/FAQ.pod
  102. +3 −3 lib/Template/Filters.pm
  103. +3 −3 lib/Template/Iterator.pm
  104. +4 −4 lib/Template/Library/HTML.pod
  105. +3 −3 lib/Template/Library/PostScript.pod
  106. +4 −4 lib/Template/Library/Splash.pod
  107. +1 −1  lib/Template/Manual.pod
  108. +1 −1  lib/Template/Manual/Config.pod
  109. +2 −1  lib/Template/Manual/Credits.pod
  110. +1 −1  lib/Template/Manual/Directives.pod
  111. +1 −1  lib/Template/Manual/Filters.pod
  112. +1 −1  lib/Template/Manual/Internals.pod
  113. +1 −1  lib/Template/Manual/Intro.pod
  114. +1 −1  lib/Template/Manual/Plugins.pod
  115. +1 −1  lib/Template/Manual/Refs.pod
  116. +1 −1  lib/Template/Manual/Syntax.pod
  117. +1 −1  lib/Template/Manual/Variables.pod
  118. +1 −1  lib/Template/Manual/Views.pod
  119. +2 −2 lib/Template/Modules.pod
  120. +2 −2 lib/Template/Parser.pm
  121. +3 −3 lib/Template/Plugin.pm
  122. +2 −2 lib/Template/Plugin/Autoformat.pm
  123. +3 −3 lib/Template/Plugin/CGI.pm
  124. +234 −99 lib/Template/Plugin/DBI.pm
  125. +3 −3 lib/Template/Plugin/Datafile.pm
  126. +3 −3 lib/Template/Plugin/Date.pm
  127. +2 −2 lib/Template/Plugin/Directory.pm
  128. +2 −2 lib/Template/Plugin/Dumper.pm
  129. +2 −2 lib/Template/Plugin/File.pm
  130. +3 −3 lib/Template/Plugin/Filter.pm
  131. +3 −3 lib/Template/Plugin/Format.pm
  132. +3 −3 lib/Template/Plugin/GD/Constants.pm
  133. +3 −3 lib/Template/Plugin/GD/Graph/area.pm
  134. +3 −3 lib/Template/Plugin/GD/Graph/bars.pm
  135. +3 −3 lib/Template/Plugin/GD/Graph/bars3d.pm
  136. +3 −3 lib/Template/Plugin/GD/Graph/lines.pm
  137. +3 −3 lib/Template/Plugin/GD/Graph/lines3d.pm
  138. +3 −3 lib/Template/Plugin/GD/Graph/linespoints.pm
  139. +3 −3 lib/Template/Plugin/GD/Graph/mixed.pm
  140. +3 −3 lib/Template/Plugin/GD/Graph/pie.pm
  141. +3 −3 lib/Template/Plugin/GD/Graph/pie3d.pm
  142. +3 −3 lib/Template/Plugin/GD/Graph/points.pm
  143. +3 −3 lib/Template/Plugin/GD/Image.pm
  144. +3 −3 lib/Template/Plugin/GD/Polygon.pm
  145. +3 −3 lib/Template/Plugin/GD/Text.pm
  146. +3 −3 lib/Template/Plugin/GD/Text/Align.pm
  147. +3 −3 lib/Template/Plugin/GD/Text/Wrap.pm
  148. +3 −3 lib/Template/Plugin/HTML.pm
  149. +3 −3 lib/Template/Plugin/Iterator.pm
  150. +3 −3 lib/Template/Plugin/Pod.pm
  151. +3 −3 lib/Template/Plugin/String.pm
  152. +3 −3 lib/Template/Plugin/Table.pm
  153. +3 −3 lib/Template/Plugin/URL.pm
  154. +3 −3 lib/Template/Plugin/View.pm
  155. +2 −2 lib/Template/Plugin/Wrap.pm
  156. +1 −1  lib/Template/Plugin/XML/DOM.pm
  157. +2 −2 lib/Template/Plugin/XML/RSS.pm
  158. +2 −2 lib/Template/Plugin/XML/Simple.pm
  159. +3 −3 lib/Template/Plugin/XML/Style.pm
  160. +2 −2 lib/Template/Plugin/XML/XPath.pm
  161. +3 −3 lib/Template/Plugins.pm
  162. +3 −3 lib/Template/Provider.pm
  163. +3 −3 lib/Template/Service.pm
  164. +2 −2 lib/Template/Stash.pm
  165. +3 −3 lib/Template/Stash/Context.pm
  166. +1 −1  lib/Template/Stash/XS.pm
  167. +3 −3 lib/Template/Test.pm
  168. +3 −3 lib/Template/Tools/tpage.pod
  169. +3 −3 lib/Template/Tools/ttree.pod
  170. +1 −1  lib/Template/Tutorial.pod
  171. +1 −1  lib/Template/Tutorial/Datafile.pod
  172. +2 −2 lib/Template/Tutorial/Web.pod
  173. +1 −1  t/datafile.t
  174. +126 −14 t/dbi.t
  175. +9 −39 t/stash.t
  176. +1 −0  t/string.t
  177. +6 −5 xs/Stash.xs
View
21 Changes
@@ -3,7 +3,7 @@
# Changes
#
# DESCRIPTION
-# Revision history for the Template Toolkit version 2.06b, detailing
+# Revision history for the Template Toolkit version 2.06c, detailing
# significant changes between versions, most recent first. Some
# way down the file you'll find a section detailing major changes from
# version 1.* to 2.* and a list of "Gotchas!" that you might have to
@@ -17,7 +17,21 @@
#========================================================================
#------------------------------------------------------------------------
-# Version 2.06b - 29th November 2001 ## DEVELOPER RELEASE ##
+# Version 2.06c - ## DEVELOPER RELEASE ##
+#------------------------------------------------------------------------
+
+* Changed both Perl and XS Stash modules to try to apply a SCALAR_OPS
+ virtual method to a blessed object as a last-ditch chance if all else
+ fails. Thanks to Tony Bowden for reporting the problem. See
+ http://tt2.org/pipermail/templates/2001-December/002263.html
+
+* Added tie() method to DBI plugin based on some plugin code sent to me
+ courtesy of Dave Hodgkinson. Also made various minor cleanups to DBI
+ code and updated documentation and tests.
+
+
+#------------------------------------------------------------------------
+# Version 2.06b - 2nd December 2001 ## DEVELOPER RELEASE ##
#------------------------------------------------------------------------
* Added the Template::Plugin::Filter module to make plugin filters
@@ -42,6 +56,9 @@
object has an overloaded stringification operator which gets called
(but shouldn't) and could return an untrue (but correct) value.
+* Fixed t/dumper.t to only have one entry in each hash to avoid hash
+ ordering problems. Thanks to Randal for reporting the problem.
+
* Added the assert() subroutine to Template::Test.
* Added some more content to the FAQ.
View
4 HACKING
@@ -1,9 +1,9 @@
Template Toolkit
- Version 2.06b
+ Version 2.06c
- 29 November 2001
+ 13 December 2001
Copyright (C) 1996-2001 Andy Wardley. All Rights Reserved
Copyright (C) 1998-2001 Canon Research Centre Europe Ltd.
View
18 INSTALL
@@ -1,9 +1,9 @@
Template Toolkit
- Version 2.06b
+ Version 2.06c
- 29 November 2001
+ 13 December 2001
Copyright (C) 1996-2001 Andy Wardley. All Rights Reserved
Copyright (C) 1998-2001 Canon Research Centre Europe Ltd.
@@ -42,8 +42,8 @@ need to install them. They're all available from CPAN if you do.
To install the Template Toolkit:
- tar zxf Template-Toolkit-2.06b.tar.gz
- cd Template-Toolkit-2.06b
+ tar zxf Template-Toolkit-2.06c.tar.gz
+ cd Template-Toolkit-2.06c
perl Makefile.PL
make
make test
@@ -129,19 +129,19 @@ The Template Toolkit is distributed as a gzipped tar archive file:
Template-Toolkit-<version>.tar.gz
-where <version> represents the current version number, e.g. 2.06b.
+where <version> represents the current version number, e.g. 2.06c.
To install the Template Toolkit, unpack the distribution archive to
create an installation directory. Something like this:
- tar zxf Template-Toolkit-2.06b.tar.gz
+ tar zxf Template-Toolkit-2.06c.tar.gz
or
- gunzip Template-Toolkit-2.06b.tar.gz
- tar xf Template-Toolkit-2.06b.tar
+ gunzip Template-Toolkit-2.06c.tar.gz
+ tar xf Template-Toolkit-2.06c.tar
You can then 'cd' into the directory created,
- cd Template-Toolkit-2.06b
+ cd Template-Toolkit-2.06c
and perform the usual Perl installation procedure:
View
13 Makefile.PL
@@ -401,6 +401,7 @@ EOF
[ 'GD::Graph3d' => undef ],
[ 'Date::Calc' => undef ],
[ 'Pod::POM' => undef ],
+ [ 'Tie::DBI' => undef ],
[ 'XML::DOM' => \&check_dom ],
[ 'XML::RSS' => \&check_rss ],
[ 'XML::XPath' => \&check_xpath ],
@@ -441,8 +442,9 @@ XS Stash: TT2 now twice as fast!
We have a new high speed version of the Template::Stash. It's
a Perl XS module which can evaluate templates about twice as fast as
-the pure-Perl version. It is still officially "experimental" but
-is thought to be generally stable and reliable.
+the pure-Perl version. It is stable and reliable but be warned that
+it doesn't yet support access to tied hashes (e.g. Tie::DBI) so for
+certain applications you may need to explicitly use the regular stash.
You can choose to build the XS stash module and enable it by default
so that it is used automatically for all templates. If you build it
@@ -454,9 +456,10 @@ this:
my \$tt = new Template ({ STASH => new Template::Stash::XS, ... });
-You can also enable the XS stash by setting the \$STASH package
-variable in the Template/Config.pm module. See 'perldoc
-Template::Config' for further details.
+You can also enable the XS stash (or the regular stash if you opt to
+use the XS stash by default) by setting the \$STASH package variable
+in the Template/Config.pm module. See 'perldoc Template::Config' for
+further details.
EOF
View
10 README
@@ -1,9 +1,9 @@
Template Toolkit
- Version 2.06b
+ Version 2.06c
- 29 November 2001
+ 13 December 2001
Copyright (C) 1996-2001 Andy Wardley. All Rights Reserved
Copyright (C) 1998-2001 Canon Research Centre Europe Ltd.
@@ -43,8 +43,8 @@ need to install them. They're all available from CPAN if you do.
To install the Template Toolkit:
- tar zxf Template-Toolkit-2.06b.tar.gz
- cd Template-Toolkit-2.06b
+ tar zxf Template-Toolkit-2.06c.tar.gz
+ cd Template-Toolkit-2.06c
perl Makefile.PL
make
make test
@@ -336,7 +336,7 @@ VERSION COMPATABILITY
---------------------
In terms of the template language and features available, versions
-2.01 through to 2.06b should be fully backwardly compatible with
+2.01 through to 2.06c should be fully backwardly compatible with
version 2.00.
Version 2.00 is backwardly compatible with version 1 in all but a few
View
2  TODO
@@ -3,7 +3,7 @@
# TODO
#
# DESCRIPTION
-# TODO list for the Template Toolkit version 2.06b, containing
+# TODO list for the Template Toolkit version 2.06c, containing
# known bugs, limitations, planned enhancements, long term visions
# and a few whacky ideas.
#
View
2  bin/release
@@ -5,5 +5,5 @@
&& make test \
&& bin/fixconfig -v -y \
&& make dist \
-&& echo "Share and Enjoy!"
+&& echo "Go forth and make content!"
View
6 bin/tpage
@@ -112,8 +112,8 @@ L<http://www.andywardley.com/|http://www.andywardley.com/>
=head1 VERSION
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
=head1 COPYRIGHT
@@ -125,4 +125,4 @@ modify it under the same terms as Perl itself.
=head1 SEE ALSO
-L<ttree|Template::Tools::ttree>
+L<ttree|Template::Tools::ttree>
View
6 bin/ttree
@@ -627,8 +627,8 @@ L<http://www.andywardley.com/|http://www.andywardley.com/>
=head1 VERSION
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
=head1 COPYRIGHT
@@ -640,4 +640,4 @@ modify it under the same terms as Perl itself.
=head1 SEE ALSO
-L<tpage|Template::Tools::tpage>
+L<tpage|Template::Tools::tpage>
View
277 docs/lib/docset/config
@@ -1,15 +1,15 @@
[%
docset => {
- id => 'tt2',
- title => 'Template Toolkit',
- about => 'A fast, powerful and extensible template processing system',
+ id => '[% docset.id %]',
+ title => '[% docset.title %]',
+ about => '[% docset.about %]',
books => {
Tutorial => {
id => 'Tutorial',
name => 'Tutorial',
title => 'Template Tutorials',
url => 'Tutorial',
- uplink => '',
+ uplink => '',
author => 'abw',
about => 'Template Toolkit Tutorials',
prev => '',
@@ -24,6 +24,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Generating Web Content Using the Template Toolkit',
+
prev => '',
next => 'Datafile',
},
@@ -36,9 +37,11 @@ docset => {
uplink => '..',
author => 'dave',
about => 'Creating Data Output Files Using the Template Toolkit',
+
prev => 'Web',
next => '',
},
+
index => {
id => 'index',
name => '',
@@ -48,19 +51,19 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template Toolkit Tutorials',
- },
- },
+
+ }
+
+ }
pagelist => [
- 'Web',
- 'Datafile',
- ],
- },
+ 'Web', 'Datafile', ]
+ }
Manual => {
id => 'Manual',
name => 'Manual',
title => 'User Manual',
url => 'Manual',
- uplink => '',
+ uplink => '',
author => 'abw',
about => 'User guide and reference manual for the Template Toolkit',
prev => 'Tutorial',
@@ -75,6 +78,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Introduction to the Template Toolkit',
+
prev => '',
next => 'Syntax',
},
@@ -87,6 +91,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Directive syntax, structure and semantics',
+
prev => 'Intro',
next => 'Variables',
},
@@ -99,6 +104,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template variables and code bindings',
+
prev => 'Syntax',
next => 'Directives',
},
@@ -111,6 +117,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template directives',
+
prev => 'Variables',
next => 'Config',
},
@@ -123,6 +130,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Configuration options',
+
prev => 'Directives',
next => 'Filters',
},
@@ -135,6 +143,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Standard filters',
+
prev => 'Config',
next => 'Plugins',
},
@@ -147,6 +156,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Standard plugins',
+
prev => 'Filters',
next => 'Internals',
},
@@ -159,6 +169,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template Toolkit internals',
+
prev => 'Plugins',
next => 'Views',
},
@@ -171,6 +182,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template Toolkit views (experimental)',
+
prev => 'Internals',
next => 'Refs',
},
@@ -183,6 +195,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Related modules, projects and other resources',
+
prev => 'Views',
next => 'Credits',
},
@@ -195,9 +208,11 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Author and contributor credits',
+
prev => 'Refs',
next => '',
},
+
index => {
id => 'index',
name => '',
@@ -207,28 +222,19 @@ docset => {
uplink => '..',
author => 'abw',
about => 'User guide and reference manual for the Template Toolkit',
- },
- },
+
+ }
+
+ }
pagelist => [
- 'Intro',
- 'Syntax',
- 'Variables',
- 'Directives',
- 'Config',
- 'Filters',
- 'Plugins',
- 'Internals',
- 'Views',
- 'Refs',
- 'Credits',
- ],
- },
+ 'Intro', 'Syntax', 'Variables', 'Directives', 'Config', 'Filters', 'Plugins', 'Internals', 'Views', 'Refs', 'Credits', ]
+ }
Modules => {
id => 'Modules',
name => 'Modules',
title => 'Module Documentation',
url => 'Modules',
- uplink => '',
+ uplink => '',
author => 'abw',
about => 'Core modules comprising the Template Toolkit',
prev => 'Manual',
@@ -243,6 +249,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Front-end module to the Template Toolkit',
+
prev => '',
next => 'Base',
},
@@ -255,6 +262,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Base class module implementing common functionality',
+
prev => 'Template',
next => 'Config',
},
@@ -267,6 +275,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Factory module for instantiating other TT2 modules',
+
prev => 'Base',
next => 'Constants',
},
@@ -279,6 +288,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Defines constants for the Template Toolkit',
+
prev => 'Config',
next => 'Context',
},
@@ -291,6 +301,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Runtime context in which templates are processed',
+
prev => 'Constants',
next => 'Document',
},
@@ -303,6 +314,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Compiled template document object',
+
prev => 'Context',
next => 'Exception',
},
@@ -315,6 +327,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Exception handling class module',
+
prev => 'Document',
next => 'Filters',
},
@@ -327,6 +340,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Post-processing filters for template blocks',
+
prev => 'Exception',
next => 'Iterator',
},
@@ -339,6 +353,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Data iterator used by the FOREACH directive',
+
prev => 'Filters',
next => 'Parser',
},
@@ -351,6 +366,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'LALR(1) parser for compiling template documents',
+
prev => 'Iterator',
next => 'Plugin',
},
@@ -363,6 +379,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Base class for Template Toolkit plugins',
+
prev => 'Parser',
next => 'Plugins',
},
@@ -375,6 +392,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Plugin provider module',
+
prev => 'Plugin',
next => 'Provider',
},
@@ -387,6 +405,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Provider module for loading/compiling templates',
+
prev => 'Plugins',
next => 'Service',
},
@@ -399,6 +418,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'General purpose template processing service',
+
prev => 'Provider',
next => 'Stash',
},
@@ -411,6 +431,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Magical storage for template variables',
+
prev => 'Service',
next => 'Stash_Context',
},
@@ -423,6 +444,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Experimetal stash allowing list/scalar context definition',
+
prev => 'Stash',
next => 'Stash_XS',
},
@@ -435,6 +457,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Experimetal high-speed stash written in XS',
+
prev => 'Stash_Context',
next => 'Test',
},
@@ -447,6 +470,7 @@ docset => {
uplink => '../..',
author => 'abw',
about => 'Module for automating TT2 test scripts',
+
prev => 'Stash_XS',
next => 'Plugin_Autoformat',
},
@@ -459,6 +483,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Interface to Text::Autoformat module',
+
prev => 'Test',
next => 'Plugin_CGI',
},
@@ -471,6 +496,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Interface to the CGI module',
+
prev => 'Plugin_Autoformat',
next => 'Plugin_DBI',
},
@@ -482,7 +508,8 @@ docset => {
url => 'Modules/Template/Plugin/DBI.html',
uplink => '../../..',
author => 'abw',
- about => 'Interface to the DBI module',
+ about => 'Template interface to the DBI module',
+
prev => 'Plugin_CGI',
next => 'Plugin_Datafile',
},
@@ -495,6 +522,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to construct records from a simple data file',
+
prev => 'Plugin_DBI',
next => 'Plugin_Date',
},
@@ -507,6 +535,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to generate formatted date strings',
+
prev => 'Plugin_Datafile',
next => 'Plugin_Directory',
},
@@ -519,6 +548,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin for generating directory listings',
+
prev => 'Plugin_Date',
next => 'Plugin_Dumper',
},
@@ -531,6 +561,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin interface to Data::Dumper',
+
prev => 'Plugin_Directory',
next => 'Plugin_File',
},
@@ -543,6 +574,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin providing information about files',
+
prev => 'Plugin_Dumper',
next => 'Plugin_Filter',
},
@@ -555,6 +587,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Base class for plugin filters',
+
prev => 'Plugin_File',
next => 'Plugin_Format',
},
@@ -567,6 +600,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to create formatting functions',
+
prev => 'Plugin_Filter',
next => 'Plugin_GD_Image',
},
@@ -579,6 +613,7 @@ docset => {
uplink => '../../../..',
author => 'craig',
about => 'Interface to GD Graphics Library',
+
prev => 'Plugin_Format',
next => 'Plugin_GD_Polygon',
},
@@ -591,6 +626,7 @@ docset => {
uplink => '../../../..',
author => 'craig',
about => 'Interface to GD module Polygon class',
+
prev => 'Plugin_GD_Image',
next => 'Plugin_GD_Constants',
},
@@ -603,6 +639,7 @@ docset => {
uplink => '../../../..',
author => 'craig',
about => 'Interface to GD module constants',
+
prev => 'Plugin_GD_Polygon',
next => 'Plugin_GD_Text',
},
@@ -615,6 +652,7 @@ docset => {
uplink => '../../../..',
author => 'craig',
about => 'Text utilities for use with GD',
+
prev => 'Plugin_GD_Constants',
next => 'Plugin_GD_Text_Align',
},
@@ -627,6 +665,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Draw aligned strings in GD images',
+
prev => 'Plugin_GD_Text',
next => 'Plugin_GD_Text_Wrap',
},
@@ -639,6 +678,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Break and wrap strings in GD images',
+
prev => 'Plugin_GD_Text_Align',
next => 'Plugin_GD_Graph_lines',
},
@@ -651,6 +691,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create line graphs with axes and legends',
+
prev => 'Plugin_GD_Text_Wrap',
next => 'Plugin_GD_Graph_lines3d',
},
@@ -663,6 +704,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create 3D line graphs with axes and legends',
+
prev => 'Plugin_GD_Graph_lines',
next => 'Plugin_GD_Graph_bars',
},
@@ -675,6 +717,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create bar graphs with axes and legends',
+
prev => 'Plugin_GD_Graph_lines3d',
next => 'Plugin_GD_Graph_bars3d',
},
@@ -687,6 +730,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create 3D bar graphs with axes and legends',
+
prev => 'Plugin_GD_Graph_bars',
next => 'Plugin_GD_Graph_points',
},
@@ -699,6 +743,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create point graphs with axes and legends',
+
prev => 'Plugin_GD_Graph_bars3d',
next => 'Plugin_GD_Graph_linespoints',
},
@@ -711,6 +756,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create line/point graphs with axes and legends',
+
prev => 'Plugin_GD_Graph_points',
next => 'Plugin_GD_Graph_area',
},
@@ -723,6 +769,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create area graphs with axes and legends',
+
prev => 'Plugin_GD_Graph_linespoints',
next => 'Plugin_GD_Graph_mixed',
},
@@ -735,6 +782,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create mixed graphs with axes and legends',
+
prev => 'Plugin_GD_Graph_area',
next => 'Plugin_GD_Graph_pie',
},
@@ -747,6 +795,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create pie charts with legends',
+
prev => 'Plugin_GD_Graph_mixed',
next => 'Plugin_GD_Graph_pie3d',
},
@@ -759,6 +808,7 @@ docset => {
uplink => '../../../../..',
author => 'craig',
about => 'Create 3D pie charts with legends',
+
prev => 'Plugin_GD_Graph_pie',
next => 'Plugin_HTML',
},
@@ -771,6 +821,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to create HTML elements',
+
prev => 'Plugin_GD_Graph_pie3d',
next => 'Plugin_Iterator',
},
@@ -783,6 +834,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to create iterators (Template::Iterator)',
+
prev => 'Plugin_HTML',
next => 'Plugin_Pod',
},
@@ -795,6 +847,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin interface to Pod::POM (Pod Object Model)',
+
prev => 'Plugin_Iterator',
next => 'Plugin_String',
},
@@ -807,6 +860,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Object oriented interface for string manipulation',
+
prev => 'Plugin_Pod',
next => 'Plugin_Table',
},
@@ -819,6 +873,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to present data in a table',
+
prev => 'Plugin_String',
next => 'Plugin_URL',
},
@@ -831,6 +886,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to construct complex URLs',
+
prev => 'Plugin_Table',
next => 'Plugin_View',
},
@@ -843,6 +899,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin to create views (Template::View)',
+
prev => 'Plugin_URL',
next => 'Plugin_Wrap',
},
@@ -855,6 +912,7 @@ docset => {
uplink => '../../..',
author => 'abw',
about => 'Plugin interface to Text::Wrap',
+
prev => 'Plugin_View',
next => 'Plugin_XML_DOM',
},
@@ -867,6 +925,7 @@ docset => {
uplink => '../../../..',
author => 'abw',
about => 'Plugin interface to XML::DOM',
+
prev => 'Plugin_Wrap',
next => 'Plugin_XML_RSS',
},
@@ -879,6 +938,7 @@ docset => {
uplink => '../../../..',
author => 'abw',
about => 'Plugin interface to XML::RSS',
+
prev => 'Plugin_XML_DOM',
next => 'Plugin_XML_Simple',
},
@@ -891,6 +951,7 @@ docset => {
uplink => '../../../..',
author => 'abw',
about => 'Plugin interface to XML::Simple',
+
prev => 'Plugin_XML_RSS',
next => 'Plugin_XML_Style',
},
@@ -903,6 +964,7 @@ docset => {
uplink => '../../../..',
author => 'abw',
about => 'Simple XML stylesheet transfomations',
+
prev => 'Plugin_XML_Simple',
next => 'Plugin_XML_XPath',
},
@@ -915,9 +977,11 @@ docset => {
uplink => '../../../..',
author => 'abw',
about => 'Plugin interface to XML::XPath',
+
prev => 'Plugin_XML_Style',
next => '',
},
+
index => {
id => 'index',
name => '',
@@ -927,74 +991,19 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Core modules comprising the Template Toolkit',
- },
- },
+
+ }
+
+ }
pagelist => [
- 'Template',
- 'Base',
- 'Config',
- 'Constants',
- 'Context',
- 'Document',
- 'Exception',
- 'Filters',
- 'Iterator',
- 'Parser',
- 'Plugin',
- 'Plugins',
- 'Provider',
- 'Service',
- 'Stash',
- 'Stash_Context',
- 'Stash_XS',
- 'Test',
- 'Plugin_Autoformat',
- 'Plugin_CGI',
- 'Plugin_DBI',
- 'Plugin_Datafile',
- 'Plugin_Date',
- 'Plugin_Directory',
- 'Plugin_Dumper',
- 'Plugin_File',
- 'Plugin_Filter',
- 'Plugin_Format',
- 'Plugin_GD_Image',
- 'Plugin_GD_Polygon',
- 'Plugin_GD_Constants',
- 'Plugin_GD_Text',
- 'Plugin_GD_Text_Align',
- 'Plugin_GD_Text_Wrap',
- 'Plugin_GD_Graph_lines',
- 'Plugin_GD_Graph_lines3d',
- 'Plugin_GD_Graph_bars',
- 'Plugin_GD_Graph_bars3d',
- 'Plugin_GD_Graph_points',
- 'Plugin_GD_Graph_linespoints',
- 'Plugin_GD_Graph_area',
- 'Plugin_GD_Graph_mixed',
- 'Plugin_GD_Graph_pie',
- 'Plugin_GD_Graph_pie3d',
- 'Plugin_HTML',
- 'Plugin_Iterator',
- 'Plugin_Pod',
- 'Plugin_String',
- 'Plugin_Table',
- 'Plugin_URL',
- 'Plugin_View',
- 'Plugin_Wrap',
- 'Plugin_XML_DOM',
- 'Plugin_XML_RSS',
- 'Plugin_XML_Simple',
- 'Plugin_XML_Style',
- 'Plugin_XML_XPath',
- ],
- },
+ 'Template', 'Base', 'Config', 'Constants', 'Context', 'Document', 'Exception', 'Filters', 'Iterator', 'Parser', 'Plugin', 'Plugins', 'Provider', 'Service', 'Stash', 'Stash_Context', 'Stash_XS', 'Test', 'Plugin_Autoformat', 'Plugin_CGI', 'Plugin_DBI', 'Plugin_Datafile', 'Plugin_Date', 'Plugin_Directory', 'Plugin_Dumper', 'Plugin_File', 'Plugin_Filter', 'Plugin_Format', 'Plugin_GD_Image', 'Plugin_GD_Polygon', 'Plugin_GD_Constants', 'Plugin_GD_Text', 'Plugin_GD_Text_Align', 'Plugin_GD_Text_Wrap', 'Plugin_GD_Graph_lines', 'Plugin_GD_Graph_lines3d', 'Plugin_GD_Graph_bars', 'Plugin_GD_Graph_bars3d', 'Plugin_GD_Graph_points', 'Plugin_GD_Graph_linespoints', 'Plugin_GD_Graph_area', 'Plugin_GD_Graph_mixed', 'Plugin_GD_Graph_pie', 'Plugin_GD_Graph_pie3d', 'Plugin_HTML', 'Plugin_Iterator', 'Plugin_Pod', 'Plugin_String', 'Plugin_Table', 'Plugin_URL', 'Plugin_View', 'Plugin_Wrap', 'Plugin_XML_DOM', 'Plugin_XML_RSS', 'Plugin_XML_Simple', 'Plugin_XML_Style', 'Plugin_XML_XPath', ]
+ }
Library => {
id => 'Library',
name => 'Library',
title => 'Libraries',
url => 'Library',
- uplink => '',
+ uplink => '',
author => 'abw',
about => 'Template libraries',
prev => 'Modules',
@@ -1009,6 +1018,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template library for building basic HTML pages',
+
prev => '',
next => 'Splash',
},
@@ -1021,6 +1031,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template library for building stylish HTML user interfaces',
+
prev => 'HTML',
next => 'PostScript',
},
@@ -1033,9 +1044,11 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template library for generating PostScript',
+
prev => 'Splash',
next => '',
},
+
index => {
id => 'index',
name => '',
@@ -1045,20 +1058,19 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template libraries',
- },
- },
+
+ }
+
+ }
pagelist => [
- 'HTML',
- 'Splash',
- 'PostScript',
- ],
- },
+ 'HTML', 'Splash', 'PostScript', ]
+ }
Tools => {
id => 'Tools',
name => 'Tools',
title => 'Tools',
url => 'Tools',
- uplink => '',
+ uplink => '',
author => 'abw',
about => 'Template Tools',
prev => 'Library',
@@ -1073,6 +1085,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Process templates from command line',
+
prev => '',
next => 'ttree',
},
@@ -1085,9 +1098,11 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Process entire directory trees of templates',
+
prev => 'tpage',
next => '',
},
+
index => {
id => 'index',
name => '',
@@ -1097,19 +1112,19 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Template Tools',
- },
- },
+
+ }
+
+ }
pagelist => [
- 'tpage',
- 'ttree',
- ],
- },
+ 'tpage', 'ttree', ]
+ }
FAQ => {
id => 'FAQ',
name => 'FAQ',
title => 'Frequently Asked Questions',
url => 'FAQ',
- uplink => '',
+ uplink => '',
author => 'abw',
about => 'Frequently Asked Questions',
prev => 'Tools',
@@ -1124,9 +1139,11 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Frequently Asked Questions about the Template Toolkit',
+
prev => '',
next => '',
},
+
index => {
id => 'FAQ',
name => 'FAQ',
@@ -1136,20 +1153,21 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Frequently Asked Questions about the Template Toolkit',
- },
- },
+
+ }
+
+ }
pagelist => [
- 'FAQ',
- ],
- },
+ 'FAQ', ]
+ }
Release => {
id => 'Release',
name => 'Release',
title => 'Release Notes',
url => 'Release',
- uplink => '',
+ uplink => '',
author => 'abw',
- about => 'Release notes: README, Changes, TODO',
+ about => 'Release notes: README, Changes, TODO, etc.',
prev => 'FAQ',
next => '',
pages => {
@@ -1162,6 +1180,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'General information',
+
prev => '',
next => 'INSTALL',
},
@@ -1174,6 +1193,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Installation and configuration guide',
+
prev => 'README',
next => 'Changes',
},
@@ -1186,6 +1206,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Change history',
+
prev => 'INSTALL',
next => 'TODO',
},
@@ -1198,6 +1219,7 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Known bugs, planned features, etc.',
+
prev => 'Changes',
next => 'HACKING',
},
@@ -1210,9 +1232,11 @@ docset => {
uplink => '..',
author => 'abw',
about => 'Pointers for people wishing to hack on TT',
+
prev => 'TODO',
next => '',
},
+
index => {
id => 'index',
name => '',
@@ -1221,27 +1245,18 @@ docset => {
url => 'Release/index.html',
uplink => '..',
author => 'abw',
- about => 'Release notes: README, Changes, TODO',
- },
- },
+ about => 'Release notes: README, Changes, TODO, etc.',
+
+ }
+
+ }
pagelist => [
- 'README',
- 'INSTALL',
- 'Changes',
- 'TODO',
- 'HACKING',
- ],
- },
+ 'README', 'INSTALL', 'Changes', 'TODO', 'HACKING', ]
+ }
+
},
booklist => [
- 'Tutorial',
- 'Manual',
- 'Modules',
- 'Library',
- 'Tools',
- 'FAQ',
- 'Release',
- ],
+'Tutorial', 'Manual', 'Modules', 'Library', 'Tools', 'FAQ', 'Release', ],
links => {
'Template::Tutorial::Web' => 'Tutorial/Web.html',
'Template::Tutorial::Datafile' => 'Tutorial/Datafile.html',
@@ -1330,4 +1345,4 @@ docset => {
'HACKING' => 'Release/HACKING.html',
},
};
--%]
+-%]
View
4 docs/src/FAQ/FAQ.html
@@ -286,8 +286,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Library/HTML.html
@@ -313,8 +313,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Library/PostScript.html
@@ -43,8 +43,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Library/Splash.html
@@ -1006,8 +1006,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Config.html
@@ -1531,7 +1531,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
3  docs/src/Manual/Credits.html
@@ -103,6 +103,7 @@
Michael Fowler &lt;michael@shoebox.net&gt;
Axel Gerstmair &lt;anthill@web.de&gt;
Perrin Harkins &lt;pharkins@etoys.com&gt;
+ Dave Hodgkinson &lt;daveh@davehodgkinson.com&gt;
Harald Joerg &lt;Harald.Joerg@fujitsu-siemens.com&gt;
Colin Johnson &lt;colin@knowledgepool.com&gt;
Vivek Khera &lt;khera@kciLink.com&gt;
@@ -139,7 +140,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Directives.html
@@ -1969,7 +1969,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Filters.html
@@ -462,7 +462,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Internals.html
@@ -538,7 +538,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Intro.html
@@ -262,7 +262,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Plugins.html
@@ -561,7 +561,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Refs.html
@@ -128,7 +128,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Syntax.html
@@ -280,7 +280,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Variables.html
@@ -978,7 +978,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Manual/Views.html
@@ -612,7 +612,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
2  docs/src/Modules/Template.html
@@ -829,7 +829,7 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-Template Toolkit version 2.06b, released on 29 November 2001.
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Base.html
@@ -106,8 +106,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.37, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.38, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Config.html
@@ -152,8 +152,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.36, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.37, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
6 docs/src/Modules/Template/Constants.html
@@ -96,8 +96,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.36, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.37, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
@@ -112,7 +112,7 @@
[% WRAPPER section
title='SEE ALSO'
-%]<p>
-[% ttlink('Template', 'Template') -%], [% ttlink('CPAN::Exporter', 'CPAN::Exporter') -%]
+[% ttlink('Template', 'Template') -%], [% ttlink('Exporter', 'Exporter') -%]
</p>
[%- END %]
View
4 docs/src/Modules/Template/Context.html
@@ -634,8 +634,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.42, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.43, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Document.html
@@ -202,8 +202,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.38, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.39, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Exception.html
@@ -85,8 +85,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.33, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.34, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Filters.html
@@ -650,8 +650,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.38, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.39, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Iterator.html
@@ -233,8 +233,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Parser.html
@@ -452,8 +452,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.42, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.43, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
<pre> </pre>
[%- END %]
View
4 docs/src/Modules/Template/Plugin.html
@@ -237,8 +237,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.36, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.37, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
4 docs/src/Modules/Template/Plugin/Autoformat.html
@@ -147,8 +147,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.35, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.36, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
View
6 docs/src/Modules/Template/Plugin/CGI.html
@@ -76,8 +76,8 @@
[% WRAPPER section
title='VERSION'
-%]<p>
-2.34, distributed as part of the
-Template Toolkit version 2.06b, released on 29 November 2001.
+2.35, distributed as part of the
+Template Toolkit version 2.06c, released on 13 December 2001.
</p>
[%- END %]
[% WRAPPER section
@@ -92,7 +92,7 @@
[% WRAPPER section
title='SEE ALSO'
-%]<p>
-[% ttlink('Template::Plugin', 'Template::Plugin') -%], [% ttlink('CPAN::CGI', 'CPAN::CGI') -%]
+[% ttlink('Template::Plugin', 'Template::Plugin') -%], [% ttlink('CGI', 'CGI') -%]
</p>
[%- END %]
View
390 docs/src/Modules/Template/Plugin/DBI.html
@@ -15,25 +15,21 @@
INCLUDE tocitem
title = 'SYNOPSIS';
INCLUDE tocitem
- title = 'DESCRIPTION';
- INCLUDE tocitem
- title = 'OBJECT METHODS'
- subs = [ 'connect($data_source, $username, $password)',
+ title = 'DESCRIPTION'
+ subs = [ 'connect($database, $username, $password)',
'query($sql)',
'prepare($sql)',
'execute(@args)',
'do($sql)',
+ 'tie($table, $key, \\%args)',
'quote($value, $type)',
+ 'dbh()',
'disconnect()' ];
INCLUDE tocitem
- title = 'PRE-REQUISITES';
- INCLUDE tocitem
title = 'AUTHORS';
INCLUDE tocitem
title = 'VERSION';
INCLUDE tocitem
- title = 'HISTORY';
- INCLUDE tocitem
title = 'COPYRIGHT';
INCLUDE tocitem
title = 'SEE ALSO';
@@ -42,35 +38,85 @@
<!-- Pod to HTML conversion by the Template Toolkit version 2 -->
[% WRAPPER section
title='SYNOPSIS'
--%]<pre> # use positional arguments...
- [% tt_start_tag %] USE DBI('dbi:driver:database', 'username', 'password') [% tt_end_tag %]</pre>
-<pre> # ...or named parameters...
- [% tt_start_tag %] USE DBI(data_source = 'dbi:driver:database',
- username = 'username',
- password = 'password') [% tt_end_tag %]</pre>
-<pre> # ...or call connect() explicitly
- [% tt_start_tag %] USE DBI [% tt_end_tag %]
- [% tt_start_tag %] DBI.connect(dsn, user, pass) [% tt_end_tag %]</pre>
-<pre> # Or don't connect at all, and when necessary DBI will connect
- # automatically using the environment variable DBI_DSN. See below.</pre>
-<pre> [% tt_start_tag %] FOREACH item = DBI.query( 'SELECT rows FROM table' ) [% tt_end_tag %]
- Here's some row data: [% tt_start_tag %] item.field [% tt_end_tag %]
+-%]<p>
+Making an implicit database connection:
+</p>
+<pre> # ...using positional arguments
+ [% tt_start_tag %] USE DBI('dbi:driver:dbname', 'user', 'pass') [% tt_end_tag %]</pre>
+<pre> # ...using named parameters
+ [% tt_start_tag %] USE DBI( database = 'dbi:driver:dbname',
+ username = 'user',
+ password = 'pass' )
+ [% tt_end_tag %]</pre>
+<pre> # ...using short named parameters (4 lzy ppl and bad typsits)
+ [% tt_start_tag %] USE DBI( db = 'driver:dbname',
+ user = 'user',
+ pass = 'pass' )
+ [% tt_end_tag %]</pre>
+<pre> # ...or an existing DBI database handle
+ [% tt_start_tag %] USE DBI( dbh = my_dbh_ref ) [% tt_end_tag %]</pre>
+<p>
+Making explicit database connections:
+</p>
+<pre> [% tt_start_tag %] USE DBI [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] DBI.connect(db, user, pass) [% tt_end_tag %]
+ ...</pre>
+<pre> [% tt_start_tag %] DBI.connect(new_db, new_user, new_pass) [% tt_end_tag %]
+ ...</pre>
+<pre> [% tt_start_tag %] DBI.disconnect [% tt_end_tag %] # final disconnect is optional</pre>
+<p>
+Making an automagical database connection using DBI_DSN environment variable:
+</p>
+<pre> [% tt_start_tag %] USE DBI [% tt_end_tag %]</pre>
+<p>
+Making database queries:
+</p>
+<pre> [% tt_start_tag %] FOREACH user = DBI.query('SELECT * FROM users') [% tt_end_tag %]
+ [% tt_start_tag %] user.uid [% tt_end_tag %] blah blah [% tt_start_tag %] user.name [% tt_end_tag %] etc. etc.
[% tt_start_tag %] END [% tt_end_tag %]</pre>
-<pre> [% tt_start_tag %] query = DBI.prepare('SELECT * FROM user WHERE manager = ?') [% tt_end_tag %]
- [% tt_start_tag %] FOREACH user = query.execute('sam') [% tt_end_tag %]
+<pre> [% tt_start_tag %] query = DBI.prepare('SELECT * FROM users WHERE uid = ?') [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] FOREACH user = query.execute('sam') [% tt_end_tag %]
...
- [% tt_start_tag %] FOREACH user = query.execute('abw') [% tt_end_tag %]
- ...</pre>
-<pre> [% tt_start_tag %] IF DBI.do(&quot;DELETE FROM users WHERE uid = 'sam'&quot;) [% tt_end_tag %]
- Oh No! The user was deleted!
[% tt_start_tag %] END [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] FOREACH user = query.execute('abw') [% tt_end_tag %]
+ ...
+ [% tt_start_tag %] END [% tt_end_tag %]</pre>
+<p>
+Making non-SELECT statements:
+</p>
+<pre> [% tt_start_tag %] IF DBI.do(&quot;DELETE FROM users WHERE uid = '$uid'&quot;) [% tt_end_tag %]
+ The user '[% tt_start_tag %] uid [% tt_end_tag %]' was successfully deleted.
+ [% tt_start_tag %] END [% tt_end_tag %]</pre>
+<p>
+Using named DBI connections:
+</p>
+<pre> [% tt_start_tag %] USE one = DBI(...) [% tt_end_tag %]
+ [% tt_start_tag %] USE two = DBI(...) [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] FOREACH item = one.query(&quot;SELECT ...etc...&quot;) [% tt_end_tag %]
+ ...
+ [% tt_start_tag %] END [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] FOREACH item = two.query(&quot;SELECT ...etc...&quot;) [% tt_end_tag %]
+ ...
+ [% tt_start_tag %] END [% tt_end_tag %]</pre>
+<p>
+Tieing to a database table (via Tie::DBI):
+</p>
+<pre> [% tt_start_tag %] people = DBI.tie('users', 'uid') [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] me = people.abw [% tt_end_tag %] # =&gt; SELECT * FROM users WHERE uid='abw'</pre>
+<pre> I am [% tt_start_tag %] me.name [% tt_end_tag %]</pre>
+<pre> # clobber option allows table updates (see Tie::DBI)
+ [% tt_start_tag %] people = DBI.tie('users', 'uid', clobber=1) [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] people.abw.name = 'not a number' [% tt_end_tag %]</pre>
+<pre> I am [% tt_start_tag %] people.abw.name [% tt_end_tag %] # I am a free man!</pre>
[%- END %]
[% WRAPPER section
title='DESCRIPTION'
-%]<p>
This Template Toolkit plugin module provides an interface to the Perl
-DBI/DBD modules, allowing you to integrate SQL queries into your template
-documents.
+DBI/DBD modules, allowing you to integrate SQL queries into your
+template documents. It also provides an interface via the Tie::DBI
+module (if installed on your system) so that you can access database
+records without having to embed any SQL in your templates.
</p>
<p>
A DBI plugin object can be created as follows:
@@ -80,93 +126,148 @@
This creates an uninitialised DBI object. You can then open a connection
to a database using the connect() method.
</p>
-<pre> [% tt_start_tag %] DBI.connect('dbi:driver:database', 'username', 'password') [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] DBI.connect('dbi:driver:dbname', 'user', 'pass') [% tt_end_tag %]</pre>
<p>
The DBI connection can be opened when the plugin is created by passing
arguments to the constructor, called from the USE directive.
</p>
-<pre> [% tt_start_tag %] USE DBI('dbi:driver:database', 'username', 'password') [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] USE DBI('dbi:driver:dbname', 'user', 'pass') [% tt_end_tag %]</pre>
<p>
You can also use named parameters to provide the data source connection
string, user name and password.
</p>
-<pre> [% tt_start_tag %] USE DBI(data_source =&gt; 'dbi:driver:database',
- username =&gt; 'username',
- password =&gt; 'password') [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] USE DBI(database =&gt; 'dbi:driver:dbname',
+ username =&gt; 'user',
+ password =&gt; 'pass') [% tt_end_tag %]</pre>
<p>
-Lazy Template hackers may prefer to use 'dsn' or 'connect' as a shorthand
-form of the 'data_source' parameter, and 'user' and 'pass' as shorthand
-forms of 'username' and 'password', respectively.
+For backwards compatability with previous versions of this plugin, you can
+also spell 'database' as 'data_source'.
</p>
-<pre> [% tt_start_tag %] USE DBI(connect =&gt; 'dbi:driver:database',
- user =&gt; 'username',
- pass =&gt; 'password') [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] USE DBI(data_source =&gt; 'dbi:driver:dbname',
+ username =&gt; 'user',
+ password =&gt; 'pass') [% tt_end_tag %]</pre>
+<p>
+Lazy Template hackers may prefer to use 'db', 'dsn' or 'connect' as a
+shorthand form of the 'database' parameter, and 'user' and 'pass' as
+shorthand forms of 'username' and 'password', respectively. You can
+also drop the 'dbi:' prefix from the database connect string because
+the plugin will add it on for you automagically.
+</p>
+<pre> [% tt_start_tag %] USE DBI(db =&gt; 'driver:dbname',
+ user =&gt; 'user',
+ pass =&gt; 'pass') [% tt_end_tag %]</pre>
<p>
Any additional DBI attributes can be specified as named parameters.
The 'PrintError' attribute defaults to 0 unless explicitly set true.
</p>
-<pre> [% tt_start_tag %] USE DBI(dsn, user, pass, ChopBlanks=1) [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] USE DBI(db, user, pass, ChopBlanks=1) [% tt_end_tag %]</pre>
+<p>
+An alternate variable name can be provided for the plugin as per regular
+Template Toolkit syntax:
+</p>
+<pre> [% tt_start_tag %] USE mydb = DBI('dbi:driver:dbname', 'user', 'pass') [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] FOREACH item = mydb.query('SELECT * FROM users') [% tt_end_tag %]
+ ...
+ [% tt_start_tag %] END [% tt_end_tag %]</pre>
+<p>
+You can also specify the DBI plugin name in lower case if you prefer:
+</p>
+<pre> [% tt_start_tag %] USE dbi(dsn, user, pass) [% tt_end_tag %]</pre>
+<pre> [% tt_start_tag %] FOREACH item = dbi.query('SELECT * FROM users') [% tt_end_tag %]
+ ...
+ [% tt_start_tag %] END [% tt_end_tag %]</pre>
<p>
-The DBI connect_cached() method is used instead of the connect()
-method. This allows for connection caching in a server environment,
-such as when the Template Toolkit is used from an Apache mod_perl
-handler. In such a case, simply enable the mod_env module and put in a
-line such as:
+The disconnect() method can be called to explicitly disconnect the
+current database, but this generally shouldn't be necessary as it is
+called automatically when the plugin goes out of scope. You can call
+connect() at any time to open a connection to another database. The
+previous connection will be closed automatically.
</p>
<p>
-SetEnv DBI_DSN &quot;dbi:DBDriver:DBName;host=DBHost;user=User;password=Password&quot;
+Internally, the DBI connect_cached() method is used instead of the
+connect() method. This allows for connection caching in a server
+environment, such as when the Template Toolkit is used from an Apache
+mod_perl handler. In such a case, simply enable the mod_env module
+and put in a line such as:
+</p>
+<pre> SetEnv DBI_DSN &quot;dbi:mysql:dbname;host=dbhost;
+ user=uname;password=pword&quot;</pre>
+<p>
+(NOTE: the string shown here is split across 2 lines for the sake of
+reasonable page formatting, but you should specify it all as one long
+string with no spaces or newlines).
</p>
<p>
-Then use the DBI plugin without any parameters and without calling connect.
+You can then use the DBI plugin without any parameters or the need
+to explicitly call connect().
</p>
<p>
-Methods can then be called on the plugin object using the familiar dotted
-notation:
+Once you've loaded a DBI plugin and opened a database connection using
+one of the techniques shown above, you can then make queries on the database
+using the familiar dotted notation:
</p>