From: Kirrily R. <sk...@us...> - 2001-02-28 21:54:32
|
Update of /cvsroot/formmagick/formmagick/lib/CGI/FormMagick In directory usw-pr-cvs1:/tmp/cvs-serv30014/lib/CGI/FormMagick Modified Files: Validator.pm Log Message: Whoa, look at all that! Duh. That's what I get for copying files around. What's actually changed: - updated FormMagick.pm to call user-supplied validation routines - updated docco in FM.pm and Validator.pm to better explain certain stuff like the DWIMishness in OPTIONS fields and how to use multiple validation routines - miscellaneous docco fixes for 0.3.0 Index: Validator.pm =================================================================== RCS file: /cvsroot/formmagick/formmagick/lib/CGI/FormMagick/Validator.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Validator.pm 2001/02/27 23:46:07 1.1 --- Validator.pm 2001/02/28 21:55:52 1.2 *************** *** 407,414 **** =back ! These validation routines may be overridden and others may be added on a per-application basis. To do this, simply define a subroutine in your ! CGI script that works in a similar way and use its name in the ! VALIDATION attribute in your XML. =head1 AUTHOR --- 407,473 ---- =back ! =head2 Using more than one validation routine per field ! ! You can use multiple validation routines like this: ! ! VALUE="foo" VALIDATION="my_routine, my_other_routine" ! ! However, there are some requirements on formatting to make sure that ! FormMagick can parse what you've given it. ! ! =over 4 ! ! =item * ! ! Parens are optional on subroutines with no args. C<my_routine> is ! equivalent to C<my_routine()>. ! ! =item * ! ! You B<MUST> put a comma then a space between routine names, eg ! C<my_routine, my_other_routine> B<NOT> C<my_routine,my_other_routine>. ! ! =item * ! ! You B<MUST NOT> put a comma between args to a routine, eg ! C<my_routine(1,2,3)> B<NOT> C<my_routine(1, 2, 3)>. ! ! =back ! ! This will be fixed to be more flexible in a later release. ! ! =head2 Making your own routines ! ! FormMagick's validation routines may be overridden and others may be added on a per-application basis. To do this, simply define a subroutine in your ! CGI script that works in a similar way to the routines provided by ! CGI::FormMagick::Validator and use its name in the VALIDATION attribute ! in your XML. ! ! The arguments passed to the validation routine are the value of the ! field (to be validated) and any subsequent arguments given in the ! VALIDATION attribute. For example: ! ! VALUE="foo" VALIDATION="my_routine" ! ===> my_routine(foo) ! ! VALUE="foo" VALIDATION="my_routine(42)" ! ===> my_routine(foo, 42) ! ! The latter type of validation routine is useful for routines like ! C<minlength()> and C<lengthrange()> which come with ! CGI::FormMagick::Validator. ! ! Here's an example routine that you might write: ! ! sub my_grep { ! my $data = shift; ! my @list = @_; ! if (grep /$data/, @list) { ! return "OK" ! } else { ! return "That's not one of: @list" ! } ! } =head1 AUTHOR |