. */ namespace SP\Modules\Web\Controllers\Install; use SP\Core\Language; use SP\Domain\Core\Exceptions\SPException; use SP\Modules\Web\Controllers\ControllerBase; use SP\Mvc\View\Components\SelectItemAdapter; /** * Class IndexController * * @package SP\Modules\Web\Controllers */ final class IndexController extends ControllerBase { public function indexAction(): void { $skipInstalled = $this->request->analyzeBool('skipInstalled', false); if ($skipInstalled === false && $this->configData->isInstalled()) { $this->router->response()->redirect('index.php?r=login'); return; } $this->layoutHelper->getPublicLayout('index', 'install'); $errors = []; foreach ($this->extensionChecker->getMissing() as $module) { $errors[] = [ 'type' => SPException::WARNING, 'description' => sprintf('%s (%s)', __('Module unavailable'), $module), 'hint' => __('Without this module the application could not run correctly'), ]; } $this->view->assign('errors', $errors); $this->view->assign( 'langs', SelectItemAdapter::factory(Language::getAvailableLanguages()) ->getItemsFromArraySelected([Language::$globalLang]) ); $this->view(); } }