2002/04/30
J Joseph Felten wanted to pass code references to -FOOTER and -HEADER
and have them called to produce the relevant output. This has been
implemented. You can still pass strings with the same behaviour as
usual.
2001/07/31
Lary Ecker <lary@bigfoot.com> provided a hebrew translation for the
messages; you need to use a (simple) custom header, see the -LANGUAGE
option for details; example1 has been updated to reflect this.
2001/01/05
Richard Lam pointed out a bug in the -JSCRIPT option. This has now been fixed,
but usage has changed.
2000/11/20
Tom Shield <shield@aem.umn.edu> noticed that file fields didn't always work
correctly and supplied a patch which uses multi-part forms if any of the
fields is a file field; I incorporated a modified version of the patch.
2000/05/24
Added new options -NAME, -ONSUBMIT and -JSCRIPT for Javascript users, plus
updated the German translation, all thanks to a patch supplied by Frank
Ridderbusch. Frank also pointed out that starting $why strings with a <br />
helps Netscape display forms properly (see the updated example2). He also
reported some problems under mod_perl; I'm using testing on ancient versions
at the moment and won't be able to do much until Debian 2.2 is on CD.
Added new options -USER_REQUIRED and -USER_INVALID; you can now specify your
own error message strings in these by setting -LANGUAGE to 'user'. This was
due to a request by Alex Bransby-Williams. example5 has been updated to show
examples of these. This means I won't be accepting any new translations since
you can write your own.
2000/04/23
You can now override the red * and blue + with any HTML you like to indicate
invalid and required fields respectively. The new options are -INVALID_HTML
and -REQUIRED_HTML. See the updated example1 for a garish example; this means
that you can use <img> tags, e.g.
-INVALID_HTML => '<img src="/images/invalid.png">',
This is thanks to a suggestion by Mark Lybrand who has also provided a Spanish
translation so you can now set -LANGUAGE to 'es'.
Note: at least one example (but not QuickForm itself) now requires my
readonly.pm pragma which is available from my website or CPAN.
2000/04/08
Added -HEADLINE which allows you to create titles (headlines) to separate out
sets of fields - got the idea from Simon Call. See example2 which has been
updated to reflect this. On-line examples are at:
http://www.perlpress.com/perl/quickform.html#examples
Added convenience field-level option -COLSPAN to for working with multiple
columns. See example2.
2000/04/06
At last: multi-column forms. You can now have forms with as many fields as you
like in a row; rows can have different numbers of fields (so you'll want to
use colspan in the -STYLE_FIELDVALUE option for wide fields). To use the new
feature set the record-level option -MULTI_COLUMN to true, and set -END_ROW to
true for each field which is the end of a row, and set colspan for fields
which must span columns. See example2 and example4 which have been revised to
show this new functionality. Thanks to Alex Bransby-Williams and Ben Thompson
for reminding me.
2000/03/20
Internal changes to improve memory efficiency.
No longer need to use -EXTRA_PATH for non-registry mod_perl; scripts that do
will still work because it will be ignored, and registry scripts don't need
changing anyway. Updated example6 to reflect this.
2000/03/17
If you have CGI scripts that use QuickForm they will run as-is under mod_perl
using Apache::Registry.
From v1.75 you can also run QuickForm under pure mod_perl, i.e. without using
Apache::Registry. You do have to modify the scripts slightly but this is
documented in the pod and also in the new example6 which has been added.
QuickForm is not specifically optimised for pure mod_perl, i.e. it doesn't
make use of the Apache request object, but should still deliver far better
performance.
2000/03/16
Marcel Dorenbos spotted a bug in example4 which I've now corrected.
2000/03/15
Preliminary experiments with mod_perl. Using Apache::Registry seems fine; but
outside of that does not work. Problem is that between form reloads (sometimes
even before the first reload) we get a handler not found error; simply
reloading solves the problem but is hardly a solution... hopefully once I
understand mod_perl better will fix, but if anyone figures it out I'll be
happy to include their fixes.
2000/03/14
Updated example4 to make it a tiny bit more generic along lines suggested by
Marcel Dorenbos.
2000/03/14
Corrected an error, identified by Lou Hevly, in the second example given in
the pod. Added -SPACE option, suggested by Lou Hevly, which includes some
whitespace in the HTML generated by QuickForm (but not by CGI.pm) to aid
debugging.
2000/02/21
Corrected an error, identified by Michael Ziege, in the first example given in
the pod.
2000/02/18
Corrected the tarball so that make test will now work.
2000/02/09
Fixed two bugs introduced with the greater style versatility.
2000/02/08
Cedric Scott requested that style options could be applied to individual rows,
not just to all rows and supplied a patch. This was clearly a good idea but
instead of only allowing styles to be applied on a per-field (i.e. per row)
basis the new style options I've implemented allow for style to be applied on
a per cell basis i.e. each label and each value, separately. The existing
style options continue to work as before since they apply `globally'. But you
can now over-ride them per-row or per-cell. See the -STYLE_DESC, -STYLE_ROW,
-STYLE_FIELDNAME and -STYLE_FIELDVALUE options under the Styles section of the
pod. Example 5 has been updated slightly to reflect the new usage and is now
truly garish.
2000/02/06
Added quickform.t. All this does is check that the module loads. Suggestions
(or better still code) to add to the test module is welcome.
2000/01/25
Made all hand generated HTML in QuickForm XHTML compliant (but your version of
CGI.pm might not be).
Updated the examples to be XHTML compliant too.
2000/01/18
Alex Bransby-Williams pointed out that applying a style to buttons did not
work in a popular browser, so now -STYLE_BUTTONS can either be in-line style
(which will be put in <STYLE> tags), or 'CENTER' which will cause
<CENTER>..buttons..</CENTER> to be output.
2000/01/07
Konrad Riedel corrected the German translations. Konrad also supplied a code
snippet for having a -INTRO option (for users of -TITLE) which I have now
included.
I have placed an introductory article at
http://www.perlpress.com/perl/quickform.html
1999/12/07
Minor documentation correction.
1999/12/01
Form-level error messages are now displayed before the required/invalid fields
messages.
Added -BORDER form-level option. The default is zero (no border), but can now
be set, e.g. to 1. This is useful if you use the new -DESC field-level option
which allows you to place some short descriptive text above each field. (Got
the idea from an article on the BYTE web site.)
Added -TABLE_OPTIONS so that you can change the style of the table.
Added -STYLE_ROW, -STYLE_DESC and -STYLE_WHY so that you can change the style
of the rows, descriptions and error messages.
(See example5).
1999/11/30
Fixed some bugs introduced in 1.56 (please use earlier or later versions
instead). 1.57 is now the current version and is recommended.
1999/11/24
Added new -LANGUAGE option, 'cy' welsh. Thanks to Catherine Dixon and Ed
Bradburn.
1999/11/23
Added ability to create a button which resets the form to its default values.
(See -DEFAULTS option of -BUTTONS).
Added user-definable styles (or classes) with the options:
-STYLE_FIELDNAME, -STYLE_FIELDVALUE and -STYLE_BUTTONS.
Thanks to Alex Bransby-Williams for the suggestions.
Updated linux-help (example3) to show these options in practice.
1999/11/03
Minor documentation clarification regarding -BUTTONS.
1999/10/21
Minor documentation clarification regarding query strings in the -CHECK
section.
Added a fourth example - this one shows how to use QuickForm with DBI to
provide simple add/edit/delete/list records.
1999/10/19
Bug fix: no longer show labels for hidden fields.
1999/10/16
Added -CHECK option: this allows you to create URLs to a form that have
different sets of default values without triggering validation until the user
actually presses a button. Again thanks to Paul Johnston.
Added 3 (barely documented!) example scripts - they are not "production
quality", and are provided solely to show various approaches to using
QuickForm.
1999/10/03
If the user enters invalid data we flagged it with * but that was it. Now you
can add a textual explanation of why the data is invalid and this will appear
to the right of any invalid fields. This is achieved by returning a two
element array from your validation routines. (Existing code will work fine so
no need to change anything.) See the pod for examples.
1999/09/26
Bug fixes on the -CLEAN option; documentation corrections, e.g. to the
&cleanup example. Added a new option: you can now have as many buttons as you
want using the new -BUTTONS option. Again thanks to Paul for the suggestion.
1999/09/22
Added -CLEAN option. This lets you specify a subroutine to be executed on any
field that has been validated (providing the whole form is valid) to clean it
up, e.g. make it all upper case or delete spurious whitespace, etc. Thanks to
Paul Johnston for the suggestion.
1999/09/21
Corrected documentation error.
1999/09/17
Added -LANGUAGE options 'fr' (french) and 'de' (german) - translation was by
Babelfish so it they're wrong please let me know!
1999/09/16
Corrected some documentation errors. Added some new options so that you can
default the size of every textfield and textarea (but still override the
defaults individually of course), see the -SIZE, -MAXLENGTH, -ROWS and
-COLUMNS options.
INCOMPATIBLE CHANGE
Instead of calling QuickForm::run, you now call show_form. (This is because of
a mistake made in earlier versions regarding QuickForm's package which has now
been corrected. Sorry for this inconvenience.)
1999/09/15
Now use language of 'en' for english (although 'english' is supported for
backward compatibility).
1999/09/01
Corrected Makefile.PL plus minor improvements to the code and documentation.
1999/08/28
Version 1.00.
1999/08/24
Created. Thanks to Paul Johnston for the idea.