MediaWiki fundraising/REL1_35
HTMLSelectOrOtherField Class Reference

Select dropdown field, with an additional "other" textbox. More...

Inheritance diagram for HTMLSelectOrOtherField:
Collaboration diagram for HTMLSelectOrOtherField:

Public Member Functions

 __construct ( $params)
 Stable to call.
 
 getInputHTML ( $value)
 This function must be implemented to return the HTML to generate the input object itself.It should not implement the surrounding table cells/rows, or labels/help messages.
Parameters
mixed$valueThe value to set the input to; eg a default text for a text input.
Returns
string Valid HTML.
Stable to override Stable to override
 
 getInputOOUI ( $value)
 Same as getInputHTML, but returns an OOUI object.Defaults to false, which getOOUI will interpret as "use the HTML version" Stable to override
Parameters
string$value
Returns
OOUI\Widget|false
Stable to override Stable to override
 
 getInputWidget ( $params)
 Stable to override.
 
 loadDataFromRequest ( $request)
 
- Public Member Functions inherited from HTMLTextField
 getSize ()
 Stable to override.
 
 getSpellCheck ()
 
 isPersistent ()
 
- Public Member Functions inherited from HTMLFormField
 cancelSubmit ( $value, $alldata)
 Override this function if the control can somehow trigger a form submission that shouldn't actually submit the HTMLForm.
 
 canDisplayErrors ()
 True if this field type is able to display errors; false if validation errors need to be displayed in the main HTMLForm error area.
 
 filter ( $value, $alldata)
 Stable to override.
 
 getAttributes (array $list)
 Returns the given attributes from the parameters Stable to override.
 
 getDefault ()
 Stable to override.
 
 getDiv ( $value)
 Get the complete div for the input, including help text, labels, and whatever.
 
 getErrorsAndErrorClass ( $value)
 Determine form errors to display and their classes.
 
 getErrorsRaw ( $value)
 Determine form errors to display, returning them in an array.
 
 getHelpText ()
 Determine the help text to display Stable to override.
 
 getHelpTextHtmlDiv ( $helptext)
 Generate help text HTML in div format.
 
 getHelpTextHtmlRaw ( $helptext)
 Generate help text HTML formatted for raw output.
 
 getHelpTextHtmlTable ( $helptext)
 Generate help text HTML in table format.
 
 getInline ( $value)
 Get the complete field as an inline element.
 
 getLabel ()
 Stable to override.
 
 getLabelHtml ( $cellAttributes=[])
 Stable to override.
 
 getOOUI ( $value)
 Get the OOUI version of the div.
 
 getOptions ()
 Fetch the array of options from the field's parameters.
 
 getOptionsOOUI ()
 Get options and make them into arrays suitable for OOUI.
 
 getRaw ( $value)
 Get the complete raw fields for the input, including help text, labels, and whatever.
 
 getTableRow ( $value)
 Get the complete table row for the input, including help text, labels, and whatever.
 
 getTooltipAndAccessKey ()
 Returns the attributes required for the tooltip and accesskey, for Html::element() etc.
 
 getTooltipAndAccessKeyOOUI ()
 Returns the attributes required for the tooltip and accesskey, for OOUI widgets' config.
 
 getVForm ( $value)
 Get the complete field for the input, including help text, labels, and whatever.
 
 hasVisibleOutput ()
 If this field has a user-visible output or not.
 
 isHelpInline ()
 Determine if the help text should be displayed inline.
 
 isHidden ( $alldata)
 Test whether this field is supposed to be hidden, based on the values of the other form fields.
 
 msg ( $key,... $params)
 Get a translated interface message.
 
 needsJSForHtml5FormValidation ()
 Whether this field requires the user agent to have JavaScript enabled for the client-side HTML5 form validation to work correctly.
 
 setShowEmptyLabel ( $show)
 Tell the field whether to generate a separate label element if its label is blank.
 
 skipLoadData ( $request)
 Skip this field when collecting data.
 
 validate ( $value, $alldata)
 Override this function to add specific validation checks on the field input.
 

Protected Member Functions

 getOOUIModules ()
 Get the list of extra ResourceLoader modules which must be loaded client-side before it's possible to infuse this field's OOUI widget.
 
 shouldInfuseOOUI ()
 Whether the field should be automatically infused.
 
- Protected Member Functions inherited from HTMLTextField
 getDataAttribs ()
 Returns an array of data-* attributes to add to the field.
 
 getType (&$attribs)
 
- Protected Member Functions inherited from HTMLFormField
 getClassName ()
 Gets the non namespaced class name.
 
 getFieldLayoutOOUI ( $inputField, $config)
 Get a FieldLayout (or subclass thereof) to wrap this field in when using OOUI output.
 
 getLabelAlignOOUI ()
 Get label alignment when generating field for OOUI.
 
 getMessage ( $value)
 Turns a *-message parameter (which could be a MessageSpecifier, or a message name, or a name + parameters array) into a Message.
 
 getNearestFieldByName ( $alldata, $name)
 Fetch a field value from $alldata for the closest field matching a given name.
 
 isHiddenRecurse (array $alldata, array $params)
 Helper function for isHidden to handle recursive data structures.
 
 isSubmitAttempt (WebRequest $request)
 Can we assume that the request is an attempt to submit a HTMLForm, as opposed to an attempt to just view it? This can't normally be distinguished for e.g.
 
 needsLabel ()
 Should this field have a label, or is there no input element with the appropriate id for the label to point to? Stable to override.
 

Additional Inherited Members

- Static Public Member Functions inherited from HTMLFormField
static flattenOptions ( $options)
 flatten an array of options to a single array, for instance, a set of "<options>" inside "<optgroups>".
 
static forceToStringRecursive ( $array)
 Recursively forces values in an array to strings, because issues arise with integer 0 as a value.
 
- Public Attributes inherited from HTMLFormField
array array[] $mParams
 
HTMLForm null $mParent
 
- Static Protected Member Functions inherited from HTMLFormField
static formatErrors ( $errors)
 Formats one or more errors as accepted by field validation-callback.
 
- Protected Attributes inherited from HTMLTextField
bool $autocomplete
 HTML autocomplete attribute.
 
 $mPlaceholder = ''
 
- Protected Attributes inherited from HTMLFormField
 $mClass = ''
 
 $mDefault
 
 $mDir
 
 $mFilterCallback
 
 $mHelpClass = false
 
 $mHideIf = null
 
 $mID
 
 $mLabel
 
 $mName
 
array bool null $mOptions = false
 
 $mOptionsLabelsNotFromMessage = false
 
bool $mShowEmptyLabels = true
 If true will generate an empty div element with no label.
 
 $mValidationCallback
 
 $mVFormClass = ''
 

Detailed Description

Select dropdown field, with an additional "other" textbox.

HTMLComboboxField implements the same functionality using a single form field and should be used instead.

Stable to extend

Definition at line 11 of file HTMLSelectOrOtherField.php.

Constructor & Destructor Documentation

◆ __construct()

HTMLSelectOrOtherField::__construct ( $params)

Stable to call.

Parameters
array$params
  • type: HTML textfield type
  • size: field size in characters (defaults to 45)
  • placeholder/placeholder-message: set HTML placeholder attribute
  • spellcheck: set HTML spellcheck attribute
  • persistent: upon unsuccessful requests, retain the value (defaults to true, except for password fields)

Reimplemented from HTMLTextField.

Definition at line 16 of file HTMLSelectOrOtherField.php.

References HTMLFormField\$mOptions, HTMLFormField\getOptions(), and wfMessage().

Member Function Documentation

◆ getInputHTML()

HTMLSelectOrOtherField::getInputHTML ( $value)

This function must be implemented to return the HTML to generate the input object itself.It should not implement the surrounding table cells/rows, or labels/help messages.

Parameters
mixed$valueThe value to set the input to; eg a default text for a text input.
Returns
string Valid HTML.
Stable to override Stable to override

Reimplemented from HTMLTextField.

Definition at line 27 of file HTMLSelectOrOtherField.php.

References HTMLFormField\$mClass, HTMLFormField\flattenOptions(), HTMLFormField\getOptions(), and HTMLTextField\getSize().

◆ getInputOOUI()

HTMLSelectOrOtherField::getInputOOUI ( $value)

Same as getInputHTML, but returns an OOUI object.Defaults to false, which getOOUI will interpret as "use the HTML version" Stable to override

Parameters
string$value
Returns
OOUI\Widget|false
Stable to override Stable to override

Reimplemented from HTMLTextField.

Definition at line 79 of file HTMLSelectOrOtherField.php.

References HTMLFormField\$mClass, HTMLFormField\$mName, HTMLTextField\$mPlaceholder, HTMLFormField\flattenOptions(), HTMLFormField\getAttributes(), getInputWidget(), HTMLFormField\getOptions(), HTMLFormField\getOptionsOOUI(), and HTMLTextField\getSize().

◆ getInputWidget()

HTMLSelectOrOtherField::getInputWidget ( $params)

Stable to override.

Parameters
array$params
Returns
Widget

Reimplemented from HTMLTextField.

Definition at line 149 of file HTMLSelectOrOtherField.php.

Referenced by getInputOOUI().

◆ getOOUIModules()

HTMLSelectOrOtherField::getOOUIModules ( )
protected

Get the list of extra ResourceLoader modules which must be loaded client-side before it's possible to infuse this field's OOUI widget.

Stable to override

Returns
string[]

Reimplemented from HTMLFormField.

Definition at line 75 of file HTMLSelectOrOtherField.php.

◆ loadDataFromRequest()

HTMLSelectOrOtherField::loadDataFromRequest ( $request)
Parameters
WebRequest$request
Returns
string

Reimplemented from HTMLFormField.

Definition at line 158 of file HTMLSelectOrOtherField.php.

References HTMLFormField\getDefault().

◆ shouldInfuseOOUI()

HTMLSelectOrOtherField::shouldInfuseOOUI ( )
protected

Whether the field should be automatically infused.

Note that all OOUI HTMLForm fields are infusable (you can call OO.ui.infuse() on them), but not all are infused by default, since there is no benefit in doing it e.g. for buttons and it's a small performance hit on page load. Stable to override

Returns
bool

Reimplemented from HTMLFormField.

Definition at line 71 of file HTMLSelectOrOtherField.php.


The documentation for this class was generated from the following file: