CGI-FormBuilder

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    You can now use "$form->prepare()" to get back an expanded hashref just
    before "$form->render()" is called. This allows you to use FormBuilder
    with Catalyst or other frameworks more easily, where the rendering is
    done elsewhere:

        my %expansion = $form->prepare;

    This could be passed directly to, say, Template Toolkit without having
    to use FormBuilder's Template Toolkit support.

  New "inflate" option to field()
    This is used the convert fields on the fly into objects or other values.
    For example, you could convert a "date" field into a DateTime object.
    Nice patch from Mark Hedges, check it out.

  Turkish messages
    Thanks to Recai Oktas.

  Added "missing" property for fields
    This can be queried in templates. To see if a field is missing
    altogether, you can check "field.missing" or "missing-field" depending
    on your template engine of choice.

  Removal of custom "puke" and "belch"
    FormBuilder now uses "Carp" and @CARP_NOT to handle its errors. As such,
    you will probably notice some differences in error output. The benefit
    is that setting "debug" will give you a stack trace on fatal errors.

  CGI::FormBuilder::Template::Builtin
    Moved the "render_builtin()" method to the above module, to unify the
    rendering schemes.

  New FORMBUILDER_DEBUG environment variable
    Setting this has the same effect as using the "debug" option.

  Removal of excess documentation
    Removed all the stub docs from "Field::*" and "Messages::*" to make CPAN
    happy.

VERSION 3.0302
    This is a bugfix release to repair these main items:

        - optgroups bugfix for complex arrays
        - removal of HTML::Entities support due to utf8 issues
        - new es_ES Messages module with better translations
        - a patch from Mark Hedges to enable plugin modules for mailresults()

    The rest of the features remain the same as below.

VERSION 3.03
  Subclassable Fields
    Each field is now rendered by its own class, named for the field type.
    For example, text fields are rendered by
    "CGI::FormBuilder::Field::text". This allows you to create custom field
    types and plugging them in by creating your own
    "CGI::FormBuilder::Field::whatever_you_want" module. Thanks to Peter
    Eichman for his contributions to this scheme.

  Messages Localization
    All messages are now handled in a similar way to field types: They are
    delegated to "CGI::FormBuilder::Messages::locale" where "locale" is the
    appropriate string such as "en_US" or "da_DK". A number of localizations
    are included as part of the standard distribution.

    There are two ways to use these messages: Either the 'auto' messages
    mode or by specifying a specific locale:

        my $form = CGI::FormBuilder->new(messages => 'auto');   # check client
        my $form = CGI::FormBuilder->new(messages => ':da_DK'); # specified

    You can create your own messages by copying "_example.pm" and modifying
    it for your language. When using messages in this way, the HTTP Charset
    is changed to "utf-8".

  Select optgroup support
    By using the "field()" option "optgroups", you can now cause select
    fields to automatically generate optgroup tags:

        $form->field(name => 'browser', options => \@opt, optgroups => 1);

    See the documentation on "optgroups" for more details.

  Data::FormValidator Support
    Thanks to another great patch from Peter Eichman, "Data::FormValidator"
    is supported as a validation option to "new()", just by passing it in as
    an object. See the documentation on "validate" for more information.

  Option sorting by LABELNAME or LABELNUM
    You can now sort options by "LABELNAME" or "LABELNUM", similar to the
    value-based sorting of "NAME" and "NUM". See the documentation for more
    details.

  XHTML Compliance
    Generated code now validates against <http://validator.w3.org>. This
    includes stuff like lowercase "get" and "post" methods, lowercase
    "onchange" and "onsubmit" actions, and so on.

VERSION 3.02
  Multi-Page Form Support
    A new module, "CGI::FormBuilder::Multi", has been added to handle the
    navigation and state of multi-page forms. A multi-page form is actually
    composed of several individual forms, tied together with the special CGI
    param "_page":

        my $multi = CGI::FormBuilder::Multi->new(
                         # first args are hashrefs per-form
                         \%form1_opts,
                         \%form2_opts,
                         \%form3_opts,

                         # remaining options apply to all forms
                         header => 1,
                         method => 'POST',
                    );

        my $form = $multi->form;    # current form

        if ($form->submitted && $form->validate) {

            # you write this
            do_data_update($form->fields);

            # last page?
            if ($multi->page == $multi->pages) {
                print $form->confirm;
                exit;



( run in 1.084 second using v1.01-cache-2.11-cpan-ceb78f64989 )