public function configureAction() { $appOptions = Apps\App::get(filter_input(INPUT_GET, 'item_pk', FILTER_SANITIZE_NUMBER_INT)); $app = new App(); $app->name = $appOptions->name; $app->system = true; $app->staticPath = "/" . $appOptions->dir . "/static"; $app->templatesPath = "/" . $appOptions->dir . "/static/templates"; $app->path = INJI_PROGRAM_DIR . '/' . $appOptions->dir; $app->type = 'app'; $app->installed = true; $app->params = []; $app->config = Config::app($app); $modules = Module::getInstalled($app, $app); $inputs = []; foreach ($modules as $module) { $info = Module::getInfo($module); if (!empty($info['configure'])) { $config = Config::module($module, false, $app); foreach ($info['configure'] as $optionName => $params) { if (filter_input(INPUT_POST, $optionName)) { $config[$optionName] = filter_input(INPUT_POST, $optionName); Config::save('module', $config, $module, $app); } $input = []; $input['name'] = $optionName; $input['type'] = $params['type']; $input['label'] = $params['label']; $input['options']['value'] = !empty($config[$optionName]) ? $config[$optionName] : ''; $input['options']['values'] = ['' => 'Не выбрано']; $input['options']['values'] += $params['model']::getList(['forSelect' => true, 'key' => $params['col']]); $inputs[] = $input; } } } if (!empty($_POST)) { Tools::redirect('/setup'); } $this->view->page(['data' => compact('inputs')]); }
session_start(); define('INJI_DOMAIN_NAME', $_SERVER['SERVER_NAME']); spl_autoload_register(function ($class_name) { if (file_exists(INJI_SYSTEM_DIR . '/Inji/' . $class_name . '.php')) { include_once INJI_SYSTEM_DIR . '/Inji/' . $class_name . '.php'; } }); //load core Inji::$inst = new Inji(); Inji::$config = Config::system(); Inji::$inst->listen('Config-change-system', 'systemConfig', function ($event) { Inji::$config = $event['eventObject']; return $event['eventObject']; }); spl_autoload_register('Router::findClass'); $apps = Apps\App::getList(); //Make default app params $finalApp = ['name' => INJI_DOMAIN_NAME, 'dir' => INJI_DOMAIN_NAME, 'installed' => false, 'default' => true, 'route' => INJI_DOMAIN_NAME]; foreach ($apps as $app) { if ($app->default) { $finalApp = $app->_params; } if (preg_match("!{$app->route}!i", INJI_DOMAIN_NAME)) { $finalApp = $app->_params; break; } } App::$cur = new App($finalApp); $params = Tools::uriParse($_SERVER['REQUEST_URI']); App::$cur->type = 'app'; App::$cur->path = INJI_PROGRAM_DIR . '/' . App::$cur->dir;