Example #1
0
 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')]);
 }
Example #2
0
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;