Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

html::formhandler::field::compound(3pm) [debian man page]

HTML::FormHandler::Field::Compound(3pm) 		User Contributed Perl Documentation		   HTML::FormHandler::Field::Compound(3pm)

NAME
HTML::FormHandler::Field::Compound - field consisting of subfields VERSION
version 0.40013 SYNOPSIS
This field class is designed as the base (parent) class for fields with multiple subfields. Examples are HTML::FormHandler::Field::DateTime and HTML::FormHandler::Field::Duration. A compound parent class requires the use of sub-fields prepended with the parent class name plus a dot has_field 'birthdate' => ( type => 'DateTime' ); has_field 'birthdate.year' => ( type => 'Year' ); has_field 'birthdate.month' => ( type => 'Month' ); has_field 'birthdate.day' => ( type => 'MonthDay'); If all validation is performed in the parent class so that no validation is necessary in the child classes, then the field class 'Nested' may be used. The array of subfields is available in the 'fields' array in the compound field: $form->field('birthdate')->fields Error messages will be available in the field on which the error occurred. You can access 'error_fields' on the form or on Compound fields (and subclasses, like Repeatable). The process method of this field runs the process methods on the child fields and then builds a hash of these fields values. This hash is available for further processing by "actions" in HTML::FormHandler::Field and the validate method. widget Widget type is 'compound' build_update_subfields You can set 'defaults' or other settings in a 'build_update_subfields' method, which contains attribute settings that will be merged with field definitions when the fields are built. Use the 'by_flag' key with 'repeatable', 'compound', and 'contains' subkeys, or use the 'all' key for settings which apply to all subfields in the compound field. AUTHOR
FormHandler Contributors - see HTML::FormHandler COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Gerda Shank. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-25 HTML::FormHandler::Field::Compound(3pm)

Check Out this Related Man Page

HTML::FormHandler::Field::Repeatable(3pm)		User Contributed Perl Documentation		 HTML::FormHandler::Field::Repeatable(3pm)

NAME
HTML::FormHandler::Field::Repeatable - repeatable (array) field VERSION
version 0.40013 SYNOPSIS
In a form, for an array of hashrefs, equivalent to a 'has_many' database relationship. has_field 'addresses' => ( type => 'Repeatable' ); has_field 'addresses.address_id' => ( type => 'PrimaryKey' ); has_field 'addresses.street'; has_field 'addresses.city'; has_field 'addresses.state'; In a form, for an array of single fields (not directly equivalent to a database relationship) use the 'contains' pseudo field name: has_field 'tags' => ( type => 'Repeatable' ); has_field 'tags.contains' => ( type => 'Text', apply => [ { check => ['perl', 'programming', 'linux', 'internet'], message => 'Not a valid tag' } ] ); or use 'contains' with single fields which are compound fields: has_field 'addresses' => ( type => 'Repeatable' ); has_field 'addresses.contains' => ( type => '+MyAddress' ); If the MyAddress field contains fields 'address_id', 'street', 'city', and 'state', then this syntax is functionally equivalent to the first method where the fields are declared with dots ('addresses.city'); You can pass attributes to the 'contains' field by supplying a 'contains' hashref. has_field 'addresses' => ( type => 'Repeatable, init_contains => { wrapper_attr => { class => ['hfh', 'repinst'] } }, ); DESCRIPTION
This class represents an array. It can either be an array of hashrefs (compound fields) or an array of single fields. The 'contains' keyword is used for elements that do not have names because they are not hash elements. This field node will build arrays of fields from the the parameters or an initial object, or empty fields for an empty form. The name of the element fields will be an array index, starting with 0. Therefore the first array element can be accessed with: $form->field('tags')->field('0') $form->field('addresses')->field('0)->field('city') or using the shortcut form: $form->field('tags.0') $form->field('addresses.0.city') The array of elements will be in "$form->field('addresses')->fields". The subfields of the elements will be in a fields array in each element. foreach my $element ( $form->field('addresses')->fields ) { foreach my $field ( $element->fields ) { # do something } } Every field that has a 'fields' array will also have an 'error_fields' array containing references to the fields that contain errors. Complications When new elements are created by a Repeatable field in a database form an attempt is made to re-load the Repeatable field from the database, because otherwise the repeatable elements will not have primary keys. Although this works, if you have included other fields in your repeatable elements that do *not* come from the database, the defaults/values must be able to be loaded in a way that works when the form is initialized from the database item. This is only an issue if you re-present the form after the database update succeeds. ATTRIBUTES
index This attribute contains the next index number available to create an additional array element. num_when_empty This attribute (default 1) indicates how many empty fields to present in an empty form which hasn't been filled from parameters or database rows. num_extra When the field results are built from an existing object (item or init_object) an additional number of repeatable elements will be created equal to this number. Default is 0. add_extra When a form is submitted and the field results are built from the input parameters, it's not clear when or if an additional repeatable element might be wanted. The method 'add_extra' will add an empty repeatable element. $form->process( params => {....} ); $form->field('my_repeatable')->add_extra(1); This might be useful if the form is being re-presented to the user. AUTHOR
FormHandler Contributors - see HTML::FormHandler COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Gerda Shank. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-25 HTML::FormHandler::Field::Repeatable(3pm)
Man Page