- $form = HTMLForm::factory( 'ooui', array(
- 'Target' => array(
- 'type' => 'user',
- 'exists' => true,
- 'label' => $this->msg( 'emailusername' )->text(),
- 'id' => 'emailusertarget',
- 'autofocus' => true,
- 'value' => $name,
- ),
- ), $this->getContext() );
-
- $form
- ->setMethod( 'post' )
- ->setSubmitCallback( array( $this, 'sendEmailForm' ) )
- ->setSubmitProgressive()
- ->setId( 'askusername' )
- ->addHiddenField( 'title', $this->getPageTitle()->getPrefixedText() )
- ->setWrapperLegendMsg( 'emailtarget' )
- ->setSubmitTextMsg( 'emailusernamesubmit' )
- ->show();
- }
-
- public function sendEmailForm() {
- $out = $this->getOutput();
-
- $ret = $this->mTargetObj;
- if ( !$ret instanceof User ) {
- if ( $this->mTarget != '' ) {
- // Messages used here: notargettext, noemailtext, nowikiemailtext
- $ret = ( $ret == 'notarget' ) ? 'emailnotarget' : ( $ret . 'text' );
- return Status::newFatal( $ret );
- }
- return false;
- }
-
- $context = new DerivativeContext( $this->getContext() );
- $context->setTitle( $this->getPageTitle() ); // Remove subpage
- $form = HTMLForm::factory( 'ooui', $this->getFormFields(), $context );
- // By now we are supposed to be sure that $this->mTarget is a user name
- $form->addPreText( $this->msg( 'emailpagetext', $this->mTarget )->parse() );
- $form->setSubmitTextMsg( 'emailsend' );
- $form->setSubmitCallback( array( __CLASS__, 'uiSubmit' ) );
- $form->setWrapperLegendMsg( 'email-legend' );
- $form->loadData();
-
- if ( !Hooks::run( 'EmailUserForm', array( &$form ) ) ) {
- return false;
- }
-
- $result = $form->show();
-
- if ( $result === true || ( $result instanceof Status && $result->isGood() ) ) {
- $out->setPageTitle( $this->msg( 'emailsent' ) );
- $out->addWikiMsg( 'emailsenttext', $this->mTarget );
- $out->returnToMain( false, $ret->getUserPage() );
- }
- return true;
+ $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+ $string = Html::openElement(
+ 'form',
+ [ 'method' => 'get', 'action' => wfScript(), 'id' => 'askusername' ]
+ ) .
+ Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) .
+ Html::openElement( 'fieldset' ) .
+ Html::rawElement( 'legend', null, $this->msg( 'emailtarget' )->parse() ) .
+ Html::label(
+ $this->msg( 'emailusername' )->text(),
+ 'emailusertarget'
+ ) . ' ' .
+ Html::input(
+ 'target',
+ $name,
+ 'text',
+ [
+ 'id' => 'emailusertarget',
+ 'class' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
+ 'autofocus' => true,
+ 'size' => 30,
+ ]
+ ) .
+ ' ' .
+ Html::submitButton( $this->msg( 'emailusernamesubmit' )->text(), [] ) .
+ Html::closeElement( 'fieldset' ) .
+ Html::closeElement( 'form' ) . "\n";
+
+ return $string;