Битрикс фильтруем результаты поиска в bitrix:search.title

Если в вашей поисковой строке есть лишние товары, эта статья для вас 🙂

Как отфильтровать результаты поиска в Битриксе

Настроить для поисковой строки какой-либо фильтр всегда было проблемой. Насколько мне известно, фильтрацию в этот компонент «не завезли». А вот у заказчиков очень часто возникают требования «убрать с сайта товары, у которых отрицательное наличие или проставлено какое-то свойство».

Именно такой случай и рассмотрим. Хочу поделится с вами немного устаревшим, местами даже не самым лучшим решением.
Править будем сразу ajax.php компонента search.title. Код будет выглядеть так:

<? if (CModule::IncludeModule("iblock")): 
	$resS = CIBlockElement::GetList ( Array("ID" => "ASC"),
		Array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "ID" => $arItem['ITEM_ID']),
		false,
		false,
		Array('ID', 'NAME', 'PROPERTY_NE_VYGRUZHAT_NA_SAYT')
	);
	if ($arItemS = $resS->GetNext()) {
		if ($arItemS['PROPERTY_NE_VYGRUZHAT_NA_SAYT_VALUE']) {
			continue;
		}
	}
endif;
?>

Данный код необходимо вставить в цикле. Если свойство «NE_VYGRUZHAT_NA_SAYT» проставлено, товары не отображаются в поисковой строке. Для положительного количество фильтр будет выглядеть как:
«>CATALOG_QUANTITY» => 0
Вот и всё, надеюсь у вас всё получилось :). Если у вас есть более «элегантное» решение данной задачи, просьба поделится со всеми в комментариях.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *