Пример #1
0
 /**
  * Зарегистрировать нового пользователя в системе
  * 
  * @param string $mail Почта
  * @param string $password Пароль
  * @param string $name Имя
  * @param string $surname Фамилия 
  * @param string $burthday Дата рождения
  * @param bool $gender Пол 
  * @param integer $ip IP
  * @throws UserException Если пользователь уже существует
  * @throws UserException Если неверна дата рождения
  * @throws UserException Не заполнены имя и фамилия
  * @throws UserException Неверный формат почты
  */
 public function register($mail, $password, $name, $surname, $burthday, $gender, $ip)
 {
     if (checkMail($mail)) {
         if ($this->checkIfExsist($mail)) {
             throw new UserException($mail, UserException::USR_ALREADY_EXIST);
         }
         if (!checkDateFormat($burthday)) {
             throw new UserException($mail, UserException::USR_CHECK_BURTHDAY);
         } else {
             if ($name == "" && $surname == "") {
                 throw new UserException($mail, UserException::USR_NAME_EMPTY);
             }
         }
         $textPassword = $password;
         $password = md5($password);
         $date = date("Y-m-d");
         $query = "\r\n                INSERT INTO `SITE_USERS` SET\r\n                    `mail`='{$mail}',\r\n                    `password`='{$password}',\r\n                    `ip`={$ip},\r\n                    `register_date`='{$date}',\r\n                    `name`='{$name}',\r\n                    `second_name`='{$surname}',\r\n                    `gender`={$gender},\r\n                    `burthday`='{$burthday}'\r\n                ";
         $this->_sql->query($query);
         $querySelectId = $this->_sql->selFieldsWhere("SITE_USERS", "`mail`='{$mail}'", "id");
         $arr = $this->_sql->GetRows($querySelectId);
         $id = $arr[0]["id"];
         $activationKey = $this->generateActivationKey(7);
         $insertActivationRowData = array($id, $activationKey);
         $this->_sql->insert("USERS_ACTIVATION_KEYS", $insertActivationRowData);
         $p = new UserMailer();
         $p->mail = $mail;
         $embeddedImages = array("photos/no-photo.jpg", "photos/no-galary.jpg");
         $s = new SmartyExst();
         $s->assign("NAME", "{$name} {$surname}");
         $s->assign("PASS", $textPassword);
         $s->assign("ID", $id);
         $s->assign("KEY", $activationKey);
         $sendString = $s->fetch($this->mailTemplate);
         $p->registerSend($sendString, $embeddedImages);
         return $id;
     } else {
         throw new UserException($mail, UserException::USR_NAME_INCORRECT);
     }
 }