Умный фильтр (bitrix:catalog.smart.filter) - поддержка работы в корне каталога (без указания раздела)

Рейтинг: 55.6817  
Внедрено
Предложил Роман Забродин 23.04.2013 06:10:06

Умный фильтр (bitrix:catalog.smart.filter) - поддержка работы в корне каталога (без указания раздела)

Срочно нужно! Суть проблемы в том, что если мы находимся в корне инфоблока (не зашли в раздел) то во всплывашке:


всегда будет ошибочно писаться что товаров НЕ найдено.
Рейтинг: -5.8692  
Ответил 01.06.2015 11:30:37
Внедрено в 15.5 релизе. Спасибо за идею и комментарии!

Рейтинг: 3.2883  
Ситников Александр 04.03.2017 13:35:24
Чтобы работало в корне с включенным ЧПУ в комплексном каталоге
в sections.php до вызова умного фильтра добавить
if(empty($arResult["VARIABLES"]["SMART_FILTER_PATH"])){
$re = '/^\/.*\/filter\/(.*)\/apply\//';
$str = Bitrix\Main\Context::getCurrent()->getRequest()->getRequestedPage();
preg_match($re, $str, $matches);
$arResult["VARIABLES"]["SMART_FILTER_PATH"] =$matches[1];
}

ну а в вызове умного фильтра
"SMART_FILTER_PATH" => $arResult["VARIABLES"]["SMART_FILTER_PATH"],
Рейтинг: -0.8573  
Павленко Роман 10.03.2017 12:07:53
Вот только не в sections.php, а в section.php.
И добавить условие срабатывания:

if ( preg_match($re, $str, $matches) ) {
 $arResult["VARIABLES"]["SMART_FILTER_PATH"] = $matches[1];
 $arResult["VARIABLES"]["SECTION_CODE_PATH"] = "";
 $arResult["VARIABLES"]["SECTION_CODE"] = "";
}
Рейтинг: 0  
Ситников Александр 27.03.2017 08:04:32
Вот только не в sections.php, а в section.php.
И добавить условие срабатывания:
условие, можно..
но вот именно sections а не section. в случае если каталог имеет разделы.
Рейтинг: 0.2238  
Голубев Константин 28.03.2017 10:43:22
Ситников Александр
подскажите пожалуйста, если не сложно, какие параметры у вас для случая если разделы есть? интересует именно - используете ли SHOW_ALL_WO_SECTION, BY_LINK ?
SMART_FILTER_PATH каким указывать для параметров комплексного компонента?
сейчас у меня #SECTION_CODE_PATH#/filter/#SMART_FILTER_PATH#/apply/
при этом выходит 404 ошибка, и никак не могу победить..
Рейтинг: 0.2231  
Ситников Александр 28.03.2017 17:53:10
подскажите пожалуйста, если не сложно, какие параметры у вас для случая если разделы есть? интересует именно - используете ли SHOW_ALL_WO_SECTION, BY_LINK ?
SMART_FILTER_PATH каким указывать для параметров комплексного компонента?
сейчас у меня #SECTION_CODE_PATH#/filter/#SMART_FILTER_PATH#/apply/
при этом выходит 404 ошибка, и никак не могу победить..
"SHOW_ALL_WO_SECTION" => "Y",
BY_LINK не передаю

но вам думаю стоит поставить и потестить
"SET_STATUS_404" => "N",
"SHOW_404" => "N",
Рейтинг: -1.4577  
Коняев Павел 28.03.2017 23:42:08
Парни, есть проблема:
Есть каталог, в каталоге есть разделы. Необходимо убрать умный фильтр от туда где выводятся разделы.
Как это сделать?
Подскажите направление, пожалуйста.
Спасибо.
Рейтинг: 0  
Серебрянский Тимур 06.06.2017 01:08:57
При таком способе работает сама фильтрация, НО сам смарт фильр предлагает выбор из значений свойств только одного раздела - первого попавшегося раздела конечного уровня.
В итоге, фильтр показывает не все свойства, и их значения, ограничиваясь выбором свойств в одной категории.
Вопрос не решен.
Рейтинг: 0  
Егоров Михаил 24.10.2017 17:07:58
Чтобы работало в корне с включенным ЧПУ в комплексном каталоге
в sections.php до вызова умного фильтра добавить  
if(empty($arResult["VARIABLES"]["SMART_FILTER_PATH"])){
$re = '/^\/.*\/filter\/(.*)\/apply\//';
$str = Bitrix\Main\Context::getCurrent()->getRequest()->getRequestedPage();
preg_match($re, $str, $matches);
$arResult["VARIABLES"]["SMART_FILTER_PATH"] =$matches[1];
}

ну а в вызове умного фильтра
"SMART_FILTER_PATH" => $arResult["VARIABLES"]["SMART_FILTER_PATH"]
Как и у всех чпу, комплексный компонент, в каталоги есть разделы. В section.php вывожу все элементы через bitrix:catalog.section - "SHOW_ALL_WO_SECTION" => "Y",
По итогу в фильтре вижу всевозможные сво-ва из всего каталога, после фильтрации, показывает свой-ва только из одного раздела, хотя в сам раздел перехода нет. Как быть?  
Рейтинг: 0  
Роман 08.02.2018 13:29:34
В компоненте bitrix:catalog.smart.filter меняем параметр "SECTION_ID" с $arCurSection['ID'] на
"SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"].

Дело в том, что если раздел корневой, то $arCurSection['ID'] возвращает первый попавшийся раздел. Поэтому в фильтре свойства из одного раздела.
Рейтинг: 0  
prosto vasya 09.03.2018 13:26:26
У меня не работает умный фильтр в корне, что я делаю не так?
1С-Битиркс. Не работает умный фильтр в корне раздела
Рейтинг: 0  
Police King 10.03.2018 01:29:38
У меня не работает умный фильтр в корне, что я делаю не так?
Фильтр не работает в корне каталога!
Рейтинг: 0  
Lorem Ipsum 06.04.2018 19:39:32
В корне каталога фильтр с ЧПУ так не хочет работать, без ЧПУ работает нормально, но это не очень, т.к. адрес сплошь абракадабара! Все параметры выставил правильно, но почему то вот такая дичь происходит только в корне каталога.
Рейтинг: 5.7804  
Лаптев Максим 10.07.2018 17:55:48
1. Добавляем "SHOW_ALL_WO_SECTION" => "Y" в настройки компонента catalog.smart.filter и catalog.section.
2. В настройках комплексного компонента каталога в параметре SEF_URL_TEMPLATES переопределяем "sections" => "filter/#SMART_FILTER_PATH#/apply/".

Итого, умный фильтр работает в корне каталога с ЧПУ.
Во всплывающем окне будет корректное кол-во отфильтрованных товаров в разрезе всего каталога.

Тестировал как мог - ошибок не нашел.

Версия битрикс - 17.5.13
Рейтинг: 0  
Симонов Евгений 12.10.2018 16:45:56
Есть у кого пример сайта с настроенным фильтром в корне? А то совет из последнего комментария не помог.

Версия битрикс тоже 17.5.13
Рейтинг: 0.8902  
Лаптев Максим 16.10.2018 13:53:51
А что у вас в sections.php? Должен быть просто include __DIR__ . '/section.php'.
И в самом section.php попробуйте убрать все, оставьте только вызов фильтра и catalog.sections.
Обязательно уберите битриксовый код вначале по поиску ID и CODE текущего раздела.
Страницы: 1  2