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; }
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') {