if ( $this->mParent instanceof OOUIHTMLForm ) {
throw new MWException( 'HTMLMultiSelectField#getOneCheckbox() is not supported' );
} else {
- $elementFunc = [ 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' ];
+ $elementFunc = [ Html::class, $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' ];
$checkbox =
Xml::check( "{$this->mName}[]", $checked, $attribs ) .
- ' ' .
+ "\u{00A0}" .
call_user_func( $elementFunc,
'label',
[ 'for' => $attribs['id'] ],
* @return string|array
*/
public function loadDataFromRequest( $request ) {
- if ( $this->isSubmitAttempt( $request ) ) {
+ $fromRequest = $request->getArray( $this->mName, [] );
+ // Fetch the value in either one of the two following case:
+ // - we have a valid submit attempt (form was just submitted)
+ // - we have a value (an URL manually built by the user, or GET form with no wpFormIdentifier)
+ if ( $this->isSubmitAttempt( $request ) || $fromRequest ) {
// Checkboxes are just not added to the request arrays if they're not checked,
// so it's perfectly possible for there not to be an entry at all
- return $request->getArray( $this->mName, [] );
+ return $fromRequest;
} else {
// That's ok, the user has not yet submitted the form, so show the defaults
return $this->getDefault();