private function onSign() { if (!$this->module->isNewsletterForGuests() && !GWF_Session::isLoggedIn()) { return GWF_HTML::err('ERR_LOGIN_REQUIRED'); } $user = GWF_Session::getUser(); $row = GWF_Newsletter::getRowForUser($user); $form = $this->getForm($row); if (false !== ($error = $form->validate($this->module))) { return $error . $this->templateSign(); } $email = $form->getVar('email'); $type = (int) $form->getVar('type'); $langid = $form->getVar('langid'); $newsletter = new GWF_Newsletter(false); if (false === ($row = $newsletter->getRow($email))) { return $this->onNewSign($email, $type, $langid) . $this->templateSign(); } $back = ''; if ($langid !== $row->getVar('nl_langid')) { $back .= $this->module->message('msg_changed_lang'); $row->saveVar('nl_langid', $langid); } if ($row->getType() !== $type) { $back .= $this->module->message('msg_changed_type'); $row->saveType($type); } return $back . $this->templateSign(); }