示例#1
0
文件: App.php 项目: heg-arc-ne/cscart
 /**
  * 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);
 }
示例#2
0
    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);
}