/**
  * @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()]);
 }