本文整理汇总了PHP中Msg::add方法的典型用法代码示例。如果您正苦于以下问题:PHP Msg::add方法的具体用法?PHP Msg::add怎么用?PHP Msg::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Msg
的用法示例。
在下文中一共展示了Msg::add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: editorAction
public function editorAction($module)
{
if (!file_exists(Module::getModulePath($module) . '/generatorHash.php')) {
Msg::add('Этот модуль был создан без помощи генератора. Возможности его изменения ограничены и могут привести к порче модуля', 'danger');
}
$this->view->page(['data' => compact('module')]);
}
示例2: beforeSave
public function beforeSave()
{
if ($this->id && $this->id == $this->parent_id) {
$this->parent_id = 0;
\Msg::add('Категория не может быть сама себе родителем');
}
}
示例3: parseRequest
public function parseRequest($request)
{
if (!empty($request[$this->colName]['pass']) && !empty($request[$this->colName]['pass'])) {
if (empty($request[$this->colName]['pass'])) {
\Msg::add('Вы не ввели пароль в первое поле', 'danger');
return FALSE;
}
if (empty($request[$this->colName]['repeat'])) {
\Msg::add('Вы не ввели пароль во второе поле', 'danger');
return FALSE;
}
if ($request[$this->colName]['pass'] != $request[$this->colName]['repeat']) {
\Msg::add('Введенные пароли не совадают', 'danger');
return FALSE;
}
$this->activeForm->model->{$this->colName} = \App::$cur->users->hashpass($request[$this->colName]['pass']);
}
}
示例4: init
public function init()
{
\App::$cur->view->customAsset('js', '/static/moduleAsset/UserForms/js/formCatcher.js');
if (!empty($_POST['UserForms'])) {
foreach ($_POST['UserForms'] as $form_id => $inputs) {
$form = \UserForms\Form::get((int) $form_id);
if (!$form) {
continue;
}
$formRecive = new \UserForms\Recive();
$formRecive->user_id = (int) \Users\User::$cur->id;
$formRecive->form_id = (int) $form_id;
$data = [];
$error = false;
foreach ($form->inputs as $input) {
if (isset($inputs['input' . $input->id])) {
$data['input' . $input->id] = htmlspecialchars($inputs['input' . $input->id]);
} elseif ($input->required) {
$error = true;
Msg::add('Вы не заполнили поле: ' . $input->label);
} else {
$data['input' . $input->id] = '';
}
}
if (!$error) {
$formRecive->data = json_encode($data);
$formRecive->save();
}
}
if (!$error && !empty(App::$cur->config['site']['email'])) {
$text = '';
foreach ($form->inputs as $input) {
if (isset($inputs['input' . $input->id])) {
$text .= "<b>{$input->label}:</b> " . htmlspecialchars($inputs['input' . $input->id]) . "<br />";
}
}
if ($text) {
$text = 'Дата получения по серверному времени: ' . date('Y-m-d H:i:s') . '<br />Заполненые поля:<br />' . $text;
Tools::sendMail('noreply@' . INJI_DOMAIN_NAME, App::$cur->config['site']['email'], $form->name, $text);
}
}
Tools::redirect($_SERVER['REQUEST_URI'], 'Ваша форма была успешно отправлена', 'success');
}
}
示例5: init
public function init()
{
$callbacksData = filter_input(INPUT_POST, 'Callbacks', FILTER_REQUIRE_ARRAY);
if (!empty($callbacksData)) {
$callback = new \Callbacks\Callback();
$error = false;
if (empty($callbacksData['text'])) {
$error = true;
Msg::add('Вы не написали текст отзыва');
} else {
$callback->text = nl2br(htmlspecialchars($callbacksData['text']));
}
if (empty($callbacksData['name'])) {
$error = true;
Msg::add('Вы не указали свое имя');
} else {
$callback->name = htmlspecialchars($callbacksData['name']);
}
if (empty($callbacksData['phone'])) {
$error = true;
Msg::add('Вы не указали свой номер телефона');
} else {
$callback->phone = htmlspecialchars($callbacksData['phone']);
}
$files = filter_var($_FILES['Callbacks'], FILTER_REQUIRE_ARRAY);
if (!empty($files['tmp_name']['photo'])) {
$callback->image_file_id = App::$cur->files->upload(['name' => $files['name']['photo'], 'tmp_name' => $files['tmp_name']['photo']]);
}
$callback->mail = htmlspecialchars($callbacksData['mail']);
$callback->type_id = (int) $callbacksData['type'];
if (!$error) {
$callback->save();
if (!empty(App::$cur->config['site']['email'])) {
$subject = 'Новый отзыв';
$text = 'Вы можете его посмотреть по этому адресу: <a href = "http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/admin/callbacks">http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/admin/callbacks</a>';
Tools::sendMail('noreply@' . INJI_DOMAIN_NAME, App::$cur->config['site']['email'], $subject, $text);
}
Tools::redirect('/', 'Ваш отзыв был получен и появится после обработки администратором', 'success');
}
}
}
示例6: exchangeAction
public function exchangeAction()
{
$wallets = $this->module->getUserWallets();
$currency = !empty($_GET['currency_id']) ? \Money\Currency::get((int) $_GET['currency_id']) : null;
if ($currency && empty($wallets[$currency->id])) {
$currency = null;
}
$targetCurrency = !empty($_GET['target_currency_id']) ? \Money\Currency::get((int) $_GET['target_currency_id']) : null;
if ($targetCurrency && empty($wallets[$targetCurrency->id])) {
$targetCurrency = null;
}
$where = [];
if ($currency) {
$where[] = ['currency_id', $currency->id];
} else {
$where[] = ['currency_id', implode(',', array_keys($wallets)), 'IN'];
}
if ($targetCurrency) {
$where[] = ['target_currency_id', $targetCurrency->id];
} else {
$where[] = ['target_currency_id', implode(',', array_keys($wallets)), 'IN'];
}
if ($where) {
$rates = Money\Currency\ExchangeRate::getList(['where' => $where]);
} else {
$rates = [];
}
if (!empty($_GET['exchange']) && $currency && $targetCurrency && !empty($rates[$_GET['exchange']['rate_id']])) {
$error = false;
$rate = $rates[$_GET['exchange']['rate_id']];
if (empty($_GET['exchange']['give']['amount']) || !(double) $_GET['exchange']['give']['amount']) {
Msg::add('Укажите сумму которую вы хотите отдать');
$error = true;
} else {
$amount = (double) $_GET['exchange']['give']['amount'];
}
if (!empty($amount) && $amount > $wallets[$currency->id]->amount) {
Msg::add('Вы указали сумму большую чем вам доступно');
$error = true;
}
if (!$error) {
$wallets[$currency->id]->diff(-$amount, 'Обмен валюты на ' . $targetCurrency->name());
$wallets[$targetCurrency->id]->diff($amount * $rate->rate, 'Обмне валюты с ' . $currency->name());
Tools::redirect('/users/cabinet', 'Обмен был успешно проведен');
}
}
$this->view->setTitle('Обмен валюты');
$this->view->page(['data' => compact('rates', 'currency', 'targetCurrency', 'wallets')]);
}
示例7: foreach
<h3>Блокировки на счете</h3>
<?php
$currency_id = !empty($_GET['currency_id']) ? (int) $_GET['currency_id'] : 0;
$wallets = App::$cur->money->getUserWallets();
if ($currency_id && empty($wallets[$currency_id])) {
Msg::add('У вас нет такого кошелька');
Msg::show();
return;
}
if ($currency_id) {
$ids = $wallets[$currency_id]->id;
} else {
$ids = [];
foreach ($wallets as $wallet) {
$ids[] = $wallet->id;
}
$ids = implode(',', $ids);
}
$table = new \Ui\Table();
$table->setCols(['№', 'Кошелек', 'Сумма', 'Комментарий', 'Дата']);
//items pages
$pages = new \Ui\Pages($_GET, ['count' => \Money\Wallet\Block::getCount(['where' => ['wallet_id', $ids, 'IN']]), 'limit' => 20]);
$histories = \Money\Wallet\Block::getList(['where' => ['wallet_id', $ids, 'IN'], 'order' => [['date_create', 'DESC'], ['id', 'DESC']], 'start' => $pages->params['start'], 'limit' => $pages->params['limit']]);
foreach ($histories as $history) {
$amount = $history->amount;
$table->addRow([$history->id, $history->wallet->currency->name(), '<span class = "' . ($amount > 0 ? "text-success" : 'text-danger') . '">' . $amount . '</span>', $history->comment, $history->date_create]);
}
$table->draw();
$pages->draw();
示例8: attachEmailAction
public function attachEmailAction()
{
if (Users\User::$cur->mail) {
Tools::redirect('/', 'К вашему аккаунту уже привязан E-Mail');
}
if (!empty($_POST['mail'])) {
$user_mail = trim($_POST['mail']);
if (!filter_var($user_mail, FILTER_VALIDATE_EMAIL)) {
Msg::add('Вы ввели не корректный E-mail', 'danger');
} else {
$user = Users\User::get($user_mail, 'mail');
if ($user && $user->id != Users\User::$cur->id) {
Msg::add('Данный E-mail уже привязан к другому аккаунту', 'danger');
} else {
Users\User::$cur->mail = $user_mail;
if (!empty($this->module->config['needActivation'])) {
Users\User::$cur->activation = Tools::randomString();
$from = 'noreply@' . INJI_DOMAIN_NAME;
$to = $user_mail;
$subject = 'Активация аккаунта на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME);
$text = 'Для активации вашего аккаунта перейдите по ссылке <a href = "http://' . INJI_DOMAIN_NAME . '/users/activation/' . Users\User::$cur->id . '/' . Users\User::$cur->activation . '">http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/users/activation/' . Users\User::$cur->id . '/' . Users\User::$cur->activation . '</a>';
Tools::sendMail($from, $to, $subject, $text);
Msg::add('На указанный почтовый ящик была выслана ваша ссылка для подтверждения E-Mail', 'success');
} else {
Msg::add('Вы успешно привязали E-Mail к своему аккаунту', 'success');
}
Users\User::$cur->save();
Tools::redirect('/');
}
}
}
$this->view->page();
}
示例9: registration
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;
}
示例10: checkRequest
public function checkRequest($params = [], $ajax = false)
{
if (!$this->checkAccess()) {
$this->drawError('you not have access to "' . $this->modelName . '" manager with name: "' . $this->formName . '"');
return [];
}
$successId = 0;
if (!empty($_POST[$this->requestFormName][$this->modelName])) {
$request = $_POST[$this->requestFormName][$this->modelName];
if ($this->model) {
$presets = !empty($this->form['preset']) ? $this->form['preset'] : [];
if (!empty($this->form['userGroupPreset'][\Users\User::$cur->group_id])) {
$presets = array_merge($presets, $this->form['userGroupPreset'][\Users\User::$cur->group_id]);
}
$afterSave = [];
$error = false;
foreach ($this->inputs as $col => $param) {
if (!empty($presets[$col])) {
continue;
}
if (is_object($param)) {
$afterSave[] = $param;
continue;
}
if (!empty($this->form['userGroupReadonly'][\Users\User::$cur->group_id]) && in_array($col, $this->form['userGroupReadonly'][\Users\User::$cur->group_id])) {
continue;
}
$inputClassName = '\\Ui\\ActiveForm\\Input\\' . ucfirst($param['type']);
$input = new $inputClassName();
$input->activeForm = $this;
$input->activeFormParams = $params;
$input->modelName = $this->modelName;
$input->colName = $col;
$input->colParams = $param;
try {
$input->validate($request);
$input->parseRequest($request);
} catch (\Exception $exc) {
\Msg::add($exc->getMessage(), 'danger');
$error = true;
}
}
if (!$error && empty($_GET['notSave'])) {
foreach ($presets as $col => $preset) {
if (!empty($preset['value'])) {
$this->model->{$col} = $preset['value'];
} elseif (!empty($preset['userCol'])) {
if (strpos($preset['userCol'], ':')) {
$rel = substr($preset['userCol'], 0, strpos($preset['userCol'], ':'));
$param = substr($preset['userCol'], strpos($preset['userCol'], ':') + 1);
$this->model->{$col} = \Users\User::$cur->{$rel}->{$param};
} else {
$this->model->{$col} = \Users\User::$cur->{$preset['userCol']};
}
}
}
if (!$this->parent) {
if (!empty($this->form['successText'])) {
$text = $this->form['successText'];
} else {
$text = $this->model->pk() ? 'Изменения были успешно сохранены' : 'Новый элемент был успешно добавлен';
}
\Msg::add($text, 'success');
}
$this->model->save(!empty($params['dataManagerParams']) ? $params['dataManagerParams'] : []);
foreach ($afterSave as $form) {
$form->checkRequest();
}
if ($ajax) {
\Msg::show();
} elseif (!empty($_GET['redirectUrl'])) {
\Tools::redirect($_GET['redirectUrl'] . (!empty($_GET['dataManagerHash']) ? '#' . $_GET['dataManagerHash'] : ''));
}
$successId = $this->model->pk();
}
}
if (!is_array($params) && is_callable($params)) {
$params($request);
}
}
return $successId;
}
示例11: auth
public static function auth()
{
$config = static::getConfig();
if (empty($_GET['code']) && empty($_GET['error'])) {
$query = ['client_id' => $config['appId'], 'scope' => 'email', 'response_type' => 'code', 'display' => 'page', 'redirect_uri' => 'http://' . INJI_DOMAIN_NAME . '/users/social/auth/vk'];
\Tools::redirect("https://oauth.vk.com/authorize?" . http_build_query($query));
}
if (empty($_GET['code']) && !empty($_GET['error'])) {
\Tools::redirect('/', 'Произошла ошибка во время авторизации через соц. сеть: ' . $_GET['error_description']);
}
$query = ['client_id' => $config['appId'], 'client_secret' => $config['secret'], 'code' => $_GET['code'], 'redirect_uri' => 'http://' . INJI_DOMAIN_NAME . '/users/social/auth/vk'];
$result = @file_get_contents("https://oauth.vk.com/access_token?" . http_build_query($query));
if ($result === false) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
$result = json_decode($result, true);
if (empty($result['user_id'])) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
$userQuery = ['user_id' => $result['user_id'], 'fields' => 'sex, bdate, photo_max_orig, home_town', 'access_token' => $result['access_token']];
$userResult = @file_get_contents("https://api.vk.com/method/users.get?" . http_build_query($userQuery));
if (!$userResult) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
$userDetail = json_decode($userResult, true);
if (empty($userDetail['response'][0])) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
$social = static::getObject();
$userSocial = \Users\User\Social::get([['uid', $result['user_id']], ['social_id', $social->id]]);
if ($userSocial && $userSocial->user) {
\App::$cur->users->newSession($userSocial->user);
if (!empty(\App::$cur->users->config['loginUrl'][\App::$cur->type])) {
\Tools::redirect(\App::$cur->users->config['loginUrl'][\App::$cur->type]);
}
} else {
if ($userSocial && !$userSocial->user) {
$userSocial->delete();
}
if (!\Users\User::$cur->id) {
$user = false;
if (!empty($result['email'])) {
$user = \Users\User::get($result['email'], 'mail');
}
if (!$user) {
$user = new \Users\User();
$user->group_id = 2;
$user->role_id = 2;
if (!empty($result['email'])) {
$user->login = $user->mail = $result['email'];
}
$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');
$inveiteError = false;
if (!$invite) {
Msg::add('Такой код пришлашения не найден', 'danger');
$inveiteError = true;
}
if ($invite->limit && !($invite->limit - $invite->count)) {
Msg::add('Лимит приглашений для данного кода исчерпан', 'danger');
$inveiteError = true;
}
if (!$inveiteError) {
$user->parent_id = $invite->user_id;
$invite->count++;
$invite->save();
}
}
if (!$user->parent_id && !empty(\App::$cur->Users->config['defaultPartner'])) {
$user->parent_id = \App::$cur->Users->config['defaultPartner'];
}
$user->save();
$userInfo = new \Users\User\Info();
$userInfo->user_id = $user->id;
$userInfo->save();
}
} else {
$user = \Users\User::$cur;
}
if (!$user->info->photo_file_id && !empty($userDetail['response'][0]['photo_max_orig'])) {
$user->info->photo_file_id = \App::$cur->files->uploadFromUrl($userDetail['response'][0]['photo_max_orig']);
}
if (!$user->info->first_name && !empty($userDetail['response'][0]['first_name'])) {
$user->info->first_name = $userDetail['response'][0]['first_name'];
}
if (!$user->info->last_name && !empty($userDetail['response'][0]['last_name'])) {
$user->info->last_name = $userDetail['response'][0]['last_name'];
}
if (!$user->info->city && !empty($userDetail['response'][0]['home_town'])) {
$user->info->city = $userDetail['response'][0]['home_town'];
}
if (!$user->info->sex && !empty($userDetail['response'][0]['sex'])) {
$user->info->sex = $userDetail['response'][0]['sex'] == 2 ? 1 : ($userDetail['response'][0]['sex'] == 1 ? 2 : 0);
}
if ($user->info->bday == '0000-00-00' && !empty($userDetail['response'][0]['bdate'])) {
$user->info->bday = substr_count($userDetail['response'][0]['bdate'], '.') == 2 ? \DateTime::createFromFormat('d.m.Y', $userDetail['response'][0]['bdate'])->format('Y-m-d') : (substr_count($userDetail['response'][0]['bdate'], '.') == 1 ? \DateTime::createFromFormat('d.m', $userDetail['response'][0]['bdate'])->format('Y-m-1') : '0000-00-00');
}
$user->info->save();
$userSocial = new \Users\User\Social();
//.........这里部分代码省略.........
示例12: buyCardAction
public function buyCardAction()
{
$this->view->setTitle('Покупка карты');
$bread = [];
$bread[] = ['text' => 'Покупка карты'];
$user = Users\User::$cur;
if (!empty($_POST) && !empty($_POST['card_id'])) {
$error = false;
$card = \Ecommerce\Card::get((int) $_POST['card_id']);
if (!$card) {
$error = true;
Msg::add('Такой карты не существует', 'danger');
}
if (!Users\User::$cur->id) {
$user_id = $this->Users->registration($_POST, true);
if (!$user_id) {
$error = true;
$user = null;
} else {
$user = Users\User::get($user_id);
}
}
$userCard = \Ecommerce\Card\Item::get([['card_id', $card->id], ['user_id', $user->id]]);
if ($userCard) {
$error = true;
Msg::add('У вас уже есть такая карта', 'danger');
}
$fields = \Ecommerce\UserAdds\Field::getList();
foreach ($fields as $field) {
if (empty($_POST['userAdds']['fields'][$field->id]) && $field->required) {
$error = 1;
Msg::add('Вы не указали: ' . $field->name);
}
}
if (!$error) {
$cardItem = new \Ecommerce\Card\Item();
$cardItem->card_id = $card->id;
$cardItem->user_id = $user->id;
$cardItem->save();
$cart = new \Ecommerce\Cart();
$cart->user_id = $user->user_id;
$cart->cart_status_id = 2;
$cart->comment = htmlspecialchars($_POST['comment']);
$cart->date_status = date('Y-m-d H:i:s');
$cart->complete_data = date('Y-m-d H:i:s');
if (!empty($_SESSION['cart']['cart_id'])) {
$cart->card_item_id = $cardItem->id;
}
$cart->save();
$this->module->parseFields($_POST['userAdds']['fields'], $cart);
$extra = new \Ecommerce\Cart\Extra();
$extra->name = $card->name;
$extra->price = $card->price;
$extra->count = 1;
$extra->cart_id = $cart->id;
$extra->info = 'card:' . $card->id . '|cardItem:' . $cardItem->id;
$extra->save();
Tools::redirect('/ecommerce/cart/success');
}
}
$this->view->page(['data' => compact('bread')]);
}
示例13: indexAction
public function indexAction()
{
$cart = '';
$deliverys = \Ecommerce\Delivery::getList(['order' => ['weight', 'ASC']]);
$payTypes = \Ecommerce\PayType::getList(['order' => ['weight', 'ASC']]);
if (!empty($_SESSION['cart']['cart_id'])) {
$cart = Ecommerce\Cart::get($_SESSION['cart']['cart_id']);
if (!empty($_POST)) {
$error = false;
if (!Users\User::$cur->id) {
$user_id = $this->Users->registration($_POST, true);
if (!$user_id) {
$error = true;
} else {
$user = Users\User::get($user_id);
}
} else {
$user = Users\User::$cur;
}
$ids = [];
if (!empty($_POST['cartItems'])) {
foreach ($_POST['cartItems'] as $cartItemId => $cartItemCont) {
$cartItem = \Ecommerce\Cart\Item::get((int) $cartItemId);
if (!$cartItem) {
continue;
}
if ($cartItem->cart_id != $cart->id) {
continue;
}
$count = (double) $cartItemCont;
if ($count < 0.001) {
$count = 1;
}
$cartItem->count = $count;
$cartItem->save();
$ids[] = $cartItemId;
}
}
foreach ($cart->cartItems as $cartItem) {
if (!in_array($cartItem->id, $ids)) {
$cartItem->delete();
}
}
$cart = Ecommerce\Cart::get($cart->id);
if (!$cart->cartItems) {
Tools::redirect('/ecommerce', 'Ваша корзина пуста');
}
if (empty($this->module->config['sell_over_warehouse'])) {
foreach ($cart->cartItems as $cartitem) {
$warecount = $cartitem->price->offer->warehouseCount($cart->id);
if ($cartitem->count > $warecount) {
$error = true;
Msg::add('Вы заказали <b>' . $cartitem->item->name . '</b> больше чем есть на складе. на складе: <b>' . $warecount . '</b>', 'danger');
}
}
}
if ($deliverys && empty($deliverys[$_POST['delivery']])) {
$error = 1;
Msg::add('Выберите способ доставки');
} elseif ($deliverys && !empty($deliverys[$_POST['delivery']])) {
$cart->delivery_id = $_POST['delivery'];
foreach ($deliverys[$cart->delivery_id]->fields as $field) {
if (empty($_POST['deliveryFields'][$field->id]) && $field->required) {
$error = 1;
Msg::add('Вы не указали: ' . $field->name);
}
}
}
if ($payTypes && empty($payTypes[$_POST['payType']])) {
$error = 1;
Msg::add('Выберите способ оплаты');
} elseif ($payTypes && !empty($payTypes[$_POST['payType']])) {
$payType = $payTypes[$_POST['payType']];
$cart->paytype_id = $payType->id;
} else {
$payType = null;
}
foreach (\Ecommerce\UserAdds\Field::getList() as $field) {
if (empty($_POST['userAdds']['fields'][$field->id]) && $field->required) {
$error = 1;
Msg::add('Вы не указали: ' . $field->name);
}
}
if (!empty($_POST['discounts']['card_item_id'])) {
$userCard = \Ecommerce\Card\Item::get((int) $_POST['discounts']['card_item_id']);
if (!$userCard) {
$error = true;
Msg::add('Такой карты не существует');
} elseif ($userCard->user_id != $user->id) {
$error = true;
Msg::add('Это не ваша карта');
} else {
$cart->card_item_id = $userCard->id;
}
}
$cart->save();
if (!$error && !empty($_POST['action']) && ($_POST['action'] = 'order')) {
$cart->user_id = $user->user_id;
$this->module->parseFields($_POST['userAdds']['fields'], $cart);
if ($payTypes && !empty($payTypes[$cart->paytype_id]) && !empty($_POST['deliveryFields'])) {
//.........这里部分代码省略.........
示例14: auth
public static function auth()
{
$config = static::getConfig();
if (empty($_GET['code']) && empty($_GET['error'])) {
$query = ['client_id' => $config['appId'], 'scope' => 'email', 'response_type' => 'code', 'redirect_uri' => 'http://' . INJI_DOMAIN_NAME . '/users/social/auth/facebook'];
\Tools::redirect("https://www.facebook.com/dialog/oauth?" . http_build_query($query));
}
if (empty($_GET['code']) && !empty($_GET['error'])) {
\Tools::redirect('/', 'Произошла ошибка во время авторизации через соц. сеть: ' . $_GET['error_description']);
}
$query = ['client_id' => $config['appId'], 'redirect_uri' => 'http://' . INJI_DOMAIN_NAME . '/users/social/auth/facebook', 'client_secret' => $config['secret'], 'code' => urldecode($_GET['code'])];
$result = @file_get_contents("https://graph.facebook.com/oauth/access_token?" . http_build_query($query));
if ($result === false) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
parse_str($result, $output);
if (empty($output['access_token'])) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
$userQuery = ['access_token' => $output['access_token'], 'fields' => 'first_name,middle_name,last_name,email,gender,location,picture'];
$userResult = @file_get_contents("https://graph.facebook.com/me?" . http_build_query($userQuery));
if (!$userResult) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
$userDetail = json_decode($userResult, true);
if (empty($userDetail['id'])) {
\Tools::redirect('/', 'Во время авторизации произошли ошибки', 'danger');
}
$social = static::getObject();
$userSocial = \Users\User\Social::get([['uid', $userDetail['id']], ['social_id', $social->id]]);
if ($userSocial && $userSocial->user) {
\App::$cur->users->newSession($userSocial->user);
if (!empty(\App::$cur->users->config['loginUrl'][\App::$cur->type])) {
\Tools::redirect(\App::$cur->users->config['loginUrl'][\App::$cur->type]);
}
} else {
if ($userSocial && !$userSocial->user) {
$userSocial->delete();
}
if (!\Users\User::$cur->id) {
$user = false;
if (!empty($userDetail['email'])) {
$user = \Users\User::get($userDetail['email'], 'mail');
}
if (!$user) {
$user = new \Users\User();
$user->group_id = 2;
$user->role_id = 2;
if (!empty($userDetail['email'])) {
$user->login = $user->mail = $userDetail['email'];
}
$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');
$inveiteError = false;
if (!$invite) {
Msg::add('Такой код пришлашения не найден', 'danger');
$inveiteError = true;
}
if ($invite->limit && !($invite->limit - $invite->count)) {
Msg::add('Лимит приглашений для данного кода исчерпан', 'danger');
$inveiteError = true;
}
if (!$inveiteError) {
$user->parent_id = $invite->user_id;
$invite->count++;
$invite->save();
}
}
if (!$user->parent_id && !empty(\App::$cur->Users->config['defaultPartner'])) {
$user->parent_id = \App::$cur->Users->config['defaultPartner'];
}
$user->save();
$userInfo = new \Users\User\Info();
$userInfo->user_id = $user->id;
$userInfo->save();
}
} else {
$user = \Users\User::$cur;
}
if (!$user->info->photo_file_id && !empty($userDetail['picture']['data']['url'])) {
$user->info->photo_file_id = \App::$cur->files->uploadFromUrl($userDetail['picture']['data']['url']);
}
if (!$user->info->first_name && !empty($userDetail['first_name'])) {
$user->info->first_name = $userDetail['first_name'];
}
if (!$user->info->last_name && !empty($userDetail['last_name'])) {
$user->info->last_name = $userDetail['last_name'];
}
if (!$user->info->middle_name && !empty($userDetail['middle_name'])) {
$user->info->middle_name = $userDetail['middle_name'];
}
if (!$user->info->city && !empty($userDetail['location'])) {
$user->info->city = $userDetail['location'];
}
if (!$user->info->sex && !empty($userDetail['gender'])) {
$user->info->sex = $userDetail['gender'] == 'male' ? 1 : ($userDetail['gender'] == 'female' ? 2 : 0);
}
$user->info->save();
$userSocial = new \Users\User\Social();
//.........这里部分代码省略.........
示例15: redirect
/**
* Redirect user from any place of code
*
* Also add message to message query for view
*
* @param string $href
* @param string $text
* @param string $status
*/
public static function redirect($href = null, $text = false, $status = 'info')
{
if ($href === null) {
$href = $_SERVER['REQUEST_URI'];
}
if ($text !== false) {
Msg::add($text, $status);
}
if (!headers_sent()) {
header("Location: {$href}");
} else {
echo '\'"><script>window.location="' . $href . '";</script>';
}
exit("Перенаправление на: <a href = '{$href}'>{$href}</a>");
}