Умный фильтр битрикс, создание чпу ссылки до применения

15
Алексей,
Умный фильтр битрикс, создание чпу ссылки до применения

Пригодится для сео, для вывода ссылок в шаблоне фильтра.

$ob = new CBitrixCatalogSmartFilter(); // создаем новый объект фильтра
$arTmpItem = $arItem; // свойство фильтра
$arTmpItem["VALUES"][$val]['CHECKED'] = 1; // отмечаем текущее значение
$ob->arResult = array('ITEMS' => array($arTmpItem)); // закидываем в массив элементов фильтра
$url = $ob->makeSmartUrl($arResult['SECTION']["DETAIL_PAGE_URL"], true); // формируем url

Попробую пояснить как это применять. В шаблоне умного фильтра, в цикле перебора значений ($arItem['VALUES']) нужно вставить данный код. Код формирует временный массив из одного элемента (текущего) с одним значением (текущим, checked) и передает его в класс фильтра для формирования чпу. Это сработает только для значений "первого уровня", когда фильтр еще ни разу не применялся. Для других нужно передавать все элементы со всеми значениями, что бы метод makeSmartUrl смог построить полный путь.

Опубликовано 15 октября 2020 | Обновлено 16 октября 2020
seo, разработчику, фильтр
Комментарии