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

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

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

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

$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 смог построить полный путь.

Пример получения шаблона пути DETAIL_PAGE_URL:

if (SECTION_ID > 0) {
	$sectionList = CIBlockSection::GetList(
		array(), 
		array(
			"=ID" => SECTION_ID,
		), 
		false, 
		array("*")
	);
	$sectionList->SetUrlTemplates($arParams["SEF_RULE"]);
	$arResult['SECTION'] = $sectionList->GetNext();

} else {
	$arResult['SECTION']["DETAIL_PAGE_URL"] = "/catalog/all/#SMART_FILTER_PATH#/";
}

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 15 октября 2020 | Обновлено 18 ноября 2020
seo, разработчику, фильтр
Поделиться
Похожие статьи
Редирект с несуществующих страниц пагинации
Пример как быстро сделать редирект со страниц вида /?PAGEN_1=999 на последнюю страницу пагинации.
Читать дальше » 0
Алексей,
Как найти, откуда устанавливаются мета-теги
Мета-теги страницы обычно устанавливаются через метод SetPageProperty. Использовать его можно скольк...
Читать дальше » 0
Алексей,
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Пригодится для сео, для вывода ссылок в шаблоне фильтра.