| class Form
Helper functions for outputting form elements.
Wraps form fields (e.g. from Fb) with additional HTML.
Most wrapping will done using the __callStatic method which actually just calls Form::fieldAuto.
That method uses reflection to look for a custom docblock tag, @wrap-in-fieldset.
If that docblock tag is found, the field is wrapped in Form::fieldFieldset
If that docblock tag is not found (the most common case), the field is wrapped in Form::fieldPlain
If the field being wrapped isn't in the Fb helper, the methods fieldAuto, fieldPlain, and fieldFieldset
can be invoked directly.
The outermost wrapper DIV around the field has a class of "field-element".
Additional classes are also added:
 - The method and class name, in the format 'field-element--id-<name>'
 - If an "id" attribute is set, in the format 'field-element--id-<id>'
 - If the field is required, 'field-element--required'
 - If the field is disabled, 'field-element--disabled'
 - If the field has an error, 'field-element--error'
 - One or more custom classes can be specified using the attribute "-wrapper-class".
   Each (array or space separated) class is prefixed with 'field-element--'ExampleForm::setData($data);
Form::setErrors($errors);
 
Form::nextFieldDetails('First name', true);
echo Form::text('first_name');
 
Form::nextFieldDetails('Email', true, 'Please enter your email address');
echo Form::email('email', [], ['-wrapper-class' => 'small']);
 
Form::nextFieldDetails('Phone', false, 'Enter a phone number using the unique UI');
echo Form::fieldPlain('SproutModules\Someone\CustomModule\Helpers\FbHack::phone', 'phone', [], []);Variables
| Name | Visibility | Description | 
|---|
 | $errors | (static) |  |  | $id_prefix | (static) |  |  | $name_format | (static) |  |  | $next_helptext | (static) |  |  | $next_label | (static) |  |  | $next_required | (static) |  |  Functions
| Name | Visibility | Description | 
|---|
 | __callStatic | public (static) | Auto-wrapper around Fb methods |  | autofillList | public (static) | Returns HTML for an auto-complete list of records |  | checkboxList | public (static) | Returns HTML for a list of checkboxes, applying name conversions along the way |  | convertFieldName | protected (static) | Format a field name as per the specification defined by Form::setFieldNameFormat |  | fieldAuto | public (static) | Return HTML for a field, with the wrapping HTML detected automatically. |  | fieldFieldset | public (static) | Return HTML for a field wrapped in a FIELDSET |  | fieldMethodClass | protected (static) | Convert a full method name (e.g. Sprout\Helpers\Fb::text) into a friendly class name |  | fieldPlain | public (static) | Return HTML for a 'plain' field, i.e. one which doesn't require a FIELDSET wrapped around it. |  | genId | protected (static) | Generate a unique id which should be stable across calls to this URL |  | getData | public (static) | Gets the form per-field value for a single field |  | getFieldErrors | public (static) | Return the errors for a given field |  | html | public (static) | Return HTML which has been wrapped in the form field DIVs |  | loadFromSession | public (static) | Load data and errors from the session, with optional record id validation |  | money | public (static) | Returns HTML for a money field, using Fb::money to generate the field itself |  | multiradio | public (static) | Returns HTML for a bunch of radiobuttons, using Fb::multiradio to generate the fields |  | nextFieldDetails | public (static) | Set the details for the next field which will be outputted. |  | number | public (static) | Returns HTML for a number field, using Fb::number to generate the field itself |  | out | public (static) | Return content which has been HTML-encoded and wrapped in the form field DIVs |  | passString | protected (static) | Returns the first argument |  | password | public (static) | Returns HTML for a password field, using Fb::password to generate the field itself |  | resetField | public (static) | Reset the state machine for field values |  | setData | public (static) | Set form per-field values for the fields |  | setErrors | public (static) | Set per-field error messages to display |  | setFieldIdPrefix | public (static) | Sets the prefix for generated IDs |  | setFieldNameFormat | public (static) | Set a format string which will alter the field name prior to being passed to the underlying render method |  | setFieldValue | public (static) | Sets the value for a single field |  | text | public (static) | Returns HTML for a text field, using Fb::text to generate the field itself |  string Form::__callStatic (  string $func ,  array $args  ); 
 
Auto-wrapper around Fb methods
Will wrap the Fb method with the same name as the called method, e.g. Form::datepicker wraps Fb::datepicker
Wrapping is done using Form::fieldAuto string Form::autofillList (  string $name ,  array $attrs ,  array $options  ); 
 
Returns HTML for an auto-complete list of records
The form data for this field should be an array of arrays with at least the following keys:
[
    'id' => record ID,
    'value' => title text visible in the list item,
    'orderkey' => ordinal value for record ordering
]string Form::checkboxList (  array $checkboxes ,  array $attrs  ); 
 
Returns HTML for a list of checkboxes, applying name conversions along the way
Uses Fb::checkboxBoolList to generate the underlying checkbox list string Form::convertFieldName (  string $name  ); 
 
Format a field name as per the specification defined by Form::setFieldNameFormat string Form::fieldAuto (  callable $method ,  string $name ,  array $attrs ,  array $options  ); 
 
Return HTML for a field, with the wrapping HTML detected automatically.
To enable fieldset wrapping, add the docblock tag @wrap-in-fieldset to the field generation method string Form::fieldFieldset (  callable $method ,  string $name ,  array $attrs ,  array $options  ); 
 
Return HTML for a field wrapped in a FIELDSET
The main wrapping DIV will contain additional classes if the field is required, disabled or has an error.
A class is also output for hte field method name (if the name contains "Sprout\Helpers\Fb::" this is removed)
If the field has an explicit ID set, that will be added as a class on the wrapper too.
The special attribute "-wrapper-class" can be used to add classes to the wrapper DIV.
Multiple classes can be specified, space separated.
These classes will be prefixed with "field-element--" string Form::fieldMethodClass (  string $method  ); 
 
Convert a full method name (e.g. Sprout\Helpers\Fb::text) into a friendly class name
The classes Fb and Form aren't emitted, but all other class names are string Form::fieldPlain (  callable $method ,  string $name ,  array $attrs ,  array $options  ); 
 
Return HTML for a 'plain' field, i.e. one which doesn't require a FIELDSET wrapped around it.
The main wrapping DIV will contain additional classes if the field is required, disabled or has an error.
A class is also output for the field method name (if the name contains "Sprout\Helpers\Fb::" this is removed)
If the field has an explicit ID set, that will be added as a class on the wrapper too.
The special attribute "-wrapper-class" can be used to add classes to the wrapper DIV.
Multiple classes can be specified, space separated.
These classes will be prefixed with "field-element--" string Form::genId (  ); 
 
Generate a unique id which should be stable across calls to this URL
as long as the number and order of fields on the page remains the same unknown Form::getData (  string $field  ); 
 
Gets the form per-field value for a single field
As form field datas are stored using the Fb class, this method just gets the data from there NULL|array Form::getFieldErrors (  string $field_name  ); 
 
Return the errors for a given field
Supports nested error arrays; If $field_name is something like member[5][test] then the error
will be read from self::$errors['member']['5']['test'] string Form::html (  string $html  ); 
 
Return HTML which has been wrapped in the form field DIVs null|array Form::loadFromSession (  string $key [,  mixed $verify_record_id ] ); 
 
Load data and errors from the session, with optional record id validation
Expected session keys:
    record_id       Checked against $verify_record_id, session data is thrown away in case of mismatch
    field_values    Field data, loaded using Form::setData
    field_errors    Field errors, loaded using Form::setErrorsstring Form::money (  string $name ,  array $attrs ,  array $options  ); 
 
Returns HTML for a money field, using Fb::money to generate the field itself string Form::multiradio (  string $name ,  array $attrs ,  array $options  ); 
 
Returns HTML for a bunch of radiobuttons, using Fb::multiradio to generate the fields void Form::nextFieldDetails (  string $label ,  bool $required [,  string $helptext ] ); 
 
Set the details for the next field which will be outputted.
After returning a field, these values will be cleared from the state machine
Both the label and helptext support a subset of HTML, Text::limitedSubsetHtml for more details string Form::number (  string $name ,  array $attrs  ); 
 
Returns HTML for a number field, using Fb::number to generate the field itself public outstring Form::out (  string $plain  ); 
 
Return content which has been HTML-encoded and wrapped in the form field DIVs string Form::passString (  string $str  ); 
 
Returns the first argument
This hacky little method works around the fact that fieldPlain only accepts a method name string Form::password (  string $name ,  array $attrs  ); 
 
Returns HTML for a password field, using Fb::password to generate the field itself void Form::resetField (  ); 
 
Reset the state machine for field values void Form::setData (  array $data  ); 
 
Set form per-field values for the fields
As form fields are rendered using the Fb class, this method just sets the data there void Form::setErrors (  array $errors  ); 
 
Set per-field error messages to display
A given field can have either a single error message or an array of errors
The output from the Validator::getFieldErrors method can be used directly as input to this method void Form::setFieldIdPrefix (  string $prefix  ); 
 
Sets the prefix for generated IDs void Form::setFieldNameFormat (  string $format  ); 
 
Set a format string which will alter the field name prior to being passed to the underlying render method
Formatting is done using sprintf
A single parameter is provided to the sprintf() call, the field name
The default format does no transformation, i.e. the string '%s'
This parameter persists across multiple form fields void Form::setFieldValue (  array $field ,  array $value  ); 
 
Sets the value for a single field
As form fields are rendered using the Fb class, this method just sets the data there string Form::text (  string $name ,  array $attrs  ); 
 
Returns HTML for a text field, using Fb::text to generate the field itself |