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')]); }
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')]); } }
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(); }
<h3>Мой профиль</h3> <?php $form = new Ui\ActiveForm(Users\User::$cur, 'profile'); $form->header = ''; $form->checkRequest([], true); $form->draw();