示例#1
0
 public function transferAction()
 {
     $transfer = new Money\Transfer();
     $form = new Ui\ActiveForm($transfer, 'transfer');
     $transferId = $form->checkRequest();
     if ($transferId) {
         $transfer = Money\Transfer::get($transferId);
         $transfer->user_id = \Users\User::$cur->id;
         $transfer->code = Tools::randomString();
         $transfer->save();
         $wallets = $this->money->getUserWallets();
         $text = 'Перевод средств для ' . $transfer->toUser->name();
         $wallets[$transfer->currency_id]->diff(-$transfer->amount, $text);
         \App::$cur->users->AddUserActivity($transfer->user_id, 4, $text . '<br />' . (double) $transfer->amount . ' ' . $wallets[$transfer->currency_id]->currency->acronym());
         $block = new Money\Wallet\Block();
         $block->wallet_id = $wallets[$transfer->currency_id]->id;
         $block->amount = $transfer->amount;
         $block->comment = 'Заблокированно на перевод средств для ' . $transfer->toUser->name();
         $block->data = 'Money\\Transfer:' . $transfer->id;
         $block->save();
         $from = 'noreply@' . INJI_DOMAIN_NAME;
         $to = \Users\User::$cur->mail;
         $subject = 'Подтверждение перевода';
         $text = 'Чтобы подтвержить перевод №' . $transfer->id . ' введите код <b>' . $transfer->code . '</b> на <a href = "http://' . INJI_DOMAIN_NAME . '/money/confirmTransfer/' . $transfer->id . '?code=' . $transfer->code . '">странице</a> перевода';
         Tools::sendMail($from, $to, $subject, $text);
         Tools::redirect('/money/confirmTransfer/' . $transfer->id);
     }
     $this->view->setTitle('Перевод средств');
     $this->view->page(['data' => compact('form')]);
 }
示例#2
0
 public function formPopUpAction()
 {
     if (strpos($_GET['item'], ':')) {
         $raw = explode(':', $_GET['item']);
         $modelName = $raw[0];
         $id = $raw[1];
         $model = $modelName::get($id, $modelName::index(), !empty($_GET['params']['dataManagerParams']) ? $_GET['params']['dataManagerParams'] : []);
     } else {
         $modelName = $_GET['item'];
         $model = new $modelName();
     }
     $params = [];
     if (!empty($_GET['params'])) {
         $params = $_GET['params'];
         if (!empty($params['preset'])) {
             $model->setParams($params['preset']);
         }
     }
     if (!empty($_GET['params']['dataManagerParams']['appType'])) {
         $params['appType'] = $_GET['params']['dataManagerParams']['appType'];
     }
     $formName = !empty($_GET['formName']) ? $_GET['formName'] : (!empty($_GET['params']['formName']) ? $_GET['params']['formName'] : 'manager');
     $form = new Ui\ActiveForm($model, $formName);
     if (!empty($_GET['_']) || !empty($_POST['_'])) {
         $return = new Server\Result();
         ob_start();
         $form->checkRequest($params, true);
         $_GET['item'] = get_class($form->model) . ($model->pk() ? ':' . $model->pk() : '');
         $get = $_GET;
         if (isset($get['notSave'])) {
             unset($get['notSave']);
         }
         $form->action = (App::$cur->system ? '/' . App::$cur->name : '') . '/ui/formPopUp/?' . http_build_query($get);
         $form->draw($params, true);
         $return->content = ob_get_contents();
         ob_end_clean();
         $return->send();
     } else {
         $form->checkRequest($params);
         $_GET['item'] = get_class($form->model) . ($model->pk() ? ':' . $model->pk() : '');
         $get = $_GET;
         if (isset($get['notSave'])) {
             unset($get['notSave']);
         }
         $form->action = (App::$cur->system ? '/' . App::$cur->name : '') . '/ui/formPopUp/?' . http_build_query($get);
         $this->view->setTitle(($model && $model->pk() ? 'Изменить ' : 'Создать ') . $form->header);
         $this->view->page(['content' => 'form', 'data' => compact('form', 'params')]);
     }
 }
示例#3
0
 public function searchAction()
 {
     $result = new Server\Result();
     $searchString = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_STRING);
     $searchString = trim(preg_replace('![^A-zА-я0-9@-_\\. ]!iSu', ' ', urldecode($searchString)));
     if (!$searchString) {
         $result->content = [];
         $result->send();
     }
     try {
         $modelName = trim(filter_input(INPUT_GET, 'modelName', FILTER_SANITIZE_STRING));
         if (!$modelName) {
             throw new Exception('Не указана модель');
         }
         $model = new $modelName();
         if (!$model || !is_subclass_of($model, 'Model')) {
             throw new Exception('Модель не найдена');
         }
         $formName = trim(filter_input(INPUT_GET, 'formName', FILTER_SANITIZE_STRING));
         if (!$formName) {
             throw new Exception('Не указано название формы');
         }
         if (empty($modelName::$forms[$formName])) {
             throw new Exception('Не существует указанной формы');
         }
         $activeForm = new Ui\ActiveForm($model, $formName);
         $inputs = $activeForm->getInputs();
         $inputName = trim(filter_input(INPUT_GET, 'inputName', FILTER_SANITIZE_STRING));
         if (empty($inputs[$inputName])) {
             throw new Exception('У формы нет такого поля');
         }
     } catch (Exception $exc) {
         $result->success = false;
         $result->content = $exc->getMessage();
         $result->send();
     }
     $options = ['where' => []];
     $searchArr = [];
     foreach (explode(' ', $searchString) as $part) {
         $colWhere = [];
         $first = true;
         foreach ($inputs[$inputName]['cols'] as $col) {
             $part = trim($part);
             if ($part && strlen($part) > 2) {
                 $colWhere[] = [$col, '%' . $part . '%', 'LIKE', $first ? 'AND' : 'OR'];
                 $first = false;
             }
         }
         if ($colWhere) {
             $searchArr[] = $colWhere;
         }
     }
     if ($searchArr) {
         $options['where'][] = $searchArr;
     } else {
         $result->content = [];
         $result->send();
     }
     $list = $activeForm->getOptionsList($inputs[$inputName], ['noEmptyValue' => true], $modelName, 'aditional', $options);
     $result->content = $list;
     $result->send();
 }
示例#4
0
文件: profile.php 项目: krvd/cms-Inji
<h3>Мой профиль</h3>
<?php 
$form = new Ui\ActiveForm(Users\User::$cur, 'profile');
$form->header = '';
$form->checkRequest([], true);
$form->draw();