The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

HTML::FormFu::Element::Date - 3 select menu multi-field

SYNOPSIS

    ---
    elements:
      - type: date
        name: foo
        auto_inflate: 1

DESCRIPTION

Creates a multi element containing 3 select menus for the day, month and year.

A date element named foo would result in 3 select menus with the names foo.day, foo.month and foo.year. The names can instead be overridden by the name value in "day", "month" and "year".

This element automatically merges the input parameters from the select menu into a single date parameter (and doesn't delete the individual menu's parameters).

METHODS

default

Arguments: DateTime object

Arguments: $date_string

Accepts either a DateTime object, or a string containing a date, matching the "strftime" format. Overwrites any default value set in "day", "month" or "year".

strftime

Default Value: "%d-%m-%Y"

The format of the date as returned by "params" in HTML::FormFu, if "auto_inflate" is not set.

If "auto_inflate" is used, this is still the format that the parameter will be in prior to the DateTime inflator being run; which is what any Filters and Constraints will receive.

day

Arguments: \%setting

Set values effecting the day select menu. Known keys are:

name

Override the auto-generated name of the select menu.

default

Set the default value of the select menu

prefix

Arguments: $value

Arguments: \@values

A string or arrayref of strings to be inserted into the start of the select menu.

Each value is only used as the label for a select item - the value for each of these items is always the empty string ''.

month

Arguments: \%setting

Set values effecting the month select menu. Known keys are:

name

Override the auto-generated name of the select menu.

default

Set the default value of the select menu

prefix

Arguments: $value

Arguments: \@values

A string or arrayref of strings to be inserted into the start of the select menu.

Each value is only used as the label for a select item - the value for each of these items is always the empty string ''.

names

Arguments: \@months

A list of month names used for the month menu.

If not set, the list of month names is obtained from DateTime::Locale using the locale set in "languages" in HTML::FormFu.

short_names

Argument: bool

If true (and months is not set) the list of abbreviated month names is obtained from DateTime::Locale using the locale set in "languages" in HTML::FormFu.

year

Arguments: \%setting

Set values effecting the year select menu. Known keys are:

name

Override the auto-generated name of the select menu.

default

Set the default value of the select menu

prefix

Arguments: $value

Arguments: \@values

A string or arrayref of strings to be inserted into the start of the select menu.

Each value is only used as the label for a select item - the value for each of these items is always the empty string ''.

list

Arguments: \@years

A list of years used for the year menu.

If this is set, reference, less and plus are ignored.

reference

Arguments: $year

Default Value: the current year, calculated from time()

If list is not set, the list is created from the range of reference - year_less to reference + year_plus.

less

Arguments: $count

Default Value: 0

plus

Arguments: $count

Default Value: 10

auto_inflate

If true, a DateTime Inflator will automatically be added to the element, and it will be given a formatter so that stringification will result in the format specified in "strftime".

If you require the DateTime Inflator to have a different stringification format to the format used internally by your Filters and Constraints, then you must explicitly add your own DateTime Inflator, rather than using "auto_inflate".

CAVEATS

Although this element inherits from HTML::FormFu::Element::Block, it's behaviour for the methods filter/filters, constraint/constraints, inflator/inflators, validator/validators and transformer/transformers is more like that of a field element, meaning all processors are added directly to the date element, not to it's select-menu child elements.

This element's get_elements and get_all_elements are inherited from HTML::FormFu::Element::Block, and so have the same behaviour. However, it overrides the get_fields method, such that it returns both itself and it's child elements.

SEE ALSO

Is a sub-class of, and inherits methods from HTML::FormFu::Element::_Field, HTML::FormFu::Element::Multi, HTML::FormFu::Element::Block, HTML::FormFu::Element

HTML::FormFu::FormFu

AUTHOR

Carl Franks, cfranks.org

LICENSE

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 537:

alternative text 'filter/filters' contains non-escaped | or /

alternative text 'constraint/constraints' contains non-escaped | or /

alternative text 'inflator/inflators' contains non-escaped | or /

alternative text 'validator/validators' contains non-escaped | or /

alternative text 'transformer/transformers' contains non-escaped | or /