15 if ( array_key_exists(
'other',
$params ) ) {
17 } elseif ( array_key_exists(
'other-message',
$params ) ) {
20 $params[
'other'] = $this->
msg(
'htmlform-selectorother-other' )->plain();
27 throw new MWException(
'HTMLSelectAndOtherField called without any options' );
29 if ( !in_array(
'other', $this->mOptions,
true ) ) {
37 $select = parent::getInputHTML(
$value[1] );
40 'id' => $this->mID .
'-other',
42 'class' => [
'mw-htmlform-select-and-other-field' ],
46 if ( $this->mClass !==
'' ) {
50 if ( isset( $this->mParams[
'maxlength-unit'] ) ) {
51 $textAttribs[
'data-mw-maxlength-unit'] = $this->mParams[
'maxlength-unit'];
66 $textbox = Html::input( $this->mName .
'-other',
$value[2],
'text', $textAttribs );
68 return "$select<br />\n$textbox";
72 return [
'mediawiki.widgets.SelectWithInputWidget' ];
76 $this->mParent->getOutput()->addModuleStyles(
'mediawiki.widgets.SelectWithInputWidget.styles' );
80 'name' => $this->mName .
'-other',
93 $textAttribs += OOUI\Element::configFromHtmlAttributes(
97 if ( $this->mClass !==
'' ) {
102 $dropdownInputAttribs = [
104 'id' => $this->mID .
'-select',
114 $dropdownInputAttribs += OOUI\Element::configFromHtmlAttributes(
118 if ( $this->mClass !==
'' ) {
124 'textinput' => $textAttribs,
125 'dropdowninput' => $dropdownInputAttribs,
127 'classes' => [
'mw-htmlform-select-and-other-field' ],
129 'maxlengthUnit' => isset( $this->mParams[
'maxlength-unit'] )
130 ? $this->mParams[
'maxlength-unit'] :
'bytes'
145 if (
$request->getCheck( $this->mName ) ) {
146 $list =
$request->getText( $this->mName );
147 $text =
$request->getText( $this->mName .
'-other' );
150 if ( $list ==
'other' ) {
152 } elseif ( !in_array( $list, $this->mFlatOptions,
true ) ) {
153 # User has spoofed the select form to give an option which wasn't
154 # in the original offer. Sulk...
156 } elseif ( $text ==
'' ) {
159 $final = $list . $this->
msg(
'colon-separator' )->inContentLanguage()->text() . $text;
166 foreach ( $this->mFlatOptions as $option ) {
167 $match = $option . $this->
msg(
'colon-separator' )->inContentLanguage()->text();
168 if ( strpos( $text, $match ) === 0 ) {
170 $text = substr( $text, strlen( $match ) );
176 return [ $final, $list, $text ];
180 return isset( $this->mParams[
'size'] ) ? $this->mParams[
'size'] : 45;
184 # HTMLSelectField forces $value to be one of the options in the select
185 # field, which is not useful here. But we do want the validation further up
187 $p = parent::validate(
$value[1], $alldata );
193 if ( isset( $this->mParams[
'required'] )
194 && $this->mParams[
'required'] !==
false
197 return $this->
msg(
'htmlform-required' );
Double field with a dropdown list constructed from a system message in the format.
getInputOOUI( $value)
Same as getInputHTML, but returns an OOUI object.
getInputHTML( $value)
This function must be implemented to return the HTML to generate the input object itself.
__construct( $params)
Initialise the object.
getOOUIModules()
Get the list of extra ResourceLoader modules which must be loaded client-side before it's possible to...
loadDataFromRequest( $request)
validate( $value, $alldata)
Override this function to add specific validation checks on the field input.
do that in ParserLimitReportFormat instead use this to modify the parameters of the image all existing parser cache entries will be invalid To avoid you ll need to handle that somehow(e.g. with the RejectParserCacheValue hook) because MediaWiki won 't do it for you. & $defaults also a ContextSource after deleting those rows but within the same transaction you ll probably need to make sure the header is varied on $request