/** * Setup index action * * @return array List of prepared variables */ public function actionIndex() { // Check requirements $validator = new Validator(); $cart_settings['main_language'] = App::DEFAULT_LANGUAGE; $setup = new Setup($cart_settings); $app = App::instance(); $session_started = $validator->isSessionStarted(); if ($session_started && !$app->getFromStorage('license_agreement')) { $params['dispatch'] = 'license'; $app->run($params); exit(0); } $checking_result = array('session_started' => $session_started, 'file_upload' => $validator->isFileUploadsSupported(), 'safe_mode' => $validator->isSafeModeDisabled(), 'curl_supported' => $validator->isCurlSupported(), 'mysql_supported' => $validator->isMysqlSupported(), 'php_version_supported' => $validator->isPhpVersionSupported(), 'session_auto_start' => $validator->isSessionAutostartDisabled(), 'file_system_writable' => $validator->isFilesystemWritable(), 'json_available' => $validator->isJsonAvailable(), 'register_globals_disabled' => $validator->isGlobalsDisabled(), 'phar_data_available' => $validator->isPharDataAvailable(), 'func_overload_acceptable' => $validator->isFuncOverloadAcceptable()); $validator->isModeSecurityDisabled(); $validator->isModRewriteEnabled(); $validator->isZipArchiveAvailable(); foreach ($checking_result as $validator_result) { if (empty($validator_result)) { $app->setNotification('E', $app->t('error'), $app->t('server_requirements_do_not_meet'), true, 'server_requirements'); break; } } if (empty($checking_result['file_system_writable'])) { $app->setNotification('E', $app->t('error'), $app->t('check_files_and_folders_permissions'), true, 'file_permissions_section'); } $this->_prepareHttpData(); $languages = $setup->getLanguages(); $available_themes = $setup->getAvailableThemes(); $db_types = $setup->getSupportedDbTypes(); $return = array('checking_result' => $checking_result, 'show_requirements_section' => !$validator_result, 'languages' => $languages, 'available_themes' => $available_themes, 'db_types' => $db_types, 'cart_settings' => $cart_settings); return $return; }
/** * Languages validator * * @param array $languages * @return bool true if selected language is valid */ public function isLanguagesValid($languages) { $app = App::instance(); if (is_array($languages)) { $available_langs = Setup::getLanguages(); $isLangExists = false; foreach ($languages as $lang_code) { if (empty($available_langs[$lang_code])) { $app->setNotification('N', $app->t('notice'), $app->t('language_will_be_ignored', array('lang_code' => $app->t($lang_code))), true, 'administration_settings'); } else { $isLangExists = true; } } if (!$isLangExists) { $app->setNotification('E', $app->t('error'), $app->t('empty_languages'), true, 'administration_settings'); } return $isLangExists; } else { $app->setNotification('E', $app->t('error'), $app->t('empty_languages'), true, 'administration_settings'); return false; } }