Думаю многие сталкивались со следующей проблемой. Сделали каталог товаров, настроили умный фильтр в категориях товаров. Но заказчику потребовались страницы, отличные от страниц категорий.
global $smartPreFilter;
$smartPreFilter = [
'ID' => [14, 15, 16],
];
$APPLICATION->IncludeComponent(
"bitrix:catalog.smart.filter",
".default",
array(
//...
"FILTER_NAME" => "arrFilter",
"PREFILTER_NAME" => "smartPreFilter",
//...
),
$component,
array('HIDE_ICONS' => 'Y')
);
var_dump($GLOBALS['arrFilter']);
// array(1) { ["ID"]=> array(3) { [0]=> int(14) [1]=> int(15) [2]=> int(16) } }
$APPLICATION->IncludeComponent(
"bitrix:catalog.section.list",
".default",
array(
"FILTER_NAME" => "arrFilter",
),
$component,
array("HIDE_ICONS" => "Y")
);
Видим, что на странице категории вывелись лишь три товара (так было бы и раньше) и в фильтре доступны лишь значения, относящиеся к этой выборке.
Таким же образом выведем на страницу категории новинки:
$smartPreFilter = [
'PROPERTY_NEWPRODUCT' => 1,
];
