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

FreeBSD Manual Pages

  
 
  

home | help
HTML::Template::AssociUser:ContributedLPerlplate::Associate::FormValidator(3)

NAME
	       HTML::Template::Associate::FormValidator	- HTML::Template::Associate Data::FormValidator	plugin

SYNOPSIS
	       This class is not intended to be	used directly but rather through a
	       HTML::Template::Associate. It provides concrete class functionality, it
	       will take Data::FormValidator::Results object and reconstruct data structure
	       to one appropriate for use by the HTML::Template.

	       use CGI qw/:standard/;
	       use Data::FormValidator;
	       use HTML::Template;
	       use HTML::Template::Associate;

	       my $cgi = CGI->new;
	       #for testing purposes we	can add	some input to our cgi object
	       $cgi->param( 'fullname',	'John Doe' );
	       $cgi->param( 'phone', 6041112222	);
	       $cgi->param( 'email', 'invalid@email' );

	       my $input_profile = {
		       optional	=> [ qw( company fax country ) ],
		       required	=> [ qw( fullname phone	email address city state zipcode ) ],
		       constraints  => {
			       email =>	'email',
			       fax => 'american_phone',
			       phone =>	'american_phone',
			       zipcode => '/^\s*\d{5}(?:[-]\d{4})?\s*$/',
			       state =>	"state",
		       },
		       defaults	=> { country =>	"Canada" },
		       msgs => {
			       prefix=>	'error_',
			       missing => 'Not Here!',
			       invalid => 'Problematic!',
			       invalid_seperator => ' <br /> ',
			       format => 'ERROR: %s',
			       any_errors => 'some_errors',
		       }
	       };

	       my $validator = Data::FormValidator->new;
	       my $results = $validator->check ( scalar	$cgi->Vars, $input_profile );

	       my $associate = HTML::Template::Associate->new( {
		       target => 'FormValidator',
		       results => $results,
		       extra_arguments => [ $validator ] #not needed but just illustrated
	       } );

	       my $template = HTML::Template->new(
		       filename	=> 'test.tmpl',
		       associate => [ $cgi, $associate ]
	       );

	       print $template->output;

	       #and in our test.tmpl file we could have

	       Valid Fields:<br>
	       <TMPL_LOOP NAME=VALID_FIELDS>
	       Field Name: <TMPL_VAR NAME=FIELD_NAME><br>
	       Field Value: <TMPL_VAR NAME=FIELD_VALUE><br>
	       </TMPL_LOOP>

	       Missing Fields:<br>
	       <TMPL_LOOP NAME=MISSING_FIELDS>
	       Field Name: <TMPL_VAR NAME=FIELD_NAME><br>
	       Field Value: <TMPL_VAR NAME=FIELD_VALUE><br>
	       </TMPL_LOOP>

	       <TMPL_IF	NAME=INVALID_phone>
	       Phone: <TMPL_VAR	NAME="phone"> you supplied is invalid.
	       </TMPL_IF>

	       <TMPL_IF	NAME=MISSING_city>
	       City name is missing, please fix	this.
	       </TMPL_IF>

	       <!-- We can also	access our normal field	names
	       since $cgi object was passed as associate as well -->

	       I think <TMPL_VAR NAME=country> is very big country.

	       <!-- Optional use of Data::FormValidator::Results msgs interface	-->

	       Message Fields:

	       <TMPL_LOOP NAME=MSGS_FIELDS>
	       Field Name: <TMPL_VAR NAME=FIELD_NAME><br>
	       Field Value: <TMPL_VAR NAME=FIELD_VALUE><br>
	       </TMPL_LOOP>

	       <TMPL_IF	NAME=MSGS_error_city>
	       Our default error message set in	the profiling code is:
		       <TMPL_VAR NAME=MSGS_error_city>
	       </TMPL_IF>

	       The following will become available to your associate object/template:

	       Key	      /			   Perl		       /	   Template

	       Arrays /	Loops

	       VALID_FIELDS	/ $associate->param(q{VALID_FIELDS});	  / <TMPL_LOOP NAME=VALID_FIELDS>
	       MISSING_FIELDS	/ $associate->param(q{MISSING_FIELDS});	  / <TMPL_LOOP NAME=MISSING_FIELDS>
	       INVALID_FIELDS	/ $associate->param(q{INVALID_FIELDS});	  / <TMPL_LOOP NAME=INVALID_FIELDS>
	       UNKNOWN_FIELDS	/ $associate->param(q{UNKNOWN_FIELDS});	  / <TMPL_LOOP NAME=UNKNOWN_FIELDS>
	       MSGS_FIELDS	/ $associate->param(q{MSGS_FIELDS});	  / <TMPL_LOOP NAME=MSGS_FIELDS>

	       Variables

	       VALID_ParamA	  / $associate->param(q{VALID_ParamA});	      /	<TMPL_VAR NAME=VALID_ParamA>
	       MISSING_ParamB	  / $associate->param(q{MISSING_ParamB});     /	<TMPL_VAR NAME=MISSING_ParamB>
	       INVALID_ParamC	  / $associate->param(q{INVALID_ParamC});     /	<TMPL_VAR NAME=INVALID_ParamC>
	       UNKNOWN_ParamD	  / $associate->param(q{UNKNOWN_ParamD});     /	<TMPL_VAR NAME=UNKNOWN_ParamD>
	       MSGS_prefix_ParamE / $associate->param(q{MSGS_prefix_ParamE}); /	<TMPL_VAR NAME=MSGS_prefix_ParamE>

	       Inside Array / Loops we have the	following structure:

	       Perl

	       VALID_FIELDS => [ { FIELD_NAME => X }, FIELD_VALUE => Y }, ... ]

	       Template

	       <TMPL_LOOP NAME=VALID_FIELDS>
	       <TMPL_VAR NAME=FIELD_NAME>
	       <TMPL_VAR NAME=FIELD_VALUE>
	       </TMPL_LOOP>

	       For further explanation on what the VALID,MISSING,INVALID,UNKNOWN AND MSGS are
	       please refer to Data::FormValidator::Results. Please note that MSGS
	       works somewhat diffrently then others and corresponds to	$results->msgs([$config])
	       interface.

DESCRIPTION
	       Map Data::FormValidator::Results	object into a form suitable for	use by HTML::Template

USAGE
	       See above.

BUGS
	       If you find any please report to	author.

SUPPORT
	       See License.

AUTHOR
	       Alex Pavlovic
	       alex.pavlovic@taskforce-1.com
	       http://www.taskforce-1.com

COPYRIGHT
	       This program is free software; you can redistribute
	       it and/or modify	it under the same terms	as Perl	itself.

	       The full	text of	the license can	be found in the
	       LICENSE file included with this module.

SEE ALSO
	       HTML::Template::Associate HTML::Template::Associate::DBI	perl(1).

   init
	       Usage	 : $associate->init ( $results,	$extra_arguments );
	       Purpose	 : Initiliazes the object
	       Returns	 : concrete object instance
	       Argument	 : Data::FormValidator::Results	instance and extra hash	of arguments passed to factory
	       Comments	 : Factory class will call this	method automatically during concrete object construction
		       : Error is thrown depending whether the passed in results object	is of correct type

	       See Also	  : HTML::Template::Associate Data::FormValidator::Results

   runloop
	       Usage	 : used	internally to assign various prefixes/names to variables and loops

perl v5.32.1			  2HTML::Template::Associate::FormValidator(3)

NAME | SYNOPSIS | DESCRIPTION | USAGE | BUGS | SUPPORT | AUTHOR | COPYRIGHT | SEE ALSO

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

home | help