summaryrefslogtreecommitdiff
path: root/lib/Template/FAQ.pod
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Template/FAQ.pod')
-rw-r--r--lib/Template/FAQ.pod329
1 files changed, 0 insertions, 329 deletions
diff --git a/lib/Template/FAQ.pod b/lib/Template/FAQ.pod
deleted file mode 100644
index 0807ace..0000000
--- a/lib/Template/FAQ.pod
+++ /dev/null
@@ -1,329 +0,0 @@
-#============================================================= -*-perl-*-
-#
-# Template::FAQ
-#
-# DESCRIPTION
-# This is the Frequently Asked Questions list for the Template
-# Toolkit. More accurately, it's a very thin placeholder for where
-# the FAQ will soon be.
-#
-# AUTHOR
-# Andy Wardley <abw@andywardley.com>
-#
-# COPYRIGHT
-# Copyright (C) 1996-2001 Andy Wardley. All Rights Reserved.
-# Copyright (C) 1998-2001 Canon Research Centre Europe Ltd.
-#
-# This module is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-# REVISION
-# 2.69
-#
-#========================================================================
-
-
-#------------------------------------------------------------------------
-# IMPORTANT NOTE
-# This documentation is generated automatically from source
-# templates. Any changes you make here may be lost.
-#
-# The 'docsrc' documentation source bundle is available for download
-# from http://www.template-toolkit.org/docs.html and contains all
-# the source templates, XML files, scripts, etc., from which the
-# documentation for the Template Toolkit is built.
-#------------------------------------------------------------------------
-
-=head1 NAME
-
-Template::FAQ - Frequently Asked Questions about the Template Toolkit
-
-=head1 DESCRIPTION
-
-This is the Frequently Asked Questions list for the Template Toolkit.
-More accurately, it's a very thin placeholder for where the FAQ will
-soon be.
-
-
-=head1 Template Toolkit Language
-
-=head2 Why doesn't [% a = b IF c %] work as expected?
-
-Because the parser interprets it as
-
- [% a = (b IF c) %]
-
-Do this instead:
-
- [% SET a = b IF c %]
-
-=head2 If I'm using TT to write out a TT template, is there a good way to escape [% and %]?
-
-You can do this:
-
- [% stag = "[\%"
- etag = "%\]"
- %]
-
-and then:
-
- [% stag; 'hello'; etag %]
-
-Or something like:
-
- [% TAGS [- -] %]
- [- INCLUDE foo -] # is a directive
- [% INCLUDE foo %] # not a directive, just plain text, passed through
-
-=head2 How do I iterate over a hash?
-
-This is covered in the L<Template::Manual::VMethods|VMethods> section
-of the manual page. A list of all the keys that are in the hash can
-be obtained with the 'keys' virtual method. You can then iterate
-over that list and by looking up each key in turn get the value.
-
- [% FOREACH key = product.keys %]
- [% key %] => [% product.$key %]
- [% END %]
-
-=head1 Plugins
-
-=head2 How do I get the Table plugin to order data across rather than down?
-
-Order the data into rows:
-
- Steve Karen Jeff
- Brooklyn Nantucket Fairfax
- NY MA VA
-
- [% USE table(data, rows=3) %]
-
-Then ask for each column
-
- [% FOREACH column = table.cols %]
-
-And then print each item in the column going across the output rows
-
- [% FOREACH item = column %]
- <td>[% item %]</td>
- [% END %]
-
-=head2 Accessing Cookies
-
-Jeff Boes E<lt>jboes@nexcerpt.comE<gt> asks:
-
- Does anyone have a quick-n-dirty approach to accessing
- cookies from templates?
-
-Jonas Liljegren answers:
-
- [% USE CGI %]
-
- <p>The value is [% CGI.cookie('cookie_name') | html %]
-
-
-=head1 Extending the Template Toolkit
-
-=head2 Can I serve templates from a database?
-
-Short answer: yes, Chris Nandor has done this for Slash. You need to
-subclass Template::Provider. See the mailing list archives for further
-info.
-
-=head2 Can I fetch templates via http?
-
-To do the job properly, you should sublcass Template::Provider to
-Template::Provider::HTTP and use a PREFIX_MAP option to bind the
-'http' template prefix to that particular provider (you may want to
-go digging around in the F<Changes> file around version 2.01 for
-more info on PREFIX_MAP - it may not be properly documented anywhere
-else...yet!). e.g. (untested due to lack of existing HTTP Provider
-- patches welcome!).
-
- use Template::Provider::HTTP;
-
- my $file = Template::Provider( INCLUDE_PATH => [...] );
- my $http = Template::Provider::HTTP->new(...);
- my $tt2 = Template->new({
- LOAD_TEMPLATES => [ $file, $http ],
- PREFIX_MAP => {
- file => '0', # file:foo.html
- http => '1', # http:foo.html
- default => '0', # foo.html => file:foo.html
- }
- });
-
-Now a template specified as:
-
- [% INCLUDE foo %]
-
-will be served by the 'file' provider (the default). Otherwise you
-can explicitly add a prefix:
-
- [% INCLUDE file:foo.html %]
- [% INCLUDE http:foo.html %]
- [% INCLUDE http://www.xyz.com/tt2/header.tt2 %]
-
-This same principal can be used to create a DBI template provider. e.g.
-
- [% INCLUDE dbi:foo.html %]
-
-But similarly, alas, we don't yet have a DBI provider as part of the
-Template Toolkit. There has been some talk on the mailing list about
-efforts to develop DBI and/or HTTP providers but as yet no-one has
-stepped forward to take up the challenge...
-
-In the mean time, Craig's post from the mailing list has some useful
-pointers on how to acheive this using existing modules:
-
- To: Adam Theo <adamtheo@theoretic.com>
- From: Craig Barratt <craig@arraycomm.com>
- Date: Fri, 18 May 2001 17:06:59 -0700
-
- > i was wondering if there is anyway to fetch a file using http:// or
- > ftp:// and include that?
-
- Here's one way. Set the LOAD_PERL option:
-
- use Template;
-
- my $template = Template->new({
- LOAD_PERL => 1
- });
- $template->process("example.tt", { stdout => *STDOUT })
- || die $template->error();
-
- and then use LWP::UserAgent and HTTP::Request:
-
- [%
- USE ua = LWP.UserAgent;
- ua.proxy("http", "http://your_proxy/");
- USE req = HTTP.Request("GET", "http://www.cpan.org");
- ua.request(req).content;
- -%]
-
- For FTP use Net::FTP:
-
- [%
- USE ftp = Net.FTP("ftp.cpan.org");
- x = ftp.login("anonymous", "me@here.there");
- x = ftp.cwd("/");
- x = ftp.get("welcome.msg", stdout);
- x = ftp.quit;
- -%]
-
- Normally ftp.get would write the file into the current directory.
- Instead we pass stdout as a second argument so that it is written
- to stdout. We set stdout to STDOUT in the variables we pass to
- process.
-
- Craig
-
-=head1 Miscellaneous
-
-=head2 How can I configure variables on a per-request basis?
-
-One easy way to acheive this is to define a single PRE_PROCESS template which
-loads in other configuration files based on variables defined or other
-conditions.
-
-For example, my setup usually looks something like this:
-
- PRE_PROCESS => 'config/main'
-
-config/main:
-
- [% DEFAULT style = 'text'
- section = template.section or 'home';
-
- PROCESS config/site
- + config/urls
- + config/macros
- + "config/style/$style"
- + "config/section/$section"
- + ...
- %]
-
-This allows me to set a single 'style' variable to control which config
-file gets pre-processed to set my various style options (colours, img paths,
-etc). For example:
-
-config/style/basic:
-
- [% style = {
- name = style # save existing 'style' var as 'style.name'
-
- # define various other style variables....
- col = {
- back => '#ffffff'
- text => '#000000'
- # ...etc...
- }
-
- logo = {
- # ...etc...
- }
-
- # ...etc...
- }
- %]
-
-Each source template can declare which section it's in via a META
-directive:
-
- [% META
- title = 'General Information'
- section = 'info'
- %]
-
- ...
-
-This controls which section configuration file gets loaded to set various
-other variables for defining the section title, menu, etc.
-
-config/section/info:
-
- [% section = {
- name = section # save 'section' var as 'section.name'
- title = 'Information'
- menu = [ ... ]
- # ...etc...
- }
- %]
-
-This illustrates the basic principal but you can extend it to perform
-pretty much any kind of per-document initialisation that you require.
-
-=head1 AUTHOR
-
-Andy Wardley E<lt>abw@andywardley.comE<gt>
-
-L<http://www.andywardley.com/|http://www.andywardley.com/>
-
-
-
-
-=head1 VERSION
-
-2.69, distributed as part of the
-Template Toolkit version 2.13, released on 30 January 2004.
-
-=head1 COPYRIGHT
-
- Copyright (C) 1996-2004 Andy Wardley. All Rights Reserved.
- Copyright (C) 1998-2002 Canon Research Centre Europe Ltd.
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-
-
-=cut
-
-# Local Variables:
-# mode: perl
-# perl-indent-level: 4
-# indent-tabs-mode: nil
-# End:
-#
-# vim: expandtab shiftwidth=4: