Битрикс фильтруем результаты поиска в 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 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *