Exemple #1
0
        if (!empty($_REQUEST['advanced_filter']) && $_REQUEST['advanced_filter'] == 'Y') {
            list($filters) = fn_get_filters_products_count($_REQUEST);
            $view->assign('filter_features', $filters);
        }
        // [Breadcrumbs]
        $parent_ids = explode('/', $category_data['id_path']);
        array_pop($parent_ids);
        if (!empty($parent_ids)) {
            $cats = fn_get_category_name($parent_ids);
            foreach ($parent_ids as $c_id) {
                fn_add_breadcrumb($cats[$c_id], "categories.view?category_id={$c_id}");
            }
        }
        fn_add_breadcrumb($category_data['category'], empty($_REQUEST['features_hash']) && empty($_REQUEST['advanced_filter']) ? '' : "categories.view?category_id={$_REQUEST['category_id']}");
        if (!empty($params['features_hash'])) {
            fn_add_filter_ranges_breadcrumbs($params, "categories.view?category_id={$_REQUEST['category_id']}");
        } elseif (!empty($_REQUEST['advanced_filter'])) {
            fn_add_breadcrumb(fn_get_lang_var('advanced_filter'));
        }
        // [/Breadcrumbs]
    } else {
        return array(CONTROLLER_STATUS_NO_PAGE);
    }
} elseif ($mode == 'picker') {
    $category_count = db_get_field("SELECT COUNT(*) FROM ?:categories");
    if ($category_count < CATEGORY_THRESHOLD) {
        $params = array('simple' => false);
        list($categories_tree, ) = fn_get_categories($params);
        $view->assign('show_all', true);
    } else {
        $params = array('category_id' => $_REQUEST['category_id'], 'current_category_id' => $_REQUEST['category_id'], 'visible' => true, 'simple' => false);
            $cats = fn_get_category_name($parent_ids);
            foreach ($cats as $c_id => $c_name) {
                fn_add_breadcrumb($c_name, "categories.view?category_id={$c_id}");
            }
        }
    }
    list(, $view_all_filter) = fn_get_filters_products_count($params);
    fn_add_breadcrumb(db_get_field("SELECT filter FROM ?:product_filter_descriptions WHERE filter_id = ?i AND lang_code = ?s", $params['filter_id'], CART_LANGUAGE));
    Registry::get('view')->assign('params', $params);
    Registry::get('view')->assign('view_all_filter', $view_all_filter);
} elseif ($mode == 'view') {
    $variant_data = fn_get_product_feature_variant($_REQUEST['variant_id']);
    Registry::get('view')->assign('variant_data', $variant_data);
    if (!empty($_REQUEST['features_hash']) || !empty($_REQUEST['advanced_filter'])) {
        fn_add_breadcrumb($variant_data['variant'], "product_features.view?variant_id={$_REQUEST['variant_id']}");
        fn_add_filter_ranges_breadcrumbs($_REQUEST, "product_features.view?variant_id={$_REQUEST['variant_id']}");
    } else {
        fn_add_breadcrumb($variant_data['variant']);
    }
    // Override meta description/keywords
    if (!empty($variant_data['meta_description']) || !empty($variant_data['meta_keywords'])) {
        Registry::get('view')->assign('meta_description', $variant_data['meta_description']);
        Registry::get('view')->assign('meta_keywords', $variant_data['meta_keywords']);
    }
    // Override page title
    if (!empty($variant_data['page_title'])) {
        Registry::get('view')->assign('page_title', $variant_data['page_title']);
    }
    fn_define('FILTER_CUSTOM_ADVANCED', true);
    // this constant means that extended filtering should be stayed on the same page
    $params = $_REQUEST;