wiki.techinc.nl/includes/htmlform/fields/HTMLSelectOrOtherField.php
umherirrender 34fe90ac52 Remove empty lines at end of functions
It looks like there is something missing after the last statement
Also remove some other empty lines at begin of functions, ifs or loops
while at these files

Change-Id: Ib00b5cfd31ca4dcd0c32ce33754d3c80bae70641
2016-11-05 11:55:10 +01:00

89 lines
2.2 KiB
PHP

<?php
/**
* Select dropdown field, with an additional "other" textbox.
*
* HTMLComboboxField implements the same functionality using a single form field
* and should be used instead.
*/
class HTMLSelectOrOtherField extends HTMLTextField {
public function __construct( $params ) {
parent::__construct( $params );
$this->getOptions();
if ( !in_array( 'other', $this->mOptions, true ) ) {
$msg =
isset( $params['other'] )
? $params['other']
: wfMessage( 'htmlform-selectorother-other' )->text();
// Have 'other' always as first element
$this->mOptions = [ $msg => 'other' ] + $this->mOptions;
}
}
public function getInputHTML( $value ) {
$valInSelect = false;
if ( $value !== false ) {
$value = strval( $value );
$valInSelect = in_array(
$value, HTMLFormField::flattenOptions( $this->getOptions() ), true
);
}
$selected = $valInSelect ? $value : 'other';
$select = new XmlSelect( $this->mName, $this->mID, $selected );
$select->addOptions( $this->getOptions() );
$select->setAttribute( 'class', 'mw-htmlform-select-or-other' );
$tbAttribs = [ 'id' => $this->mID . '-other', 'size' => $this->getSize() ];
if ( !empty( $this->mParams['disabled'] ) ) {
$select->setAttribute( 'disabled', 'disabled' );
$tbAttribs['disabled'] = 'disabled';
}
if ( isset( $this->mParams['tabindex'] ) ) {
$select->setAttribute( 'tabindex', $this->mParams['tabindex'] );
$tbAttribs['tabindex'] = $this->mParams['tabindex'];
}
$select = $select->getHTML();
if ( isset( $this->mParams['maxlength'] ) ) {
$tbAttribs['maxlength'] = $this->mParams['maxlength'];
}
if ( $this->mClass !== '' ) {
$tbAttribs['class'] = $this->mClass;
}
$textbox = Html::input( $this->mName . '-other', $valInSelect ? '' : $value, 'text', $tbAttribs );
return "$select<br />\n$textbox";
}
public function getInputOOUI( $value ) {
return false;
}
/**
* @param WebRequest $request
*
* @return string
*/
public function loadDataFromRequest( $request ) {
if ( $request->getCheck( $this->mName ) ) {
$val = $request->getText( $this->mName );
if ( $val === 'other' ) {
$val = $request->getText( $this->mName . '-other' );
}
return $val;
} else {
return $this->getDefault();
}
}
}