* 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.
*
- * @param array $value of the options that should be checked
+ * @param array $value Array of the options that should be checked
*
- * @return String
+ * @return string
*/
function getInputHTML( $value ) {
$html = '';
$tableContents = '';
- $attribs = array();
$rows = $this->mParams['rows'];
$columns = $this->mParams['columns'];
- // If the disabled param is set, disable all the options
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attribs['disabled'] = 'disabled';
- }
+ $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
// Build the column headers
$headerContents = Html::rawElement( 'td', array(), ' ' );
foreach ( $columns as $columnTag ) {
$thisTag = "$columnTag-$rowTag";
// Construct the checkbox
+ $thisId = "{$this->mID}-$thisTag";
$thisAttribs = array(
- 'id' => "{$this->mID}-$thisTag",
+ 'id' => $thisId,
'value' => $thisTag,
);
$checked = in_array( $thisTag, (array)$value, true );
$checked = true;
$thisAttribs['disabled'] = 1;
}
+ $chkBox = Xml::check( "{$this->mName}[]", $checked, $attribs + $thisAttribs );
+ if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+ $chkBox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+ $chkBox .
+ Html::element( 'label', array( 'for' => $thisId ) ) .
+ Html::closeElement( 'div' );
+ }
$rowContents .= Html::rawElement(
'td',
array(),
- Xml::check( "{$this->mName}[]", $checked, $attribs + $thisAttribs )
+ $chkBox
);
}
$tableContents .= Html::rawElement( 'tr', array(), "\n$rowContents\n" );
* line above the options in the case of a checkbox matrix, i.e. it's always
* a "vertical-label".
*
- * @param string $value the value to set the input to
+ * @param string $value The value to set the input to
*
- * @return String complete HTML table row
+ * @return string Complete HTML table row
*/
function getTableRow( $value ) {
list( $errors, $errorClass ) = $this->getErrorsAndErrorClass( $value );
$helptext = $this->getHelpTextHtmlTable( $this->getHelpText() );
$cellAttributes = array( 'colspan' => 2 );
+ $hideClass = '';
+ $hideAttributes = array();
+ if ( $this->mHideIf ) {
+ $hideAttributes['data-hide-if'] = FormatJson::encode( $this->mHideIf );
+ $hideClass = 'mw-htmlform-hide-if';
+ }
+
$label = $this->getLabelHtml( $cellAttributes );
$field = Html::rawElement(
$inputHtml . "\n$errors"
);
- $html = Html::rawElement( 'tr', array( 'class' => 'mw-htmlform-vertical-label' ), $label );
+ $html = Html::rawElement( 'tr',
+ array( 'class' => "mw-htmlform-vertical-label $hideClass" ) + $hideAttributes,
+ $label );
$html .= Html::rawElement( 'tr',
- array( 'class' => "mw-htmlform-field-$fieldType {$this->mClass} $errorClass" ),
+ array( 'class' => "mw-htmlform-field-$fieldType {$this->mClass} $errorClass $hideClass" ) +
+ $hideAttributes,
$field );
return $html . $helptext;
}
/**
- * @param $request WebRequest
+ * @param WebRequest $request
*
- * @return Array
+ * @return array
*/
function loadDataFromRequest( $request ) {
if ( $this->mParent->getMethod() == 'post' ) {