public static function clearCaches($company_ids = null) { if (is_null($company_ids)) { if (Registry::get('runtime.company_id') || Registry::get('runtime.simple_ultimate')) { $company_ids = Registry::get('runtime.company_data.company_id'); } else { $company_ids = array_keys(fn_get_short_companies()); } } foreach ((array) $company_ids as $company_id) { $self = new self($company_id); $self->clearCache(); } }
/** * Creates database and imports dump there * @param string $db_name db name * @return boolean true on success, false - otherwise */ public static function createDb($db_name = '') { $snapshot_dir = Registry::get('config.dir.snapshots'); $dbdump_filename = empty($db_name) ? 'cmp_current.sql' : 'cmp_release.sql'; if (!fn_mkdir($snapshot_dir)) { fn_set_notification('E', __('error'), __('text_cannot_create_directory', array('[directory]' => fn_get_rel_dir($snapshot_dir)))); return false; } $dump_file = $snapshot_dir . $dbdump_filename; if (is_file($dump_file)) { if (!is_writable($dump_file)) { fn_set_notification('E', __('error'), __('dump_file_not_writable')); return false; } } $fd = @fopen($snapshot_dir . $dbdump_filename, 'w'); if (!$fd) { fn_set_notification('E', __('error'), __('dump_cant_create_file')); return false; } if (!empty($db_name)) { Database::changeDb($db_name); } // set export format db_query("SET @SQL_MODE = 'MYSQL323'"); fn_start_scroller(); $create_statements = array(); $insert_statements = array(); $status_data = db_get_array("SHOW TABLE STATUS"); $dbdump_tables = array(); foreach ($status_data as $k => $v) { $dbdump_tables[] = $v['Name']; } // get status data $t_status = db_get_hash_array("SHOW TABLE STATUS", 'Name'); foreach ($dbdump_tables as $k => $table) { fn_echo('<br />' . __('backupping_data') . ': <b>' . $table . '</b> '); $total_rows = db_get_field("SELECT COUNT(*) FROM {$table}"); $index = db_get_array("SHOW INDEX FROM {$table}"); $order_by = array(); foreach ($index as $kk => $vv) { if ($vv['Key_name'] == 'PRIMARY') { $order_by[] = '`' . $vv['Column_name'] . '`'; } } if (!empty($order_by)) { $order_by = 'ORDER BY ' . implode(',', $order_by); } else { $order_by = ''; } // Define iterator if (!empty($t_status[$table]) && $t_status[$table]['Avg_row_length'] < DB_MAX_ROW_SIZE) { $it = DB_ROWS_PER_PASS; } else { $it = 1; } for ($i = 0; $i < $total_rows; $i = $i + $it) { $table_data = db_get_array("SELECT * FROM {$table} {$order_by} LIMIT {$i}, {$it}"); foreach ($table_data as $_tdata) { $_tdata = fn_add_slashes($_tdata, true); $values = array(); foreach ($_tdata as $v) { $values[] = $v !== null ? "'{$v}'" : 'NULL'; } fwrite($fd, "INSERT INTO {$table} (`" . implode('`, `', array_keys($_tdata)) . "`) VALUES (" . implode(', ', $values) . ");\n"); } fn_echo(' .'); } } fn_stop_scroller(); if (!empty($db_name)) { Settings::instance()->reloadSections(); } if (fn_allowed_for('ULTIMATE')) { $companies = fn_get_short_companies(); asort($companies); $settings['company_root'] = Settings::instance()->getList(); foreach ($companies as $k => $v) { $settings['company_' . $k] = Settings::instance()->getList(0, 0, false, $k); } } else { $settings['company_root'] = Settings::instance()->getList(); } if (!empty($db_name)) { Database::changeDb(Registry::get('config.db_name')); } $settings = self::processSettings($settings, ''); $settings = self::formatSettings($settings['data']); ksort($settings); $data = print_r($settings, true); fwrite($fd, $data); fclose($fd); @chmod($snapshot_dir . $dbdump_filename, DEFAULT_FILE_PERMISSIONS); return true; }
Registry::set('navigation.subsection', 'links'); } // [Block manager] list($blocks) = fn_get_blocks(array('location' => 'pages', 'block_type' => 'B', 'all' => true)); if (!empty($blocks)) { $view->assign('blocks', $blocks); $view->assign('selected_block', fn_get_selected_block_data($_REQUEST, $blocks, $_REQUEST['page_id'], 'pages')); $view->assign('block_properties', fn_get_block_properties()); } // [/Block manager] list($pages_tree, $params) = fn_get_pages(array('get_tree' => 'plain')); $view->assign('all_pages_list', $pages_tree); $view->assign('page_type', $page_data['page_type']); $view->assign('page_data', $page_data); $view->assign('page_type_data', fn_get_page_object_by_type($page_data['page_type'])); $view->assign('companies', fn_get_short_companies()); // // Delete page // } elseif ($mode == 'delete') { $suffix = ''; if (!empty($page_id)) { if (!isset($_REQUEST['multi_level'])) { $page_type = db_get_field("SELECT page_type FROM ?:pages WHERE page_id = ?i", $page_id); $suffix = '?page_type=' . $page_type; } else { $suffix = '?get_tree=multi_level'; } fn_delete_page($page_id); fn_set_notification('N', fn_get_lang_var('congratulations'), fn_get_lang_var('text_page_has_been_deleted')); }
} if ($mode == 'm_delete') { foreach ($_REQUEST['change_ids'] as $change_id) { db_query("DELETE FROM ?:reward_point_changes WHERE change_id = ?i", $change_id); } } if ($mode == 'cleanup_logs') { db_query("DELETE FROM ?:reward_point_changes WHERE user_id = ?i", $_REQUEST['user_id']); } if ($mode == 'add' || $mode == 'update') { if (isset($_REQUEST['reward_points'])) { foreach ($_REQUEST['reward_points'] as $k => $v) { if (fn_allowed_for('ULTIMATE')) { if (!Registry::get('runtime.company_id')) { if (!empty($v['update_all_vendors'])) { $companies = fn_get_short_companies(); foreach ($companies as $company_id => $name) { fn_add_reward_points($v, 0, GLOBAL_REWARD_POINTS, $company_id); } } continue; } } fn_add_reward_points($v, 0, GLOBAL_REWARD_POINTS); } } } if ($mode == 'delete') { if (!empty($_REQUEST['change_id'])) { db_query("DELETE FROM ?:reward_point_changes WHERE change_id = ?i", $_REQUEST['change_id']); }
/** * Clear generated watermarks * * @param array $images_types Images types to be cleared, clear all if empty * @return boolean Always true */ function fn_delete_watermarks($images_types) { $path_types = array('icons' => array('category', 'product', 'thumbnails'), 'detailed' => array('detailed')); $delete_paths = array(); foreach ($path_types as $k => $v) { if (empty($images_types) || !empty($images_types[$k])) { $delete_paths = array_merge($delete_paths, $path_types[$k]); } } $wt_paths = array(WATERMARKS_DIR_NAME); if (fn_allowed_for('ULTIMATE') && !Registry::get('runtime.company_id')) { $wt_paths = array(); $companies = fn_get_short_companies(); foreach ($companies as $company_id => $name) { $wt_paths[] = 'watermarked/' . $company_id . '/'; } } foreach ($delete_paths as $path) { foreach ($wt_paths as $wt_path) { Storage::instance('images')->deleteDir($wt_path . $path); } } fn_clear_cache(); return true; }
public static function clearCaches($company_ids = null) { if (is_null($company_ids)) { if (Registry::get('runtime.company_id') || Registry::get('runtime.simple_ultimate')) { $company_ids = Registry::get('runtime.company_data.company_id'); } else { $company_ids = array_keys(fn_get_short_companies()); } } $price_id = db_get_field("SELECT DISTINCT param_id FROM ?:yml_param WHERE param_type = 'price_list'"); foreach ((array) $company_ids as $company_id) { $self = new self($company_id, $price_id); $self->clearCache(); } }