/** * Constructor for Special:Emailuser. */ function wfSpecialEmailuser($par) { global $wgRequest, $wgUser, $wgOut; if (!EmailUserForm::userEmailEnabled()) { $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } $action = $wgRequest->getVal('action'); $target = isset($par) ? $par : $wgRequest->getVal('target'); $targetUser = EmailUserForm::validateEmailTarget($target); if (!$targetUser instanceof User) { $wgOut->showErrorPage($targetUser . 'title', $targetUser . 'text'); return; } $form = new EmailUserForm($targetUser, $wgRequest->getText('wpText'), $wgRequest->getText('wpSubject'), $wgRequest->getBool('wpCCMe')); if ($action == 'success') { $form->showSuccess(); return; } $error = EmailUserForm::getPermissionsError($wgUser, $wgRequest->getVal('wpEditToken')); if ($error) { switch ($error) { case 'blockedemailuser': $wgOut->blockedPage(); return; case 'actionthrottledtext': $wgOut->rateLimited(); return; case 'sessionfailure': $form->showForm(); return; case 'mailnologin': $wgOut->showErrorPage('mailnologin', 'mailnologintext'); return; default: // It's a hook error list($title, $msg, $params) = $error; $wgOut->showErrorPage($title, $msg, $params); return; } } if ("submit" == $action && $wgRequest->wasPosted()) { $result = $form->doSubmit(); if (!is_null($result)) { $wgOut->addHTML(wfMsg("usermailererror") . ' ' . htmlspecialchars($result->getMessage())); } else { $titleObj = SpecialPage::getTitleFor("Emailuser"); $encTarget = wfUrlencode($form->getTarget()->getName()); $wgOut->redirect($titleObj->getFullURL("target={$encTarget}&action=success")); } } else { $form->showForm(); } }