예제 #1
0
 public static function restoreSettingsAndCSS($upgrade_dirs)
 {
     // Restore langvars - for all languages except EN and RU
     $languages = Lang::getLanguages();
     $except_langs = array('en', 'ru');
     foreach ($languages as $language) {
         $backup_file = $upgrade_dirs['backup_settings'] . 'lang_' . $language['lang_code'] . '.bak';
         if (!in_array($language['lang_code'], $except_langs) and file_exists($backup_file)) {
             LanguageValues::updateLangVar(unserialize(fn_get_contents($backup_file)), $language['lang_code']);
         }
     }
     // Restore blocks
     $old_company_id = Registry::get('runtime.company_id');
     foreach ($upgrade_dirs['backup_company_settings'] as $company_id => $dir) {
         Registry::set('runtime.company_id', $company_id);
         $backup_file = $dir . 'blocks.xml';
         if (file_exists($backup_file)) {
             if (version_compare(PRODUCT_VERSION, '4.1.1', '>=')) {
                 Registry::set('runtime.layout', Layout::instance()->getDefault());
             }
             Exim::instance($company_id, fn_twg_get_default_layout_id())->importFromFile($backup_file);
         }
     }
     Registry::set('runtime.company_id', $old_company_id);
     // Restore settings if addon was connected
     $restored_settings = array('my_private_key', 'my_public_key', 'his_public_key', 'email', 'customer_connections', 'admin_connection');
     $settings = array();
     foreach ($_SESSION['twigmo_backup_settings'] as $setting => $value) {
         if (in_array($setting, $restored_settings)) {
             $settings[$setting] = $value;
         }
     }
     $settings['version'] = TWIGMO_VERSION;
     unset($_SESSION['twigmo_backup_settings']);
     TwigmoSettings::set($settings);
     $connector = new TwigmoConnector();
     if (!$connector->updateConnections(true)) {
         $connector->disconnect(array(), true);
     }
     // Restore images
     self::copyFiles($upgrade_dirs['backup_files']['media_frontend'], $upgrade_dirs['installed']['media_frontend']);
     return true;
 }
예제 #2
0
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($mode == 'tw_connect') {
        $tw_register = empty($_REQUEST['tw_register']) ? array() : $_REQUEST['tw_register'];
        $connector = new TwigmoConnector();
        $user_data = array('email' => empty($tw_register['email']) ? '' : $tw_register['email'], 'password' => empty($tw_register['password']) ? '' : $tw_register['password'], 'user_id' => $auth['user_id']);
        $stores = empty($tw_register['stores']) ? array() : $tw_register['stores'];
        $is_connected = $connector->connect($stores, $user_data);
        $connector->displayServiceNotifications(true);
        if ($is_connected) {
            fn_set_notification('N', __('notice'), __('twgadmin_text_store_connected'));
        }
        return array(CONTROLLER_STATUS_REDIRECT, 'addons.update?addon=twigmo');
    }
    if ($mode == 'tw_disconnect') {
        $stores = empty($_REQUEST['disconnect_stores']) ? array() : $_REQUEST['disconnect_stores'];
        TwigmoConnector::disconnect($stores, $_REQUEST['disconnect_admin'] == 'Y');
        return array(CONTROLLER_STATUS_REDIRECT, 'addons.update?addon=twigmo&disconnect=Y');
    }
    if ($mode == 'tw_svc_auth_cp') {
        $connector = new TwigmoConnector();
        $action = 'cp';
        $connector->authPage($action);
        exit;
    }
    if ($mode == 'tw_svc_auth_te') {
        $connector = new TwigmoConnector();
        $action = 'te';
        $connector->authPage($action);
        exit;
    }
    if ($mode == 'update' && $_REQUEST['addon'] == 'twigmo') {