Exemple #1
0
 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();
 }