/** * Запуск подчиненных контроллеров * @param Request $request Входящие данные и команды для обработки контроллерами * @param bool $all Признак, запускать все контроллеры (true), или пока не возвратится результат хотябы от одного из запущенных (false) * @param array $result Значения-заглушки для подчиненных контроллеров. Если в массиве есть ключ с именем контроллера, то этот контроллер не исполняется, а испольщуется указанное в элементе значение. * @return array Результаты исполнения контроллеров. Ключи массива - названия контроллеров. */ function startChildren($request, $all = true, $result = []) { $list = $this->getCihildrenControllers([], $request); $config = Config::read('collections'); if (isset($config[$this->uri() . '.startChildren'])) { $children = array_reverse($config[$this->uri() . '.startChildren']); foreach ($children as $item) { array_unshift($list, Data::read($item)); } } foreach ($list as $child) { $child = $child->linked(); if ($child instanceof controller) { $key = $child->name(); if (!isset($result[$key])) { $out = $child->start($request); if ($out !== false) { if (!$all) { return $out; } $request->mix(['previous' => true]); $result[$key] = $out; } } } } return $result; }
static function activate() { // Конфиг хранилищ self::$config = Config::read('auth'); self::$input = new Request(); self::$input->setFilter(Rule::arrays(['COOKIE' => Rule::arrays(['ID' => Rule::string()])])); }
private function searchUser($confirm) { self::$config = Config::read('auth'); $search_result = Data::find(array('from' => self::$config['users-list'], 'select' => 'children', 'depth' => 'max', 'where' => array(['child', 'confirm', array('value', '=', $confirm)]), 'key' => false, 'limit' => array(0, 1), 'comment' => 'search user by confirm property'), false); if (!empty($search_result)) { $user = $search_result[0]; } else { $user = false; } return $user; }
function show($v, Request $request) { if ($this->_result == 0) { $v['message'] = 'Такого пользователя не существует'; } self::$config = Config::read('auth'); if (self::$config['registration']) { $v['registration'] = '<a class="btn btn-lg btn-primary btn-block" href="registration" type="button">Зарегистрироваться</a>'; } else { $v['registration'] = ''; } return parent::show($v, $request); }
function checkChild(user $user) { self::$config = Config::read('auth'); $where = [['child', 'email', ['value', '=', $user->email->value()]]]; if ($user->is_exists()) { $where[] = ['uri', '!=', $user->uri()]; } $result = Data::find(array('from' => self::$config['users-list'], 'select' => 'children', 'depth' => 'max', 'where' => $where, 'key' => false, 'limit' => array(0, 1), 'comment' => 'search if user already exist'), false); if (!empty($result)) { $user->errors()->_children->email->_attributes->value->dublicate = 'Email не уникален'; return false; } else { return true; } }
/** * Загрузка пользовательских сообщений из конфига */ private static function loadGlobalDictionary() { if (!isset(self::$global_dictionary)) { self::$global_dictionary = Config::read('error.messages'); } }
static function activate() { $config = Config::read('db'); self::$default_connection = self::connect($config); }
/** * Активация модуля */ static function activate() { self::$handlers = Config::read('events'); }
static function activate() { // Конфиг хранилищ self::$config = array_reverse(Config::read('stores'), true); }
/** * Исполнение php скрипта в командной строке * @param string $command Команда - запускаемый скрипт с аргументами * @param bool $background_mode Признак, запускать в фоновом режиме. По умолчанию нет * @param bool $ignore_duplicates Признак, игнорировать дубликаты */ static function run_php($command, $background_mode = false, $ignore_duplicates = true) { if (!$ignore_duplicates || empty(self::$running_commands[$command])) { $config = Config::read('core'); $php = empty($config['php']) ? 'php' : $config['php']; if (substr(php_uname(), 0, 7) == "Windows") { pclose(popen('start' . ($background_mode ? ' /B ' : ' ') . $php . ' ' . $command, "r")); } else { exec($php . ' ' . $command . ($background_mode ? " > /dev/null &" : '')); } } self::$running_commands[$command] = true; }
/** * Загрузка шаблонизаторов */ static function activate() { self::$engines = Config::read('template'); }