Example #1
0
 function indexAction()
 {
     $this->view->setTitle('Настройка доступа к разделам сайта');
     $defaultConfig = $this->module->config['access']['accessTree'];
     $modules = Module::getInstalled(\App::$cur->primary);
     $this->view->page(['data' => compact('modules', 'defaultConfig')]);
 }
Example #2
0
 function scanModules()
 {
     $modules = Module::getInstalled(App::$primary);
     $map = [];
     foreach ($modules as $module) {
         $map[$module] = App::$cur->{$module}->sitemap();
         if (!$map[$module]) {
             unset($map[$module]);
         }
     }
     return $map;
 }
Example #3
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 #4
0
<h1>Установка модулей</h1>
<form>
    <?php 
$config = Config::app(App::$primary ? App::$primary : App::$cur);
$modules = array_flip(Module::getInstalled(App::$cur));
$systemModules = array_slice(scandir(INJI_SYSTEM_DIR . '/modules'), 2);
foreach ($systemModules as $module) {
    $info = Module::getInfo($module);
    if (!$info || isset($modules[$module])) {
        continue;
    }
    ?>
        <div class ="form-group">
            <div class="checkbox">
                <label>
                    <input type ="checkbox" name ="modules[]" value ="<?php 
    echo $module;
    ?>
" /> <?php 
    echo $info['name'];
    ?>
                </label>
            </div>
        </div>
        <?php 
}
?>
    <button class="btn btn-primary">Установить</button>
</form>
Example #5
0
 public function install($module, $params = [])
 {
     $installed = Module::getInstalled(App::$primary);
     if (in_array($module, $installed)) {
         return true;
     }
     $info = Module::getInfo($module);
     if (!empty($info['requires'])) {
         foreach ($info['requires'] as $requireModuleName) {
             $this->install($requireModuleName);
         }
     }
     $config = Config::app();
     $type = 'modules';
     $path = INJI_SYSTEM_DIR . '/modules/';
     $location = 'modules';
     $config[$location][] = $module;
     if (!empty($info['autoload'])) {
         $config['autoloadModules'][] = $module;
     }
     if (!empty($info['menu'])) {
         foreach ($info['menu'] as $appType => $items) {
             $this->addInMenu($items, $appType);
         }
     }
     Config::save('app', $config, null, App::$primary);
     if (file_exists($path . $module . '/install_script.php')) {
         $installFunction = (include $path . $module . '/install_script.php');
         $installFunction(1, $params);
     }
 }
Example #6
0
<?php

$table = new Ui\Table();
$table->name = 'Установленные модули';
$table->addButton(['href' => '/admin/modules/create', 'text' => 'Создать']);
$table->addButton(['href' => '/admin/modules/install', 'text' => 'Установить']);
$table->setCols(['Модуль', 'Панель администратора', 'Публичная часть', 'Управление', 'По умолчанию']);
$default = !empty(App::$primary->config['defaultModule']) ? App::$primary->config['defaultModule'] : '';
foreach (Module::getInstalled(App::$cur) as $module) {
    $info = Module::getInfo($module);
    $table->addRow([empty($info['name']) ? $module : $info['name'], '', '', "<a class = 'btn btn-primary btn-xs' href = '/admin/modules/editor/{$module}'>Редактировать</a>", $default == $module ? 'По умолчанию' : "<a class = 'btn btn-primary btn-xs' href = '/admin/modules/setDefault/{$module}'>Установить по умолчанию</a>"]);
}
$table->draw();
Example #7
0
 /**
  * Return extensions for type
  * 
  * @param string $extensionType
  * @param string $request
  * @return array
  */
 public function getExtensions($extensionType, $request)
 {
     $extensions = [];
     $modules = Module::getInstalled(App::$cur);
     $method = 'get' . ucfirst($extensionType);
     foreach ($modules as $module) {
         $extensions = array_merge($extensions, $this->{$method}($request, false, "/extensions/{$this->moduleName}/" . $extensionType, $module));
     }
     return $extensions;
 }