return new MediaWiki\Widget\SelectWithInputWidget( $params );
}
+ /**
+ * @inheritDoc
+ */
+ public function getDefault() {
+ $default = parent::getDefault();
+
+ // Default values of empty form
+ $final = '';
+ $list = 'other';
+ $text = '';
+
+ if ( $default !== null ) {
+ $final = $default;
+ // Assume the default is a text value, with the 'other' option selected.
+ // Then check if that assumption is correct, and update $list and $text if not.
+ $text = $final;
+ foreach ( $this->mFlatOptions as $option ) {
+ $match = $option . $this->msg( 'colon-separator' )->inContentLanguage()->text();
+ if ( strpos( $final, $match ) === 0 ) {
+ $list = $option;
+ $text = substr( $final, strlen( $match ) );
+ break;
+ }
+ }
+ }
+
+ return [ $final, $list, $text ];
+ }
+
/**
* @param WebRequest $request
*
} else {
$final = $list . $this->msg( 'colon-separator' )->inContentLanguage()->text() . $text;
}
- } else {
- $final = $this->getDefault();
-
- $list = 'other';
- $text = $final;
- foreach ( $this->mFlatOptions as $option ) {
- $match = $option . $this->msg( 'colon-separator' )->inContentLanguage()->text();
- if ( strpos( $text, $match ) === 0 ) {
- $list = $option;
- $text = substr( $text, strlen( $match ) );
- break;
- }
- }
+ return [ $final, $list, $text ];
}
-
- return [ $final, $list, $text ];
+ return $this->getDefault();
}
public function getSize() {
if ( isset( $this->mParams['required'] )
&& $this->mParams['required'] !== false
- && $value[1] === ''
+ && $value[0] === ''
) {
return $this->msg( 'htmlform-required' );
}