Что делать если нам нужно разместить фильтр в подвале сайта или слева/справа в сайдбаре? Но при этом фильтр должен вызываться ДО компонента bitrix:catalog.section. Есть замечательный метод CMain::ShowViewContent. Метод позволяет установить выводимый контент для функции AddViewContent. С помощью этого метода можно вывести фильтр где угодно. Допустим мы используем комплексный компонент каталога и фильтр у нас вызывается (или будет вызываться) в файле шаблона section.php (sections.php). Тогда вызов фильтра должен быть таким:
<?
if(!isset($_REQUEST["ajax"])) $this->SetViewTarget("sidebar");
$APPLICATION->IncludeComponent(
"kombox:filter",
"",
array(
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"FILTER_NAME" => $arParams["FILTER_NAME"],
"SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
"SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
"HIDE_NOT_AVAILABLE" => $arParams["HIDE_NOT_AVAILABLE"],
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
"CACHE_TIME" => $arParams["CACHE_TIME"],
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
"SAVE_IN_SESSION" => "N",
"INCLUDE_JQUERY" => "Y",
"MESSAGE_ALIGN" => "LEFT",
"MESSAGE_TIME" => "0",
"IS_SEF" => "N",
"CLOSED_PROPERTY_CODE" => array(),
"CLOSED_OFFERS_PROPERTY_CODE" => array(),
"SORT" => "N",
"FIELDS" => array(),
"PRICE_CODE" => $arParams["PRICE_CODE"],
"CONVERT_CURRENCY" => $arParams["CONVERT_CURRENCY"],
"CURRENCY_ID" => $arParams["CURRENCY_ID"],
"XML_EXPORT" => "Y",
"SECTION_TITLE" => "NAME",
"SECTION_DESCRIPTION" => "DESCRIPTION"
),
false
);
if(!isset($_REQUEST["ajax"])) $this->EndViewTarget("sidebar");
?>
Т.е. перед фильтром мы вызываем метод SetViewTarget, после EndViewTarget. В результате фильтр отработает ДО компонент bitrix:catalog.section, но показан он не будет. Затем в том месте где мы хотим отобразить фильтр необходимо вызвать метод <?$APPLICATION->ShowViewContent('sidebar');?>. Это может быть любым местом – шаблон сайта, шаблон другого компонента, включаемая область.
Видео от Дмитрия Акифьева в котором этот момент очень доходчиво раскрывается - https://www.youtube.com/watch?v=Rbez1ep9TUE
Вопрос-ответ |
Описание курса
| Как выбирать свойства которые будут выводиться в фильтре?
|