public static function onConfirmEmailShowRequestForm(EmailConfirmation &$pageObj, &$show) { $show = false; if (Sanitizer::validateEmail($pageObj->getUser()->getEmail())) { $userLoginHelper = new UserLoginHelper(); $userLoginHelper->showRequestFormConfirmEmail($pageObj); } else { $pageObj->getOutput()->addWikiMsg('usersignup-user-pref-confirmemail_noemail'); } return true; }
/** * Show a nice form for the user to request a confirmation mail * original function: showRequestForm() in EmailConfirmation class (Special:Confirmemail page) * * @param EmailConfirmation $pageObj */ public function showRequestFormConfirmEmail(EmailConfirmation $pageObj) { $user = $pageObj->getUser(); /* @var $user User */ $out = $pageObj->getOutput(); /* @var $out OutputPage */ $optionNewEmail = $user->getGlobalAttribute('new_email'); if ($pageObj->getRequest()->wasPosted() && $user->matchEditToken($pageObj->getRequest()->getText('token'))) { // Wikia change -- only allow one email confirmation attempt per hour if (strtotime($user->mEmailTokenExpires) - strtotime("+6 days 23 hours") > 0) { $out->addWikiMsg('usersignup-error-throttled-email'); return; } $email = $user->isEmailConfirmed() && !empty($optionNewEmail) ? $optionNewEmail : $user->getEmail(); $status = $this->sendReconfirmationEmail($user, $email); if ($status->isGood()) { $out->addWikiMsg('usersignup-user-pref-reconfirmation-email-sent', $email); } else { $out->addWikiText($status->getWikiText('userlogin-error-mail-error')); } } else { if ($user->isEmailConfirmed() && empty($optionNewEmail)) { // date and time are separate parameters to facilitate localisation. // $time is kept for backward compat reasons. // 'emailauthenticated' is also used in SpecialPreferences.php $lang = $pageObj->getLanguage(); $emailAuthenticated = $user->getEmailAuthenticationTimestamp(); $time = $lang->timeAndDate($emailAuthenticated, $user); $d = $lang->date($emailAuthenticated, $user); $t = $lang->time($emailAuthenticated, $user); $out->addWikiMsg('usersignup-user-pref-emailauthenticated', $time, $d, $t); return; } if ($user->isEmailConfirmationPending() || !empty($optionNewEmail)) { $out->addWikiMsg('usersignup-confirm-email-unconfirmed-emailnotauthenticated'); if (strtotime($user->mEmailTokenExpires) - strtotime("+6 days 23 hours") > 0) { return; } } $form = Xml::openElement('form', array('method' => 'post', 'action' => $pageObj->getTitle()->getLocalUrl())); $form .= Html::hidden('token', $user->getEditToken()); $form .= Xml::submitButton($pageObj->msg('usersignup-user-pref-confirmemail_send')->text()); $form .= Xml::closeElement('form'); $out->addHTML($form); } }