/** * Инициализирует языковой файл * */ protected function InitLang($sLang = null) { if (!$sLang) { $sLang = $this->sCurrentLang; } UserLocale::setLocale(Config::Get('lang.current'), array('locale' => Config::get('i18n.locale'), 'timezone' => Config::get('i18n.timezone'))); if (!is_array($this->aLangMsg)) { $this->aLangMsg = array(); } $this->aLangMsg[$sLang] = array(); // * Если используется кеширование через memcaсhed, то сохраняем данные языкового файла в кеш if (Config::Get('sys.cache.type') == 'memory' && Config::Get('sys.cache.use')) { $sCacheKey = 'lang_' . $sLang . '_' . Config::Get('view.skin'); if (false === ($this->aLangMsg[$sLang] = E::ModuleCache()->Get($sCacheKey))) { // if false then empty array $this->aLangMsg[$sLang] = array(); $this->LoadLangFiles($this->sDefaultLang, $sLang); if ($sLang != $this->sDefaultLang) { $this->LoadLangFiles($sLang, $sLang); } E::ModuleCache()->Set($this->aLangMsg[$sLang], $sCacheKey, array(), 60 * 60); } } else { $this->LoadLangFiles($this->sDefaultLang, $sLang); if ($sLang != $this->sDefaultLang) { $this->LoadLangFiles($sLang, $sLang); } } if ($sLang != Config::Get('lang.current')) { //Config::Set('lang.current', $sLang); } $this->LoadLangJs(); }
/** * @param array $aConfig */ public static function Init($aConfig) { // Регистрация автозагрузчика классов spl_autoload_register('Loader::Autoload'); Config::Load($aConfig); $sConfigDir = Config::Get('path.dir.config'); // Load main config Config::LoadFromFile($sConfigDir . '/config.php', false); // Load additional config files if defined $aConfigLoad = F::Str2Array(Config::Get('config_load')); if ($aConfigLoad) { self::_loadConfigSections($sConfigDir, $aConfigLoad); } // Includes all *.php files from {path.root.engine}/include/ $sIncludeDir = Config::Get('path.dir.engine') . '/include/'; self::_includeAllFiles($sIncludeDir); // Load main config level (modules, local & plugins) self::_loadConfigFiles($sConfigDir, Config::LEVEL_MAIN); // Define app config dir $sAppConfigDir = Config::Get('path.dir.app') . '/config/'; // Ups config level Config::ResetLevel(Config::LEVEL_APP); // Load application config level (modules, local & plugins) self::_loadConfigFiles($sAppConfigDir, Config::LEVEL_APP); // Load additional config files (the set could be changed in this point) $aConfigLoad = F::Str2Array(Config::Get('config_load')); if ($aConfigLoad) { self::_loadConfigSections($sAppConfigDir, $aConfigLoad, Config::LEVEL_APP); } // Load include files of plugins self::_loadIncludeFiles(Config::LEVEL_MAIN); self::_loadIncludeFiles(Config::LEVEL_APP); self::_checkRequiredDirs(); $aSeekDirClasses = array(Config::Get('path.dir.app'), Config::Get('path.dir.common'), Config::Get('path.dir.engine')); Config::Set('path.root.seek', $aSeekDirClasses); if (is_null(Config::Get('path.root.subdir'))) { if (isset($_SERVER['DOCUMENT_ROOT'])) { $sPathSubdir = '/' . F::File_LocalPath(ALTO_DIR, $_SERVER['DOCUMENT_ROOT']); } elseif ($iOffset = Config::Get('path.offset_request_url')) { $aParts = array_slice(explode('/', F::File_NormPath(ALTO_DIR)), -$iOffset); $sPathSubdir = '/' . implode('/', $aParts); } else { $sPathSubdir = ''; } Config::Set('path.root.subdir', $sPathSubdir); } // Подгружаем конфиг из файлового кеша, если он есть Config::ResetLevel(Config::LEVEL_CUSTOM); $aConfig = Config::ReadCustomConfig(null, true); if ($aConfig) { Config::Load($aConfig, false, null, null, 'custom'); } // Задаем локаль по умолчанию F::IncludeLib('UserLocale/UserLocale.class.php'); // Устанавливаем признак того, является ли сайт многоязычным $aLangsAllow = (array) Config::Get('lang.allow'); if (sizeof($aLangsAllow) > 1) { UserLocale::initLocales($aLangsAllow); Config::Set('lang.multilang', true); } else { Config::Set('lang.multilang', false); } UserLocale::setLocale(Config::Get('lang.current'), array('local' => Config::Get('i18n.locale'), 'timezone' => Config::Get('i18n.timezone'))); Config::Set('i18n', UserLocale::getLocale()); F::IncludeFile(Config::Get('path.dir.engine') . '/classes/core/Engine.class.php'); }