Bitrix поиск по релевантности

Как вывести каталог на стр. поиска писал в прошлой статье /2018/09/12/выводим-каталог-на-странице-поиска-би/

  1. Для результата с учетом релевантности в компоненте bitrix:search.page убираем сортировку и оставляем по
    "USE_TITLE_RANK" => "Y",
    "DEFAULT_SORT" => "rank",

2. Создаем компонент с component.php, где будем тупо выводить элементы по найденным c помощью search.page идшникам. А шаблон остается от bitrix:catalog.section

<?
use Bitrix\Main,
	Bitrix\Main\Context,
	Bitrix\Main\Loader,
	Bitrix\Main\Type\DateTime,
	Bitrix\Currency,
	Bitrix\Catalog,
	Bitrix\Iblock;


if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

foreach ($GLOBALS[$arParams['FILTER_NAME']]['=ID'] as $key => $value) {
	$res = CIBlockElement::GetList(
	  Array('name' => 'asc') , // $arOrder 
	  array('IBLOCK_ID'=>$arParams['IBLOCK_ID'], 'ID' => $value), // $arFilter
	  false, // $arGroupBy 
	  false, // выводит по 1
	        array('ID', 'NAME', 'DETAIL_PICTURE', 'DETAIL_PAGE_URL') // arSelectFields
	); 
	$nPageSize = 24; 
	$page = isset($_GET['PAGEN_2']) ? $_GET['PAGEN_2'] : 1;  
	while($obRes = $res->GetNextElement(true, false)){
	    if($key < $nPageSize * $page - 24 && $key >= $nPageSize * $page)break;
		$ar_res[] = $obRes->GetFields();
	}

}
$arResult['ITEMS'] = $ar_res;

	$this->includeComponentTemplate();

Данный компонент выводит по 24 записи с стандартной пагинацией от битрикс.

Leave a comment

Your email address will not be published.


*