/** * Init's applicaion // FIXME: Bad method... * * @param array $params Params for initiate installer * @return bool Always true */ public function init($params = array()) { if (defined('INSTALLER_INITED')) { return true; } $config = array(); define('AREA', 'A'); define('ACCOUNT_TYPE', 'admin'); date_default_timezone_set('Europe/Moscow'); $base_path = isset($params['base_path']) ? $params['base_path'] : realpath(dirname(__FILE__) . '/../../../'); // Register autoloader $classLoader = (require $base_path . '/app/lib/vendor/autoload.php'); $classLoader->add('Tygh', realpath($base_path . '/app')); // Prepare environment and process request vars list($_REQUEST, $_SERVER) = Bootstrap::initEnv($_GET, $_POST, $_SERVER, $base_path); if (defined('CONSOLE')) { chdir(getcwd() . '/install'); } // Get config data $config = (require DIR_ROOT . '/config.php'); if (isset($_REQUEST['version'])) { die(PRODUCT_NAME . ': version <b>' . PRODUCT_VERSION . ' ' . PRODUCT_EDITION . (PRODUCT_STATUS != '' ? ' (' . PRODUCT_STATUS . ')' : '') . (PRODUCT_BUILD != '' ? ' ' . PRODUCT_BUILD : '') . '</b>'); } // Callback: verifies if https works if (isset($_REQUEST['check_https'])) { die(defined('HTTPS') ? 'OK' : ''); } // Load core functions $fn_list = array('fn.addons.php', 'fn.companies.php', 'fn.database.php', 'fn.fs.php', 'fn.cms.php', 'fn.cart.php', 'fn.common.php', 'fn.control.php', 'fn.init.php', 'fn.users.php', 'fn.images.php', 'fn.log.php'); if (PRODUCT_EDITION == 'MULTIVENDOR' || PRODUCT_EDITION == 'ULTIMATE') { $fn_list[] = 'fn.' . strtolower(PRODUCT_EDITION) . '.php'; } foreach ($fn_list as $file) { require $config['dir']['functions'] . $file; } $config['dir']['install_themes'] = is_dir($config['dir']['root'] . '/var/themes_repository') ? $config['dir']['root'] . '/var/themes_repository' : $config['dir']['root'] . '/themes'; $config['dir']['install'] = $config['dir']['root'] . '/install/'; $classLoader->add('', $config['dir']['install'] . 'app/'); Registry::set('class_loader', $classLoader); Registry::set('config', $config); $session_id = session_id(); if (empty($session_id)) { session_start(); } fn_init_ajax(); // Init storage Registry::set('runtime.storage', array('storage' => 'file')); if (!empty($params['sl'])) { $this->setCurrentLangCode($params['sl']); } elseif ($this->getFromStorage('sl')) { $this->setCurrentLangCode($this->getFromStorage('sl')); } else { $this->setCurrentLangCode(self::DEFAULT_LANGUAGE); } $this->_loadLanguageVariables(); //define DEFAULT_LANGUAGE for correct addon installing if (!defined('DEFAULT_LANGUAGE')) { define('DEFAULT_LANGUAGE', self::DEFAULT_LANGUAGE); } define('INSTALLER_INITED', true); unset($config); }
db_query("set @@sql_mode = ''"); } register_shutdown_function(array('Registry', 'save')); // define lifetime for the cache data define('CACHE_LEVEL_TIME', 'time'); // First-level cache: static - the same for all requests define('CACHE_LEVEL_STATIC', 'cache'); Registry::register_cache('settings', array('settings'), CACHE_LEVEL_STATIC); // Get settings if (Registry::is_exist('settings') == false) { Registry::set('settings', fn_get_settings()); } // detect user agent fn_init_ua(); // initialize ajax handler fn_init_ajax(); // Start session mechanism Session::init(); if (PRODUCT_TYPE == 'MULTIVENDOR') { if (AREA == 'A' && !empty($_SESSION['auth']['company_id'])) { fn_define('COMPANY_ID', $_SESSION['auth']['company_id']); } } // Init addons fn_init_addons(); // get route to controller fn_get_route(); // initialize store localization if (AREA == 'C') { fn_init_localization($_REQUEST); }