Что делать если нам нужно разместить фильтр в подвале сайта или слева/справа в сайдбаре? Но при этом фильтр должен вызываться ДО компонента bitrix:catalog.section.
вывод описан на сайте:
http://pai-bx.com/wiki/1c-bitrix/29-example-of-setviewtarget/
там же есть описание вот такой конструкции
1 2 3 4 5 |
<?ob_start(); echo 'SomeText'; $out1 = ob_get_contents(); ob_end_clean(); $APPLICATION->AddViewContent('block_id',$out1); ?> |
1 2 3 4 5 6 7 8 9 10 |
if(!isset($_REQUEST["ajax"])) $this->SetViewTarget("sidebar"); $APPLICATION->IncludeComponent( "bitrix:catalog.smart.filter", "", array(...), false ); if(!isset($_REQUEST["ajax"])) $this->EndViewTarget("sidebar"); |
Т.е. перед фильтром мы вызываем метод SetViewTarget, после EndViewTarget. В результате фильтр отработает ДО компонент bitrix:catalog.section, но показан он не будет. Затем в том месте где мы хотим отобразить фильтр необходимо вызвать метод
?
1 |
$APPLICATION->ShowViewContent('sidebar'); |
Это может быть любым местом – шаблон сайта.
Есть еще похожий вариант
выводим так же чеерз $APPLICATION->ShowViewContent(‘h1_alt’);
а код буферизации
1 2 3 4 5 |
ob_start(); echo $h1; $out1 = ob_get_contents(); ob_end_clean(); $APPLICATION->AddViewContent('h1_alt',$out1); |
Есть еще фишки. Можно глянуть тут
https://pai-bx.com/wiki/1c-bitrix/29-example-of-setviewtarget/