Provided by: libhtml-formfu-perl_2.01000-2_all bug

NAME

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

SYNOPSIS

           ---
           elements:
             - type: Date
               name: birthdate
               label: 'Birthdate:'
               day:
                 prefix: "- Day -"
               month:
                 prefix: "- Month -"
               year:
                 prefix: "- Year -"
                 less: 70
                 plus: 0
               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".

   default_natural
       Arguments: $date_string

           - type: Date
             default_natural: 'today'

       Accepts a date/time string suitable for passing to "parse_datetime" in
       DateTime::Format::Natural.

   default_datetime_args
           - type: Date
             default_natural: 'today'
             default_datetime_args:
               set_time_zone: 'Europe/London'

       Accepts a hashref of method-names / values that will be called on the "default" DateTime
       object, before the select fields' values are set from it.

   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 ''.

       prefix_loc

       Arguments: $localization_key

       Arguments: \@localization_keys

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

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

       Use "prefix_loc" insted of "prefix".

   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 ''.

       prefix_loc

       Arguments: $localization_key

       Arguments: \@localization_keys

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

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

       Use "prefix_loc" insted of "prefix".

       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 ''.

       prefix_loc

       Arguments: $localization_key

       Arguments: \@localization_keys

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

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

       Use "prefix_loc" insted of "prefix".

       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

       reverse

       Arguments: bool

       Default Value: 0

       If true, the list of years is listed in reverse (decreasing) order.

   field_order
       Arguments: \@fields

       Default Value: ['day', 'month', 'year']

       Specify the order of the date fields in the rendered HTML.

       Not all 3 fields are required. No single field can be used more than once.

   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, its 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 its 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|HTML::FormFu/get_fields" method, such that it returns both itself and its
       child elements.

SEE ALSO

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

       HTML::FormFu

AUTHOR

       Carl Franks, "cfranks@cpan.org"

LICENSE

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