parent::__construct( 'Emailuser' );
}
+ public function doesWrites() {
+ return true;
+ }
+
public function getDescription() {
$target = self::getTarget( $this->mTarget );
if ( !$target instanceof User ) {
* @return string Form asking for user name.
*/
protected function userForm( $name ) {
+ $this->getOutput()->addModules( 'mediawiki.userSuggest' );
$string = Xml::openElement(
'form',
array( 'method' => 'get', 'action' => wfScript(), 'id' => 'askusername' )
'target',
'emailusertarget',
30,
- $name
+ $name,
+ array(
+ 'class' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
+ 'autofocus' => true,
+ )
) .
' ' .
Xml::submitButton( $this->msg( 'emailusernamesubmit' )->text() ) .
}
}
+ /**
+ * Return an array of subpages beginning with $search that this special page will accept.
+ *
+ * @param string $search Prefix to search for
+ * @param int $limit Maximum number of results to return (usually 10)
+ * @param int $offset Number of results to skip (usually 0)
+ * @return string[] Matching subpages
+ */
+ public function prefixSearchSubpages( $search, $limit, $offset ) {
+ $user = User::newFromName( $search );
+ if ( !$user ) {
+ // No prefix suggestion for invalid user
+ return array();
+ }
+ // Autocomplete subpage as user list - public to allow caching
+ return UserNamePrefixSearch::search( 'public', $search, $limit, $offset );
+ }
+
protected function getGroupName() {
return 'users';
}