Exemplo n.º 1
0
 /**
  * Makes DB backup
  *  db_filename - string name of result pack. Will be stored in Registry::get('config.dir.database') . $db_filename;
  *  db_tables - array List of tables to be backuped
  *  db_schema - bool Backup tables schema
  *  db_data - bool Backup data from tables
  * @param array $params
  *
  * @return string Path to backuped DB sql/tgz file
  */
 public static function backupDatabase($params = array())
 {
     $default_params = array('db_tables' => array(), 'db_schema' => false, 'db_data' => false, 'db_compress' => false, 'move_progress' => true);
     $params = array_merge($default_params, $params);
     $db_filename = empty($params['db_filename']) ? 'dump_' . date('mdY') . '.sql' : fn_basename($params['db_filename']);
     if (!fn_mkdir(Registry::get('config.dir.backups'))) {
         fn_set_notification('E', __('error'), __('text_cannot_create_directory', array('[directory]' => fn_get_rel_dir(Registry::get('config.dir.backups')))));
         return false;
     }
     $dump_file = Registry::get('config.dir.backups') . $db_filename;
     if (is_file($dump_file)) {
         if (!is_writable($dump_file)) {
             fn_set_notification('E', __('error'), __('dump_file_not_writable'));
             return false;
         }
     }
     $result = db_export_to_file($dump_file, $params['db_tables'], $params['db_schema'], $params['db_data'], true, true, $params['move_progress']);
     if (!empty($params['db_compress'])) {
         fn_set_progress('echo', __('compress_dump'), false);
         $ext = $params['db_compress'] == 'tgz' ? '.tgz' : '.zip';
         $result = fn_compress_files($db_filename . $ext, $db_filename, dirname($dump_file));
         unlink($dump_file);
         $dump_file .= $ext;
     }
     if ($result) {
         return $dump_file;
     }
     return false;
 }
Exemplo n.º 2
0
 public static function backupSettings($upgrade_dirs)
 {
     // Backup addon's settings to the session
     $_SESSION['twigmo_backup_settings'] = TwigmoSettings::get();
     // Backup twigmo blocks
     $old_company_id = Registry::get('runtime.company_id');
     $old_layout_id = Registry::get('runtime.layout.layout_id');
     foreach ($upgrade_dirs['backup_company_settings'] as $company_id => $dir) {
         Registry::set('runtime.company_id', $company_id);
         $default_layout_id = fn_twg_get_default_layout_id();
         Registry::set('runtime.layout.layout_id', $default_layout_id);
         $location = Location::instance($default_layout_id)->get('twigmo.post');
         if ($location) {
             $exim = Exim::instance($company_id, $default_layout_id);
             if (version_compare(PRODUCT_VERSION, '4.1.1', '>=')) {
                 $content = $exim->export($default_layout_id, array($location['location_id']));
             } else {
                 $content = $exim->export(array($location['location_id']));
             }
             if ($content) {
                 fn_twg_write_to_file($dir . '/blocks.xml', $content, false);
             }
         }
     }
     Registry::set('runtime.company_id', $old_company_id);
     Registry::set('runtime.layout.layout_id', $old_layout_id);
     // Backup twigmo langvars
     $languages = Lang::getLanguages();
     foreach ($languages as $language) {
         // Prepare langvars for backup
         $langvars = Lang::getAllLangVars($language['lang_code']);
         $langvars_formated = array();
         foreach ($langvars as $name => $value) {
             $langvars_formated[] = array('name' => $name, 'value' => $value);
         }
         fn_twg_write_to_file($upgrade_dirs['backup_settings'] . '/lang_' . $language['lang_code'] . '.bak', $langvars_formated);
     }
     if (fn_allowed_for('ULTIMATE')) {
         db_export_to_file($upgrade_dirs['backup_settings'] . 'lang_ult.sql', array(db_quote('?:ult_language_values')), 'Y', 'Y', false, false, false);
     }
     return true;
 }
Exemplo n.º 3
0
 public static function cloneImportedDB($store_data)
 {
     fn_set_progress('title', __('store_import.cloning_database'));
     fn_define('DB_MAX_ROW_SIZE', 10000);
     fn_define('DB_ROWS_PER_PASS', 40);
     General::connectToImportedDB($store_data);
     $tables = General::getTables($store_data['db_name'], $store_data['table_prefix']);
     $excluded_tables = array($store_data['table_prefix'] . 'logs', $store_data['table_prefix'] . 'sessions', $store_data['table_prefix'] . 'stored_sessions', $store_data['table_prefix'] . 'user_session_products', $store_data['table_prefix'] . 'stat_browsers', $store_data['table_prefix'] . 'stat_ips', $store_data['table_prefix'] . 'stat_languages', $store_data['table_prefix'] . 'stat_product_search', $store_data['table_prefix'] . 'stat_requests', $store_data['table_prefix'] . 'stat_search_engines', $store_data['table_prefix'] . 'stat_search_phrases', $store_data['table_prefix'] . 'stat_sessions', $store_data['table_prefix'] . 'stat_banners_log');
     $tables = array_diff($tables, $excluded_tables);
     $change_table_prefixes = array('from' => $store_data['table_prefix'], 'to' => self::formatPrefix());
     db_export_to_file(Registry::get('config.dir.database') . 'export.sql', $tables, true, true, false, true, true, $change_table_prefixes);
     General::connectToOriginalDB();
     self::_createExcludedTables($change_table_prefixes['to']);
     return db_import_sql_file(Registry::get('config.dir.database') . 'export.sql', 16384, true, true, false, false, false, true);
 }
Exemplo n.º 4
0
     $dbdump_filename = empty($_REQUEST['dbdump_filename']) ? 'dump_' . date('mdY') . '.sql' : fn_basename($_REQUEST['dbdump_filename']);
     if (!fn_mkdir(Registry::get('config.dir.database'))) {
         fn_set_notification('E', __('error'), __('text_cannot_create_directory', array('[directory]' => fn_get_rel_dir(Registry::get('config.dir.database')))));
         exit;
     }
     $dump_file = Registry::get('config.dir.database') . $dbdump_filename;
     if (is_file($dump_file)) {
         if (!is_writable($dump_file)) {
             fn_set_notification('E', __('error'), __('dump_file_not_writable'));
             exit;
         }
     }
     $dbdump_tables = empty($_REQUEST['dbdump_tables']) ? array() : $_REQUEST['dbdump_tables'];
     $dbdump_schema = !empty($_REQUEST['dbdump_schema']) && $_REQUEST['dbdump_schema'] == 'Y';
     $dbdump_data = !empty($_REQUEST['dbdump_data']) && $_REQUEST['dbdump_data'] == 'Y';
     db_export_to_file($dump_file, $dbdump_tables, $dbdump_schema, $dbdump_data);
     $result = false;
     if ($_REQUEST['dbdump_compress'] == 'Y') {
         fn_set_progress('echo', '<br />' . __('compressing_backup') . '...', false);
         $result = fn_compress_files($dbdump_filename . '.tgz', $dbdump_filename, dirname($dump_file));
         unlink($dump_file);
     }
     if ($result) {
         fn_set_notification('N', __('notice'), __('done'));
     }
 }
 // Restore
 if ($mode == 'restore') {
     if (!empty($_REQUEST['backup_files'])) {
         fn_restore_dump($_REQUEST['backup_files']);
     }