示例#1
0
文件: Yml.php 项目: askzap/ask-zap
 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();
     }
 }
示例#2
0
 /**
  * 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>&nbsp;&nbsp;');
         $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;
 }
示例#3
0
        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'));
    }
示例#4
0
 }
 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']);
     }
示例#5
0
文件: func.php 项目: askzap/ultimate
/**
 * 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;
}
示例#6
0
 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();
     }
 }