mFlags = $info['flags']; } # Generate the label from a message, if possible if ( isset( $info['buttonlabel-message'] ) ) { $this->buttonLabel = $this->getMessage( $info['buttonlabel-message'] )->parse(); } elseif ( isset( $info['buttonlabel'] ) ) { if ( $info['buttonlabel'] === ' ' ) { // Apparently some things set   directly and in an odd format $this->buttonLabel = ' '; } else { $this->buttonLabel = htmlspecialchars( $info['buttonlabel'] ); } } elseif ( isset( $info['buttonlabel-raw'] ) ) { $this->buttonLabel = $info['buttonlabel-raw']; } $this->setShowEmptyLabel( false ); parent::__construct( $info ); } public function getInputHTML( $value ) { $flags = ''; $prefix = 'mw-htmlform-'; if ( $this->mParent instanceof VFormHTMLForm || $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) { $prefix = 'mw-ui-'; // add mw-ui-button separately, so the descriptor doesn't need to set it $flags .= ' ' . $prefix . 'button'; } foreach ( $this->mFlags as $flag ) { $flags .= ' ' . $prefix . $flag; } $attr = [ 'class' => 'mw-htmlform-submit ' . $this->mClass . $flags, 'id' => $this->mID, 'type' => $this->buttonType, 'name' => $this->mName, 'value' => $this->getDefault(), ] + $this->getAttributes( [ 'disabled', 'tabindex' ] ); if ( $this->isBadIE() ) { return Html::element( 'input', $attr ); } else { return Html::rawElement( 'button', $attr, $this->buttonLabel ?: htmlspecialchars( $this->getDefault() ) ); } } /** * Get the OOUI widget for this field. * @param string $value * @return OOUI\ButtonInputWidget */ public function getInputOOUI( $value ) { return new OOUI\ButtonInputWidget( [ 'name' => $this->mName, 'value' => $this->getDefault(), 'label' => !$this->isBadIE() && $this->buttonLabel ? new OOUI\HtmlSnippet( $this->buttonLabel ) : $this->getDefault(), 'type' => $this->buttonType, 'classes' => [ 'mw-htmlform-submit', $this->mClass ], 'id' => $this->mID, 'flags' => $this->mFlags, 'useInputTag' => $this->isBadIE(), ] + OOUI\Element::configFromHtmlAttributes( $this->getAttributes( [ 'disabled', 'tabindex' ] ) ) ); } protected function needsLabel() { return false; } /** * Button cannot be invalid * * @param string $value * @param array $alldata * * @return bool|string|Message */ public function validate( $value, $alldata ) { return true; } /** * IE<8 has bugs with