Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CGI::FormBuilder::TempUser:Contributed Perl CGI::FormBuilder::Template::TT2(3)

NAME
       CGI::FormBuilder::Template::TT2 - FormBuilder interface to Template
       Toolkit

SYNOPSIS
	   my $form = CGI::FormBuilder->new(
			   fields   => \@fields,
			   template => {
			       type => 'TT2',
			       template	=> 'form.tmpl',
			       variable	=> 'form',
			   }
		      );

DESCRIPTION
       This engine adapts FormBuilder to use "Template Toolkit".  To do	so,
       specify the "template" option as	a hashref which	includes the "type"
       option set to "TT2" and the "template" option set to the	name of	the
       template	you want processed. You	can also add "variable"	as an option
       (among others) to denote	the variable name that you want	the form data
       to be referenced	by:

	   my $form = CGI::FormBuilder->new(
			   fields => \@fields,
			   template => {
			       type => 'TT2',
			       template	=> 'userinfo.tmpl',
			       variable	=> 'form',
			   }
		      );

       The following methods are provided (usually only	used internally):

   engine
       Returns a reference to the "Template" object

   prepare
       Returns a hash of all the fields	ready to be rendered.

   render
       Uses the	prepared hash and expands the template,	returning a string of
       HTML.

TEMPLATES
       The template might look something like this:

	   <html>
	   <head>
	     <title>[% form.title %]</title>
	     [%	form.jshead %]
	   </head>
	   <body>
	     [%	form.start %]
	     <table>
	       [% FOREACH field	= form.fields %]
	       <tr valign="top">
		 <td>
		   [% field.required
			 ? "<b>$field.label</b>"
			 : field.label
		   %]
		 </td>
		 <td>
		   [% IF field.invalid %]
		   Missing or invalid entry, please try	again.
	       <br/>
	       [% END %]

	       [% field.field %]
	     </td>
	   </tr>
	       [% END %]
	       <tr>
		 <td colspan="2" align="center">
		   [% form.submit %] [%	form.reset %]
		 </td>
	       </tr>
	     </table>
	     [%	form.end %]
	   </body>
	   </html>

       By default, the Template	Toolkit	makes all the form and field
       information accessible through simple variables.

	   [% jshead %]	 -  JavaScript to stick	in <head>
	   [% title  %]	 -  The	<title>	of the HTML form
	   [% start  %]	 -  Opening <form> tag and internal fields
	   [% submit %]	 -  The	submit button(s)
	   [% reset  %]	 -  The	reset button
	   [% end    %]	 -  Closing </form> tag
	   [% fields %]	 -  List of fields
	   [% field  %]	 -  Hash of fields (for	lookup by name)

       You can specify the "variable" option to	have all these variables
       accessible under	a certain namespace.  For example:

	   my $form = CGI::FormBuilder->new(
	       fields => \@fields,
	       template	=> {
		    type => 'TT2',
		    template =>	'form.tmpl',
		    variable =>	'form'
	       },
	   );

       With "variable" set to "form" the variables are accessible as:

	   [% form.jshead %]
	   [% form.start  %]
	   etc.

       You can access individual fields	via the	"field"	variable.

	   For a field named...	 The field data	is in...
	   --------------------	 -----------------------
	   job			 [% form.field.job   %]
	   size			 [% form.field.size  %]
	   email		 [% form.field.email %]

       Each field contains various elements.  For example:

	   [% myfield =	form.field.email %]

	   [% myfield.label    %]  # text label
	   [% myfield.field    %]  # field input tag
	   [% myfield.value    %]  # first value
	   [% myfield.values   %]  # list of all values
	   [% myfield.option   %]  # first value
	   [% myfield.options  %]  # list of all values
	   [% myfield.required %]  # required flag
	   [% myfield.invalid  %]  # invalid flag

       The "fields" variable contains a	list of	all the	fields in the form.
       To iterate through all the fields in order, you could do	something like
       this:

	   [% FOREACH field = form.fields %]
	   <tr>
	    <td>[% field.label %]</td> <td>[% field.field %]</td>
	   </tr>
	   [% END %]

       If you want to customise	any of the Template Toolkit options, you can
       set the "engine"	option to contain a reference to an existing
       "Template" object or hash reference of options which are	passed to the
       "Template" constructor.	You can	also set the "data" item to define any
       additional variables you	want accesible when the	template is processed.

	   my $form = CGI::FormBuilder->new(
	       fields => \@fields,
	       template	=> {
		    type => 'TT2',
		    template =>	'form.tmpl',
		    variable =>	'form',
		    engine   =>	{
			 INCLUDE_PATH => '/usr/local/tt2/templates',
		    },
		    data => {
			 version => 1.23,
			 author	 => 'Fred Smith',
		    },
	       },
	   );

       For further details on using the	Template Toolkit, see "Template" or
       <http://www.template-toolkit.org>

SEE ALSO
       CGI::FormBuilder, CGI::FormBuilder::Template, Template

REVISION
       $Id: TT2.pm 100 2007-03-02 18:13:13Z nwiger $

AUTHOR
       Copyright (c) Nate Wiger	<http://nateware.com>. All Rights Reserved.

       Template	Tookit support is largely due to a huge	patch from Andy
       Wardley.

       This module is free software; you may copy this under the terms of the
       GNU General Public License, or the Artistic License, copies of which
       should have accompanied your Perl kit.

perl v5.32.1			  2016-08-16CGI::FormBuilder::Template::TT2(3)

NAME | SYNOPSIS | DESCRIPTION | TEMPLATES | SEE ALSO | REVISION | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CGI::FormBuilder::Template::TT2&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help