Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.13
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
perl5 /
CGI /
FormBuilder /
Template /
[ HOME SHELL ]
Name
Size
Permission
Action
Builtin.pm
9.77
KB
-rw-r--r--
CGI_SSI.pm
7.9
KB
-rw-r--r--
Div.pm
8.96
KB
-rw-r--r--
Fast.pm
6.22
KB
-rw-r--r--
HTML.pm
13.55
KB
-rw-r--r--
TT2.pm
6.87
KB
-rw-r--r--
Text.pm
9.38
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : TT2.pm
########################################################################### # Copyright (c) Nate Wiger http://nateware.com. All Rights Reserved. # Please visit http://formbuilder.org for tutorials, support, and examples. ########################################################################### package CGI::FormBuilder::Template::TT2; =head1 NAME CGI::FormBuilder::Template::TT2 - FormBuilder interface to Template Toolkit =head1 SYNOPSIS my $form = CGI::FormBuilder->new( fields => \@fields, template => { type => 'TT2', template => 'form.tmpl', variable => 'form', } ); =cut use Carp; use strict; use warnings; no warnings 'uninitialized'; use CGI::FormBuilder::Util; use Template; our $VERSION = '3.10'; sub new { my $self = shift; my $class = ref($self) || $self; my $opt = arghash(@_); $opt->{engine} = Template->new($opt->{engine} || {}) || puke $Template::ERROR unless UNIVERSAL::isa($opt->{engine}, 'Template'); return bless $opt, $class; } sub engine { return shift()->{engine}; } sub render { my $self = shift; my $tvar = shift || puke "Missing template expansion hashref (\$form->prepare failed?)"; my $tt2template = $self->{template} || puke "Template Toolkit template not specified"; my $tt2data = $self->{data} || {}; my $tt2var = $self->{variable}; # optional var for nesting if ($tt2var) { $tt2data->{$tt2var} = $tvar; } else { $tt2data = { %$tt2data, %$tvar }; } my $tt2output; # growing a scalar is so C-ish $self->{engine}->process($tt2template, $tt2data, \$tt2output) || puke $self->{engine}->error(); # string HTML output return $tt2output; } 1; __END__ =head1 DESCRIPTION This engine adapts B<FormBuilder> to use C<Template Toolkit>. To do so, specify the C<template> option as a hashref which includes the C<type> option set to C<TT2> and the C<template> option set to the name of the template you want processed. You can also add C<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): =head2 engine Returns a reference to the C<Template> object =head2 prepare Returns a hash of all the fields ready to be rendered. =head2 render Uses the prepared hash and expands the template, returning a string of HTML. =head1 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 C<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 C<variable> set to C<form> the variables are accessible as: [% form.jshead %] [% form.start %] etc. You can access individual fields via the C<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 C<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 C<engine> option to contain a reference to an existing C<Template> object or hash reference of options which are passed to the C<Template> constructor. You can also set the C<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 C<Template> or L<http://www.template-toolkit.org> =head1 SEE ALSO L<CGI::FormBuilder>, L<CGI::FormBuilder::Template>, L<Template> =head1 REVISION $Id: TT2.pm 100 2007-03-02 18:13:13Z nwiger $ =head1 AUTHOR Copyright (c) L<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. =cut
Close