[QUOTE]Анна Данченко написал:
Строки и куски верстки можно передавать через отложенные функции (SetPageProperty, AddViewContent), при таком способе не имеет значение в каком порядке вызываются компоненты, но нельзя туда забубенить объекты и массивы. В случае с глобальными переменными важно, чтобы компонент, который устанавливает переменную, выполнялся на странице раньше, чем компонент, который ее получает![/QUOTE]
Лучше вот так:
Есть компонент bitrix:news.list и bitrix:catalog.smart.filter. Компонент вывода элементов из инфоблока выполняется выше компонента фильтра, что не позволяет осуществлять фильтрацию. Нередко такие ситуации появляются из-за особенностей верстки шаблона сайта. В этом случае помогает функция SetViewTarget.
Решение проблемы:
1. Создаем свой шаблон умного фильтра.
2. В начале шаблона вставляем строчку (после проверки пролога):[TABLE][TR][TD]1
[/TD][TD]<?$this->SetViewTarget("smart_filter");?>
[/TD][/TR][/TABLE]smart_filter – идентификатор буферизируемой области, можно выбрать любой.
3. В конце шаблона добавил строчку:[TABLE][TR][TD]1
[/TD][TD]<?$this->EndViewTarget();?>
[/TD][/TR][/TABLE]Все что между этими строчками не будет выводиться в браузер, а запишется в буфер.
4. Например в шаблоне (footer.php) или файле компонента IncludeComponent, там где должен выводиться фильтр, добавляем строчку:[TABLE][TR][TD]1
[/TD][TD]<?$APPLICATION->ShowViewContent("smart_filter");?>
[/TD][/TR][/TABLE]5. Компонент умного фильтра подключаем до компонента инфоблока. В настройках компонента умного фильтра выбираем шаблон из п.1.
P.S. Для соблюдения копирайта - взято отсюда [URL=http://note.dimexio.ru/?p=755]http://note.dimexio.ru/?p=755[/URL]
Строки и куски верстки можно передавать через отложенные функции (SetPageProperty, AddViewContent), при таком способе не имеет значение в каком порядке вызываются компоненты, но нельзя туда забубенить объекты и массивы. В случае с глобальными переменными важно, чтобы компонент, который устанавливает переменную, выполнялся на странице раньше, чем компонент, который ее получает![/QUOTE]
Лучше вот так:
Есть компонент bitrix:news.list и bitrix:catalog.smart.filter. Компонент вывода элементов из инфоблока выполняется выше компонента фильтра, что не позволяет осуществлять фильтрацию. Нередко такие ситуации появляются из-за особенностей верстки шаблона сайта. В этом случае помогает функция SetViewTarget.
Решение проблемы:
1. Создаем свой шаблон умного фильтра.
2. В начале шаблона вставляем строчку (после проверки пролога):[TABLE][TR][TD]1
[/TD][TD]<?$this->SetViewTarget("smart_filter");?>
[/TD][/TR][/TABLE]smart_filter – идентификатор буферизируемой области, можно выбрать любой.
3. В конце шаблона добавил строчку:[TABLE][TR][TD]1
[/TD][TD]<?$this->EndViewTarget();?>
[/TD][/TR][/TABLE]Все что между этими строчками не будет выводиться в браузер, а запишется в буфер.
4. Например в шаблоне (footer.php) или файле компонента IncludeComponent, там где должен выводиться фильтр, добавляем строчку:[TABLE][TR][TD]1
[/TD][TD]<?$APPLICATION->ShowViewContent("smart_filter");?>
[/TD][/TR][/TABLE]5. Компонент умного фильтра подключаем до компонента инфоблока. В настройках компонента умного фильтра выбираем шаблон из п.1.
P.S. Для соблюдения копирайта - взято отсюда [URL=http://note.dimexio.ru/?p=755]http://note.dimexio.ru/?p=755[/URL]