Компонент AJAX-форма поиска с подсказками (askaron:askaron.search.form_ajax) размещается внутри шаблона или выше компонента Страница поиска (bitrix:search.page)

Компоненты имеют одинаковые настройки области поиска и способа поиска. Размещайте компоненты с одинаковыми настройками, чтобы разультаты подсказок поиска совпадали с тем, что будет на странице поиска.



Выпадающий список



ajax-подсказки Поиск



Проще всего разместить компонент выше. Но при этом в нижнем компоненте  bitrix:search.page скрыть форму поиска стилями

.my-search-container form
{
  display: none;
}


Компонент 



При этом стандартный компонент bitrix:search.page не умеет фильтровать по инфоблоку или разделу. Дополнительный фильтр передаётся с помощью глобальной переменной "FILTER_NAME" => "arrSearchFilter";

Метод  \Askaron\Search\Tools::addFilterBySearchSection помогает превратить  $_REQUEST["search_sections_filter"] в $arrSearchFilter 



Пример страницы /search/index.php:


<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Поиск");
?>

<?$APPLICATION->IncludeComponent(
"askaron:askaron.search.form_ajax", 
".default", 
array(
"COMPONENT_TEMPLATE" => ".default",
"FORM_CODE" => "f1",
"PAGE" => "#SITE_DIR#search/index.php",
"AJAX" => "Y",
"TOP_COUNT" => "10",
"RESTART" => "N",
"NO_WORD_LOGIC" => "Y",
"CHECK_DATES" => "N",
"USE_TITLE_RANK" => "N",
"DEFAULT_SORT" => "rank",
"FILTER_NAME" => "",
"arrFILTER" => array(
),
"SHOW_WHERE" => "N",
"arrWHERE" => array(
  0 => "forum",
  1 => "iblock_catalog",
  2 => "iblock_news",
  3 => "iblock_offers",
  4 => "iblock_services",
  5 => "blog",
),
"SHOW_IBLOCK_FILTER" => "Y",
"IBLOCK_TYPE_FILTER" => array(
  0 => "catalog",
  1 => "news",
  2 => "",
),
"IBLOCK_TYPE_FILTER_SECTIONS" => "Y",
"IBLOCK_TYPE_FILTER_SECTIONS_TOP" => "Y",
"IBLOCK_TYPE_FILTER_SECTION_CODE" => "section_id",
"IBLOCK_ID_BY_TYPE_catalog" => array(
0 => "",
1 => "",
),
"IBLOCK_ID_BY_TYPE_news" => array(
  0 => "17",
  1 => "37",
  2 => "",
),
"IBLOCK_ID_BY_TYPE_services" => array(
0 => "",
1 => "",
),
"IBLOCK_ID_BY_TYPE_askaron_regions" => array(
0 => "",
1 => "",
),
"IBLOCK_ID_BY_TYPE_testcatalog" => array(
0 => "",
1 => "",
),
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000",
"USE_LANGUAGE_GUESS" => "Y",
"BUTTON_TEXT" => "",
"SHOW_IBLOCK_TYPE" => "Y",
"SHOW_IBLOCK" => "Y"
),
false
);?>

<?php
global $arrSearchFilter;
$arrSearchFilter = [];
if (\Bitrix\Main\Loader::includeModule( "askaron.search" ))
{
  $arrSearchFilter = \Askaron\Search\Tools::addFilterBySearchSection(
    $arrSearchFilter,
    $_REQUEST["search_sections_filter"] ?? "",
    "section_id"
  );
}
?>
<style>
.my-search-container
{
  margin-top: 5px;
}
.my-search-container form
{
  display: none;
}
</style>

<div class="my-search-container">

<?$APPLICATION->IncludeComponent(
"bitrix:search.page", 
".default", 
array(
"AJAX_MODE" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_SHADOW" => "Y",
"AJAX_OPTION_STYLE" => "Y",
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "N",
"COMPONENT_TEMPLATE" => ".default",
"DEFAULT_SORT" => "rank",
"DISPLAY_BOTTOM_PAGER" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"FILTER_NAME" => "arrSearchFilter",
"NO_WORD_LOGIC" => "Y",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_TEMPLATE" => "arrows",
"PAGER_TITLE" => "Результаты поиска",
"PAGE_RESULT_COUNT" => "25",
"PATH_TO_USER_PROFILE" => "",
"RATING_TYPE" => "",
"RESTART" => "N",
"SHOW_ITEM_DATE_CHANGE" => "N",
"SHOW_ITEM_TAGS" => "N",
"SHOW_ORDER_BY" => "N",
"SHOW_RATING" => "",
"SHOW_TAGS_CLOUD" => "N",
"SHOW_WHEN" => "N",
"SHOW_WHERE" => "N",
"USE_LANGUAGE_GUESS" => "Y",
"USE_SUGGEST" => "N",
"USE_TITLE_RANK" => "N",
"arrFILTER" => array(
0 => "no",
),
"arrFILTER_iblock_catalog" => array(
 0 => "all",
),
"arrFILTER_iblock_news" => array(
 0 => "all",
),
"arrFILTER_iblock_services" => array(
 0 => "all",
),
"arrFILTER_main" => "",
"arrWHERE" => ""
),
false
);?>
</div>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
0  


 Размещение компонента через визуальный редактор | Описание курса | Прием пожертвований