<?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> |