MediaWiki master
MediaWiki\HTMLForm\Field\HTMLCheckMatrix Class Reference

A checkbox matrix Operates similarly to HTMLMultiSelectField, but instead of using an array of options, uses an array of rows and an array of columns to dynamically construct a matrix of options. More...

Inherits MediaWiki\HTMLForm\HTMLFormField, and MediaWiki\HTMLForm\HTMLNestedFilterable.

Collaboration diagram for MediaWiki\HTMLForm\Field\HTMLCheckMatrix:

Public Member Functions

 __construct ( $params)
 
 filterDataForSubmit ( $data)
 Support for separating multi-option preferences into multiple preferences Due to lack of array support.
 
 getDefault ()
 
 getInputHTML ( $value)
 Build a table containing a matrix of checkbox options.
 
 getInputOOUI ( $value)
 Same as getInputHTML, but returns an OOUI object.
 
 getTableRow ( $value)
 Get the complete table row for the input, including help text, labels, and whatever.
 
 loadDataFromRequest ( $request)
 
 validate ( $value, $alldata)
 Override this function to add specific validation checks on the field input.
 
- Public Member Functions inherited from MediaWiki\HTMLForm\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)
 
 getAttributes (array $list)
 Returns the given attributes from the parameters.
 
 getCodex ( $value)
 Get the Codex version of the div.
 
 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.
 
 getHelpTextHtmlDiv ( $helptext, $cssClasses=[])
 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.
 
 getInputCodex ( $value, $hasErrors)
 Same as getInputHTML, but for Codex.
 
 getLabel ()
 
 getLabelHtml ( $cellAttributes=[])
 
 getName ()
 Get the field name that will be used for submission.
 
 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.
 
 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.
 
 isDisabled ( $alldata)
 Test whether this field is supposed to be disabled, based on the values of the other form fields.
 
 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.
 

Protected Member Functions

 getOneCheckboxHTML ( $checked, $attribs)
 
 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.
 
 isTagForcedOff ( $tag)
 
 isTagForcedOn ( $tag)
 
 shouldInfuseOOUI ()
 Whether the field should be automatically infused.
 
- Protected Member Functions inherited from MediaWiki\HTMLForm\HTMLFormField
 checkStateRecurse (array $alldata, array $params)
 Helper function for isHidden and isDisabled to handle recursive data structures.
 
 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.
 
 getNearestField ( $name, $backCompat=false)
 Get the closest field matching a given name.
 
 getNearestFieldByName ( $alldata, $name, $asDisplay=false)
 Fetch a field value from $alldata for the closest field matching a given name.
 
 getNearestFieldValue ( $alldata, $name, $asDisplay=false, $backCompat=false)
 Fetch a field value from $alldata for the closest field matching a given name.
 
 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?
 
 parseCondState ( $params)
 Parse the cond-state array to use the field name for submission, since the key in the form descriptor is never known in HTML.
 
 parseCondStateForClient ()
 Parse the cond-state array for client-side.
 
 validateCondState ( $params)
 Validate the cond-state params, the existence check of fields should be done later.
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaWiki\HTMLForm\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 MediaWiki\HTMLForm\HTMLFormField
array array[] $mParams
 
HTMLForm null $mParent
 
- Static Protected Member Functions inherited from MediaWiki\HTMLForm\HTMLFormField
static formatErrors ( $errors)
 Formats one or more errors as accepted by field validation-callback.
 
- Protected Attributes inherited from MediaWiki\HTMLForm\HTMLFormField
 $mClass = ''
 
array $mCondState = []
 Array to hold params for 'hide-if' or 'disable-if' statements.
 
 $mCondStateClass = []
 
 $mDefault
 
 $mDir
 
 $mFilterCallback
 
 $mHelpClass = false
 
 $mID
 
 $mLabel
 
 $mName
 
array null false $mOptions = false
 
 $mOptionsLabelsNotFromMessage = false
 
bool $mShowEmptyLabels = true
 If true will generate an empty div element with no label.
 
 $mVFormClass = ''
 

Detailed Description

A checkbox matrix Operates similarly to HTMLMultiSelectField, but instead of using an array of options, uses an array of rows and an array of columns to dynamically construct a matrix of options.

The tags used to identify a particular cell are of the form "columnName-rowName"

Options:

  • columns
    • Required associative array mapping column labels (as HTML) to their tags.
  • rows
    • Required associative array mapping row labels (as HTML) to their tags.
  • force-options-on
    • Array of column-row tags to be displayed as enabled but unavailable to change.
  • force-options-off
    • Array of column-row tags to be displayed as disabled but unavailable to change.
  • tooltips
    • Optional associative array mapping row labels to tooltips (as text, will be escaped).
  • tooltips-html
    • Optional associative array mapping row labels to tooltips (as HTML). Only used by OOUI form fields. Takes precedence when supported, so to support both OOUI and non-OOUI forms, you can set both.
  • tooltip-class
    • Optional CSS class used on tooltip container span. Defaults to mw-icon-question. Not used by OOUI form fields.
Stability: stable
to extend

Definition at line 41 of file HTMLCheckMatrix.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::__construct ( $params)
Stability: stable
to call Initialise the object.

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 54 of file HTMLCheckMatrix.php.

References $params.

Member Function Documentation

◆ filterDataForSubmit()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::filterDataForSubmit ( $data)

Support for separating multi-option preferences into multiple preferences Due to lack of array support.

Parameters
array$data

Implements MediaWiki\HTMLForm\HTMLNestedFilterable.

Definition at line 270 of file HTMLCheckMatrix.php.

References MediaWiki\HTMLForm\HTMLFormField\flattenOptions(), MediaWiki\HTMLForm\Field\HTMLCheckMatrix\isTagForcedOff(), and MediaWiki\HTMLForm\Field\HTMLCheckMatrix\isTagForcedOn().

◆ getDefault()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::getDefault ( )
Stability: stable
to override
Returns
mixed

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 266 of file HTMLCheckMatrix.php.

Referenced by MediaWiki\HTMLForm\Field\HTMLCheckMatrix\loadDataFromRequest().

◆ getInputHTML()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::getInputHTML ( $value)

Build a table containing a matrix of checkbox options.

The value of each option is a combination of the row tag and column tag. mParams['rows'] is an array with row labels as keys and row tags as values. mParams['columns'] is an array with column labels as keys and column tags as values.

Parameters
array$valueArray of the options that should be checked
Returns
string

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 103 of file HTMLCheckMatrix.php.

References MediaWiki\Html\element(), MediaWiki\HTMLForm\HTMLFormField\getAttributes(), MediaWiki\HTMLForm\Field\HTMLCheckMatrix\getOneCheckboxHTML(), MediaWiki\HTMLForm\Field\HTMLCheckMatrix\isTagForcedOff(), and MediaWiki\HTMLForm\Field\HTMLCheckMatrix\isTagForcedOn().

Referenced by MediaWiki\HTMLForm\Field\HTMLCheckMatrix\getTableRow().

◆ getInputOOUI()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::getInputOOUI ( $value)

Same as getInputHTML, but returns an OOUI object.

Defaults to false, which getOOUI will interpret as "use the HTML version"

Stability: stable
to override
Parameters
string$value
Returns
\OOUI\Widget|string|false

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 173 of file HTMLCheckMatrix.php.

References MediaWiki\HTMLForm\HTMLFormField\getAttributes().

◆ getOneCheckboxHTML()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::getOneCheckboxHTML ( $checked,
$attribs )
protected

◆ getOOUIModules()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::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.

Stability: stable
to override
Returns
string[]

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 291 of file HTMLCheckMatrix.php.

◆ getTableRow()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::getTableRow ( $value)

Get the complete table row for the input, including help text, labels, and whatever.

We override this function since the label should always be on a separate line above the options in the case of a checkbox matrix, i.e. it's always a "vertical-label".

Parameters
string | array$valueThe value to set the input to
Returns
string Complete HTML table row

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 217 of file HTMLCheckMatrix.php.

References MediaWiki\HTMLForm\HTMLFormField\getClassName(), MediaWiki\HTMLForm\HTMLFormField\getErrorsAndErrorClass(), MediaWiki\HTMLForm\HTMLFormField\getHelpText(), MediaWiki\HTMLForm\HTMLFormField\getHelpTextHtmlTable(), MediaWiki\HTMLForm\Field\HTMLCheckMatrix\getInputHTML(), and MediaWiki\HTMLForm\HTMLFormField\getLabelHtml().

◆ isTagForcedOff()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::isTagForcedOff ( $tag)
protected

◆ isTagForcedOn()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::isTagForcedOn ( $tag)
protected

◆ loadDataFromRequest()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::loadDataFromRequest ( $request)
Parameters
WebRequest$request
Returns
array

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 255 of file HTMLCheckMatrix.php.

References MediaWiki\HTMLForm\Field\HTMLCheckMatrix\getDefault(), and MediaWiki\HTMLForm\HTMLFormField\isSubmitAttempt().

◆ shouldInfuseOOUI()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::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.

Stability: stable
to override
Returns
bool

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 295 of file HTMLCheckMatrix.php.

◆ validate()

MediaWiki\HTMLForm\Field\HTMLCheckMatrix::validate ( $value,
$alldata )

Override this function to add specific validation checks on the field input.

Don't forget to call parent::validate() to ensure that the user-defined callback mValidationCallback is still run

Stability: stable
to override
Parameters
mixed$valueThe value the field was submitted with
array$alldataThe data collected from the form
Returns
bool|string|Message True on success, or String/Message error to display, or false to fail validation without displaying an error.

Reimplemented from MediaWiki\HTMLForm\HTMLFormField.

Definition at line 62 of file HTMLCheckMatrix.php.

References MediaWiki\HTMLForm\HTMLFormField\msg().


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