| 
<?php/*
 * This example serves to demonstrate how to develop a custom input that
 * implements a new type of validation not supported by the main forms class.
 *
 * @(#) $Id: test_custom_validation.php,v 1.2 2007/03/02 05:58:27 mlemos Exp $
 *
 */
 
 require('forms.php');
 require('form_custom_validation.php');
 
 $form=new form_class;
 $form->NAME='custom_validation_form';
 $form->METHOD='POST';
 $form->ACTION='';
 $form->InvalidCLASS='invalid';
 $form->ShowAllErrors=0;
 $form->debug='trigger_error';
 $form->AddInput(array(
 'TYPE'=>'text',
 'ID'=>'first',
 'NAME'=>'first',
 'LABEL'=>'<u>F</u>irst name',
 'ACCESSKEY'=>'F',
 'ValidateAsNotEmpty'=>1,
 'ValidationErrorMessage'=>'It was not specified a valid first name.'
 ));
 $form->AddInput(array(
 'TYPE'=>'text',
 'ID'=>'second',
 'NAME'=>'second',
 'LABEL'=>'<u>S</u>econd name',
 'ACCESSKEY'=>'S',
 'ValidateAsNotEmpty'=>1,
 'ValidationErrorMessage'=>'It was not specified a valid second name.'
 ));
 
 /*
 *  Add a custom input that will be used only for validation purposes
 */
 $error=$form->AddInput(array(
 'TYPE'=>'custom',
 'ID'=>'validation',
 
 /*
 *  Specify the custom plug-in input class name.
 */
 'CustomClass'=>'form_custom_validation_class',
 
 /*
 *  Specify some custom parameters specific of this plug-in input
 */
 'FirstInput'=>'first',
 'FirstValidationErrorMessage'=>'The first name is contained in the second name.',
 'SecondInput'=>'second',
 'SecondValidationErrorMessage'=>'The second name is contained in the first name.',
 ));
 
 /*
 *  If something went wrong, probably due to missing or invalid parameters,
 *  it is safer to exit the script so the rest of the script does not execute
 */
 if(strlen($error))
 die('Error: '.$error);
 
 $form->AddInput(array(
 'TYPE'=>'submit',
 'VALUE'=>'Submit',
 'NAME'=>'doit'
 ));
 
 
 /*
 * The following lines are for testing purposes.
 * Remove these lines when adapting this example to real applications.
 */
 if(defined("__TEST"))
 {
 if(IsSet($__test_options["ShowAllErrors"]))
 $form->ShowAllErrors=$__test_options["ShowAllErrors"];
 }
 
 $focus='first';
 $form->LoadInputValues($form->WasSubmitted('doit'));
 $verify=array();
 if($form->WasSubmitted('doit'))
 {
 if(($error_message=$form->Validate($verify))=='')
 $doit=1;
 else
 {
 $doit=0;
 $error_message=HtmlEntities($error_message);
 Reset($verify);
 $focus=Key($verify);
 }
 }
 else
 {
 $error_message='';
 $doit=0;
 }
 
 if(!$doit)
 $form->ConnectFormToInput($focus, 'ONLOAD', 'Focus', array());
 
 $onload=HtmlSpecialChars($form->PageLoad());
 
 ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
 <title>Test for Manuel Lemos' PHP form class using a custom validation plug-in input</title>
 <style type="text/css"><!--
 .invalid { border-color: #ff0000; background-color: #ffcccc; }
 // --></style>
 </head>
 <body onload="<?php    echo $onload; ?>" bgcolor="#cccccc">
 <center><h1>Test for Manuel Lemos' PHP form class using a custom validation plug-in input</h1></center>
 <hr />
 <?php
 if($doit)
 {
 ?>
 <center><h2>OK</h2></center>
 <?php
 }
 else
 {
 $form->StartLayoutCapture();
 $title='Form custom validation plug-in test';
 $body_template='form_custom_validation.html.php';
 include('templates/form_frame.html.php');
 $form->EndLayoutCapture();
 
 /*
 *  The custom validation input must also be added to the form output,
 *  even though it is not a visible input in the form
 */
 $form->AddInputPart('validation');
 
 $form->DisplayOutput();
 }
 ?>
 <hr />
 </body>
 </html>
 
 |