<?php if (!empty($_POST['partnerInvite']['email'])) { $title = ''; if (!empty($_POST['partnerInvite']['name'])) { $title .= 'Ув. ' . htmlspecialchars($_POST['partnerInvite']['name']) . '. '; } if (!filter_var($_POST['partnerInvite']['email'], FILTER_VALIDATE_EMAIL)) { Tools::redirect(null, 'Вы ввели не корректный E-mail', 'danger'); } $title = \Users\User::$cur->name() . ' приглашает вас зарегистрироваться на сайте: ' . idn_to_utf8(INJI_DOMAIN_NAME); $inviteCode = Tools::randomString(60); $invite = new Users\User\Invite(); $invite->code = $inviteCode; $invite->type = 'UsersPartnerInvite'; $invite->user_id = \Users\User::$cur->id; $invite->limit = 1; $invite->save(); $text = "<h3>{$title}</h3>"; $text .= '<p>Чтобы принять приглашение, перейдите по <a href = "http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/users/registration?invite_code=' . $inviteCode . '">этой ссылке</a> и завершите процедуру регистрации</p>'; Tools::sendMail('noreply@' . INJI_DOMAIN_NAME, $_POST['partnerInvite']['email'], $title, $text); Tools::redirect(null, 'Приглашение было отправлено', 'success'); } $partners = App::$cur->users->getUserPartners(Users\User::$cur, 8); $usersSearch = []; foreach ($partners['users'] as $user) { $usersSearch[] = ['name' => $user->name(), 'id' => $user->pk(), 'translit' => Tools::translit($user->name())]; } if (!empty($_GET['info']['user_id']) && !empty($users[$_GET['info']['user_id']])) { } App::$cur->libs->loadLib('typeahead');
public function registration($data, $autorization = false) { extract($data); if (empty($user_mail)) { Msg::add('Вы не ввели E-mail', 'danger'); return false; } $user_mail = trim($user_mail); if (!filter_var($user_mail, FILTER_VALIDATE_EMAIL)) { Msg::add('Вы ввели не корректный E-mail', 'danger'); return false; } $user = $this->get($user_mail, 'mail'); if ($user) { Msg::add('Введенный вами почтовый ящик зарегистрирован в нашей системе, войдите или введите другой почтовый ящик', 'danger'); return false; } if (empty($user_login)) { $user_login = $user_mail; } $user_login = trim($user_login); $user = $this->get($user_login, 'login'); if ($user) { Msg::add('Введенный вами логин зарегистрирован в нашей системе, войдите или введите другой логин', 'danger'); return false; } if (empty($user_name)) { $user_name = ''; } if (empty($user_city)) { $user_city = ''; } if (empty($user_birthday)) { $user_birthday = ''; } if (empty($user_phone)) { $user_phone = ''; } $invite_code = !empty($data['invite_code']) ? $data['invite_code'] : (!empty($_POST['invite_code']) ? $_POST['invite_code'] : (!empty($_COOKIE['invite_code']) ? $_COOKIE['invite_code'] : (!empty($_GET['invite_code']) ? $_GET['invite_code'] : ''))); if (!empty($invite_code)) { $invite = Users\User\Invite::get($invite_code, 'code'); if (!$invite) { Msg::add('Такой код приглашения не найден', 'danger'); return false; } if ($invite->limit && !($invite->limit - $invite->count)) { Msg::add('Лимит приглашений для данного кода исчерпан', 'danger'); return false; } $parent_id = $invite->user_id; $inviter = $parent_id; $invite->count++; $invite->save(); } if (empty($parent_id) && !empty($this->config['defaultPartner'])) { $parent_id = $this->config['defaultPartner']; } $pass = Tools::randomString(10); $user = new Users\User(['pass' => $this->hashpass($pass), 'mail' => $user_mail, 'login' => htmlspecialchars($user_login), 'role_id' => 2, 'group_id' => 2, 'parent_id' => !empty($parent_id) ? $parent_id : 0]); if (!empty($this->config['needActivation'])) { $user->activation = Tools::randomString(); } $user->save(); if (!$user->id) { Msg::add('Не удалось зарегистрировать', 'danger'); return false; } $info = new \Users\User\Info(['user_id' => $user->id, 'first_name' => htmlspecialchars($user_name), 'city' => htmlspecialchars($user_city), 'bday' => htmlspecialchars($user_birthday), 'phone' => htmlspecialchars($user_phone)]); $info->save(); if (isset($inviter)) { $this->AddUserActivity($inviter, 2, "У вас зарегистрировался новый партнер, {$info->first_name} {$info->last_name} (id: {$user->id}, email: {$user->mail})"); } if ($autorization) { $this->autorization($user_mail, $pass, 'mail'); } if (!empty($this->config['needActivation'])) { $from = 'noreply@' . INJI_DOMAIN_NAME; $to = $user_mail; $subject = 'Регистрация на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME); $text = 'Вы были зарегистрированы на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME) . '<br />для входа используйте ваш почтовый ящик в качестве логина и пароль: ' . $pass; $text .= '<br />'; $text .= '<br />'; $text .= 'Для активации вашего аккаунта перейдите по ссылке <a href = "http://' . INJI_DOMAIN_NAME . '/users/activation/' . $user->id . '/' . $user->activation . '">http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/users/activation/' . $user->id . '/' . $user->activation . '</a>'; Tools::sendMail($from, $to, $subject, $text); Msg::add('Вы были зарегистрированы. На указанный почтовый ящик был выслан ваш пароль и ссылка для активации', 'success'); } else { $from = 'noreply@' . INJI_DOMAIN_NAME; $to = $user_mail; $subject = 'Регистрация на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME); $text = 'Вы были зарегистрированы на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME) . '<br />для входа используйте ваш почтовый ящик в качестве логина и пароль: ' . $pass; Tools::sendMail($from, $to, $subject, $text); Msg::add('Вы были зарегистрированы. На указанный почтовый ящик был выслан ваш пароль', 'success'); } return $user->id; }