/** * @brief serves standalone signup page on GET. if POSTed, parameters will be required. * @details * on GET, template will render * on POST, * if signup is successful, it will redirect to returnto, or mainpage of wiki * if signup is not successful, the template will render error messages, highlighting the errors * @requestParam string userloginext01 - on POST * @requestParam string email - on POST * @requestParam string password - on POST * @requestParam string birthmonth - on POST * @requestParam string birthday - on POST * @requestParam string birthyear - on POST * @requestParam string captcha - on POST * @requestParam string returnto - url to return to upon successful login * @requestParam string signupToken * @requestParam string uselang * @responseParam string result [ok/error] * @responseParam string msg - result message * @responseParam string errParam - error param */ public function signupForm() { $this->wg->Out->setPageTitle(wfMessage('usersignup-page-title')->plain()); $this->response->addAsset('extensions/wikia/UserLogin/css/UserSignup.scss'); if ($this->app->checkSkin('oasis')) { $this->response->addAsset('user_signup_js'); } // We're not supporting connecting with facebook from this page while logged in if (!empty($this->wg->EnableFacebookClientExt) && !$this->wg->User->isLoggedIn() && !$this->isMonobookOrUncyclo) { $this->response->addAsset('extensions/wikia/UserLogin/js/UserLoginFacebookPageInit.js'); } // hide things in the skin $this->wg->SuppressWikiHeader = true; $this->wg->SuppressPageHeader = true; $this->wg->SuppressFooter = true; $this->wg->SuppressAds = true; $this->wg->SuppressToolbar = true; $this->getOutput()->disallowUserJs(); // just in case... // form params $this->username = $this->request->getVal('userloginext01', ''); $this->email = $this->request->getVal('email', ''); $this->password = $this->request->getVal('userloginext02', ''); $this->birthmonth = $this->request->getVal('birthmonth', ''); $this->birthday = $this->request->getVal('birthday', ''); $this->birthyear = $this->request->getVal('birthyear', ''); $this->returnto = $this->request->getVal('returnto', ''); $this->byemail = $this->request->getBool('byemail', false); $this->signupToken = UserLoginHelper::getSignupToken(); $this->uselang = $this->request->getVal('uselang', 'en'); // fb#38260 -- removed uselang $this->avatars = $this->userLoginHelper->getRandomAvatars(); // template params $this->pageHeading = wfMessage('usersignup-heading')->escaped(); $this->createAccountButtonLabel = wfMessage('createaccount')->escaped(); if ($this->byemail) { $this->pageHeading = wfMessage('usersignup-heading-byemail')->escaped(); $this->createAccountButtonLabel = wfMessage('usersignup-createaccount-byemail')->escaped(); } if ($this->app->checkSkin('wikiamobile')) { $this->wg->Out->setPageTitle(wfMessage('usersignup-page-title-wikiamobile')->escaped()); $this->overrideTemplate('WikiaMobileIndex'); } // process signup $redirected = $this->request->getVal('redirected', ''); if ($this->wg->Request->wasPosted() && empty($redirected)) { $this->handleSignupFormSubmit(); } else { $this->track('signup-start'); } /** * OPS-6556 Special:UserSignup daily vists * Contact: ruggero@wikia-inc.com or michal@wikia-inc.com */ \Wikia\Logger\WikiaLogger::instance()->info('OPS-6556', ['i18n' => RequestContext::getMain()->getLanguage()->getCode(), 'skin' => RequestContext::getMain()->getSkin()->getSkinName()]); }